You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Assistant响应中使用多语言及指定响应语言?

解决方案:在Actions on Google中指定多语言响应

针对你遇到的问题——在Translation预置应用的fulfillment hook里无法直接指定响应语言,且SSML的<lang>标签不被Actions on Google支持——这里有两个可行的方案供你参考:

1. 直接通过响应对象指定语言

Actions on Google其实支持在fulfillment中直接设置响应的语言,你只需要在返回的响应里配置locale字段,同时确保你的项目已经在Actions控制台中启用了目标语言。

举个Node.js的实现示例,假设你从用户输入中获取了目标语言参数:

app.handle('translate-intent', (conv) => {
  // 从对话参数中提取目标语言代码(比如"es"代表西班牙语)
  const targetLocale = conv.parameters.targetLanguage;
  
  // 设置会话的locale,强制后续响应使用该语言
  conv.user.locale = targetLocale;
  
  // 发送对应语言的文本响应,语音会自动匹配设置的locale
  conv.add(`Hola! Esta es una respuesta en español.`);
});

注意:在使用这个方法前,一定要先在Actions控制台的「语言」设置中添加你需要支持的目标语言,否则系统会忽略locale设置,默认使用用户的设备语言。

2. 使用<audio>标签结合外部TTS API

如果直接设置locale的方式不符合你的需求(比如需要更定制化的语音),你可以借助外部文本转语音API生成指定语言的音频文件,再通过SSML的<audio>标签引用该音频。

比如生成音频后,你可以构造这样的SSML响应:

<speak>
  <audio src="https://your-hosted-audio-url.com/fr-response.mp3">
    Désolé, je ne peux pas jouer ce son. Voici la réponse en texte: Bonjour!
  </audio>
</speak>

注意事项:

  • 音频文件必须是公开可访问的HTTPS URL,且格式需符合Actions on Google的要求(推荐MP3,比特率128kbps以上);
  • 调用外部TTS API时要处理好API密钥、请求频率限制等问题,避免影响服务稳定性;
  • 记得添加备用文本,当音频无法加载时,系统会朗读这段文本。

另外补充一点:SSML的<lang>标签确实目前未被Actions on Google支持,所以暂时不能通过它来切换语音语言,上述两种方法是更可靠的替代方案。

内容的提问来源于stack exchange,提问作者Cash Lo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:10:46