让 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。)
我在 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。)