Dialogflow es 谷歌与SSML的行动因“被拒绝”;有HTML标签;
上周我在谷歌上提交了我的第一个行动 我已经使用Dialogflow和WebhookClient编写了代码,并针对两种语言—英语和印地语 我的行动在英语中获得批准,但在评论中得到了印地语的“拒绝”状态ऐप प्रतिक्रियाओं में एचटीएमएल टैग हैं |" (“应用程序响应具有HTML标记”) 我有两个与本次审查相关的问题-Dialogflow es 谷歌与SSML的行动因“被拒绝”;有HTML标签;,dialogflow-es,actions-on-google,api-ai,ssml,Dialogflow Es,Actions On Google,Api Ai,Ssml,上周我在谷歌上提交了我的第一个行动 我已经使用Dialogflow和WebhookClient编写了代码,并针对两种语言—英语和印地语 我的行动在英语中获得批准,但在评论中得到了印地语的“拒绝”状态ऐप प्रतिक्रियाओं में एचटीएमएल टैग हैं |" (“应用程序响应具有HTML标记”) 我有两个与本次审查相关的问题- 我正在使用从以下参考资料中学到的ssml- 看来,我完全按照文件办事 我的代码看起来像这样- function repeatWord(agen
function repeatWord(agent) {
let sessionContext = agent.getContext(KEY_SESSION);
let sessionParams = sessionContext.parameters;
let currentWord =
sessionParams.words[sessionParams.currentIndexPosition];
let ssml;
if(sessionParams.userLang === 'hi'){
ssml = `<speak>\n ठीक है। शब्द <sub alias =
'${currentWord[KEY_PRONOUNCE]}'>${currentWord[KEY_WORD]}
</sub> है।
<break time='500ms'/>\n हिंदी में, इसका मतलब होगा
${currentWord[KEY_MEANING]} । </speak>` ;
agent.add(new Suggestion('अगला शब्द'));
agent.add(new Suggestion('दोहराना'));
} else {
ssml = `<speak>\n Ok! Let's do this again.
\n The word is <sub alias =
'${currentWord[KEY_PRONOUNCE]}'>${currentWord[KEY_WORD]}
.</sub>
<break time='500ms'/>\n In English, it would mean
${currentWord[KEY_MEANING]} .</speak>` ;
agent.add(new Suggestion('next word'));
agent.add(new Suggestion('repeat'));
}
agent.add(ssml);
}
<speak>\n ठीक है। शब्द <sub alias='adhyaapikaa'>अध्यापिका </sub> है।\n <break time='500ms'/>\n हिंदी में, इसका मतलब होगा शिक्षक (महिला) । </speak>
函数重复字(代理){
让sessionContext=agent.getContext(KEY_SESSION);
设sessionParams=sessionContext.parameters;
设currentWord=
sessionParams.words[sessionParams.currentIndexPosition];
让ssml;
if(sessionParams.userLang=='hi'){
ssml=`\nठीक है। शब्द ${currentWord[关键字]}
है।
\nहिंदी में, इसका मतलब होगा
${currentWord[关键字含义]}। ` ;
代理。添加(新建议)अगला शब्द'));
代理。添加(新建议)दोहराना'));
}否则{
ssml=`\n好的!让我们再来一次。
\n单词是${currentWord[关键字]}
.
\n在英语中,它的意思是
${currentWord[KEY_means]};
添加(新建议(“下一个单词”);
代理。添加(新建议(“重复”);
}
agent.add(ssml);
}
这样做对吗
<speak><p><s>ठीक है। शब्द <sub alias='sthaalikaa'>स्थालिका </sub> है।</s> <s> हिंदी में, इसका मतलब होगा थाली ।</s></p></speak> <speak><p><s> हमारा पहला शब्द आज <sub alias='sthaalikaa'>स्थालिका </sub> है।</s> <s> हिंदी में, इसका मतलब होगा थाली । </s></p></speak>
ठीक है। शब्द स्थालिका है। हिंदी में, इसका मतलब होगा थाली । हमारा पहला शब्द आज स्थालिका है। हिंदी में, इसका मतलब होगा थाली ।
function repeatWord(agent) {
let sessionContext = agent.getContext(KEY_SESSION);
let sessionParams = sessionContext.parameters;
let currentWord =
sessionParams.words[sessionParams.currentIndexPosition];
let ssml;
if(sessionParams.userLang === 'hi'){
ssml = `<speak>\n ठीक है। शब्द <sub alias =
'${currentWord[KEY_PRONOUNCE]}'>${currentWord[KEY_WORD]}
</sub> है।
<break time='500ms'/>\n हिंदी में, इसका मतलब होगा
${currentWord[KEY_MEANING]} । </speak>` ;
agent.add(new Suggestion('अगला शब्द'));
agent.add(new Suggestion('दोहराना'));
} else {
ssml = `<speak>\n Ok! Let's do this again.
\n The word is <sub alias =
'${currentWord[KEY_PRONOUNCE]}'>${currentWord[KEY_WORD]}
.</sub>
<break time='500ms'/>\n In English, it would mean
${currentWord[KEY_MEANING]} .</speak>` ;
agent.add(new Suggestion('next word'));
agent.add(new Suggestion('repeat'));
}
agent.add(ssml);
}
<speak>\n ठीक है। शब्द <sub alias='adhyaapikaa'>अध्यापिका </sub> है।\n <break time='500ms'/>\n हिंदी में, इसका मतलब होगा शिक्षक (महिला) । </speak>
\nठीक है। शब्द अध्यापिका है।\n\nहिंदी में, इसका मतलब होगा शिक्षक (महिला) ।
是否有可能重新提交我的版本1以供审查?我如何更新版本以供审查?它在模拟器中的更新工作正常
模拟器中的响应记录为-
{
"conversationToken": "[\"learn\",\"select-track\",\"session_vars\"]",
"expectUserResponse": true,
"expectedInputs": [
{
"inputPrompt": {
"richInitialPrompt": {
"items": [
{
"simpleResponse": {
"textToSpeech": " ",
"displayText": " "
}
},
{
"simpleResponse": {
"textToSpeech": "<speak>\n ठीक है। शब्द <sub alias='vaatikaa'>वाटिका </sub> है।\n <break time='500ms'/>\n हिंदी में, इसका मतलब होगा वाटिका । </speak>",
"displayText": "<speak>\n ठीक है। शब्द <sub alias='vaatikaa'>वाटिका </sub> है।\n <break time='500ms'/>\n हिंदी में, इसका मतलब होगा वाटिका । </speak>"
}
}
],
"suggestions": [
{
"title": "अगला शब्द"
},
{
"title": "दोहराना"
}
]
}
},
"possibleIntents": [
{
"intent": "assistant.intent.action.TEXT"
},
{
"intent": "9c81a50f-4016-42f1-af46-43c5935cfd7a"
},
{
"intent": "720a2df8-c900-43bb-a2bd-bc42ced8661e"
},
{
"intent": "6e209797-e4f1-43aa-bbe6-3ee36bd3b416"
},
{
"intent": "c5b09a55-3b1e-47c8-9500-508adaf5fe87"
}
],
"speechBiasingHints": [
"$answer",
"$track"
]
}
],
"responseMetadata": {
"status": {
"message": "Success (200)"
},
"queryMatchInfo": {
"queryMatched": true,
"intent": "6e209797-e4f1-43aa-bbe6-3ee36bd3b416"
}
}
}
{
“conversationToken”:“[\”学习“,\”选择曲目“,\”会话变量“],
“expectUserResponse”:正确,
“预期看跌期权”:[
{
“输入提示”:{
“richInitialPrompt”:{
“项目”:[
{
“简单响应”:{
“textToSpeech”:“,
“显示文本”:”
}
},
{
“简单响应”:{
“textToSpeech”:“\nठीक है। शब्द वाटिका है।\n\nहिंदी में, इसका मतलब होगा वाटिका । ",
“显示文本”:“\nठीक है। शब्द वाटिका है।\n\nहिंदी में, इसका मतलब होगा वाटिका । "
}
}
],
“建议”:[
{
“标题”:अगला शब्द"
},
{
“标题”:दोहराना"
}
]
}
},
“可能的内容”:[
{
“意图”:“助手.意图.动作.文本”
},
{
“意图”:“9c81a50f-4016-42f1-af46-43c5935cfd7a”
},
{
“意图”:“720a2df8-c900-43bb-a2bd-bc42ced8661e”
},
{
“意图”:“6e209797-e4f1-43aa-bbe6-3ee36bd3b416”
},
{
“意图”:“c5b09a55-3b1e-47c8-9500-508adaf5fe87”
}
],
“言语偏见提示”:[
“$answer”,
“$track”
]
}
],
“responseMetadata”:{
“地位”:{
“消息”:“成功(200)”
},
“queryMatchInfo”:{
“queryMatched”:正确,
“意图”:“6e209797-e4f1-43aa-bbe6-3ee36bd3b416”
}
}
}
从您提供的SSML生成显示文本的方式似乎有些奇怪。通常,这应该在幕后为您处理,但在这种情况下听起来似乎不是这样-可能是因为使用了字符集
您可以通过显式地设置SSML和文本来解决这个问题。因此,您可以构建一个text
变量,该变量只包含您想要显示的内容的文本,而不是agent.add(SSML)
行,并添加类似的内容
agent.add(new SimpleResponse({
speech: ssml,
text: text
}));
谢谢。你的建议奏效了。我的操作现在被批准了。唯一的问题是我在使用agent.add时代码中出现了服务器错误。所以,我添加了新的SimpleResponse作为-conv.ask(新的SimpleResponse({speech:ssml,text:text}));agent.add(conv);