让 google 助理用另一种语言回复

Getting google assistant to respond in another language

我在 google 的 Dialogflow 中设置了一个 app/agent。 我已经让我的助手与它交谈,并对我设置的服务执行 Web 挂钩。

用户用英语与 google 助手交谈,服务 Google 正在与之交谈,本质上只是随机化一个瑞典语单词,然后将其作为瑞典语文本转语音呈现。

例如,"Ok Google, talk to testapp today's word." 和 google 响应 "Dagens ord: köttfärs"。

但是,google 语音回复用户时卡在英语中,我无法将其更改为瑞典语响应。我想让应用程序用英语听,但如果有意义的话用瑞典语回答,这是英语朋友学习瑞典语单词的训练练习。

我发现一些 API 文档提到了 locale,所以我试着摆弄它,但接缝被绑定到 client/agent 的源语言,从而决定了结果语音..

这是响应数据(采用python格式):

response_headers = {}
response_headers[b'Content-Type'] = b'application/json'
response_headers[b'Google-Assistant-API-Version'] = b'v2'

response_data = {
    "fulfillmentText": TTS,
    "locale" : "sv-SE",
    "fulfillmentMessages": [
        {
            "card": {
                "title": TTS,
                "subtitle": TTS,
                "imageUri": "https://assistant.google.com/static/images/molecule/Molecule-Formation-stop.png",
                "buttons": [
                    {
                        "text": "Turn it off",
                        "postback": "https://service.com/google_home.py?state=off"
                    }
                ]
            }
        }
    ],
    "source": "service.com",
    "payload": {
        "google": {
            "expectUserResponse": False,
            "locale" : "sv-SE",
            "richResponse": {
                "items": [
                    {
                        "simpleResponse": {
                            "textToSpeech": TTS,
                            "locale" : "sv-SE"
                        }
                    }
                ]
            }
        }
    }
}

有没有办法告诉助手它应该在回复时切换语言上下文,而不是根据输入?在上面添加 locale 做的很少,所以我想我离这里很远?

我也许应该提到 TTS 是短语 "Dagens ord: köttfärs" 例如。

遗憾的是,没有直接支持的方式让 Google 助理以不同于对话设置的语言(这是它期望输入的语言)回复。

对于简单的事情,您可以 use SSML to play pre-recorded audio 而不是使用文本转语音。像

   <speech>
     <audio src="https://example.com/audio/dagens-ord-kottfars.mp3">
       <desc>Dagens ord: köttfärs</desc>
     </audio>
   </speech>

如果您需要它更加动态,您可以创建另一个 webhook,它获取您想要的文本并使用 Google's text-to-speech API 之类的东西来创建 mp3 音频。然后您可以提供此 URL 作为音频的 src。 (不幸的是,Google 似乎也不允许数据 URLs。)