Dialogflow es 谷歌与SSML的行动因“被拒绝”;有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

上周我在谷歌上提交了我的第一个行动

我已经使用Dialogflow和WebhookClient编写了代码,并针对两种语言—英语和印地语

我的行动在英语中获得批准,但在评论中得到了印地语的“拒绝”状态ऐप प्रतिक्रियाओं में एचटीएमएल टैग हैं |" (“应用程序响应具有HTML标记”)

我有两个与本次审查相关的问题-

  • 我正在使用从以下参考资料中学到的ssml-
  • 看来,我完全按照文件办事

    我的代码看起来像这样-

    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);
    }
    
    这样做对吗

  • 审查中给出的拒绝示例如下。但是,示例响应是版本1中使用的响应-

    <speak><p><s>ठीक है। शब्द <sub alias='sthaalikaa'>स्थालिका </sub> है।</s> <s> हिंदी में, इसका मतलब होगा थाली ।</s></p></speak> <speak><p><s> हमारा पहला शब्द आज <sub alias='sthaalikaa'>स्थालिका </sub> है।</s> <s> हिंदी में, इसका मतलब होगा थाली । </s></p></speak>
    
    ठीक है। शब्द स्थालिका  है।  हिंदी में, इसका मतलब होगा थाली ।

    हमारा पहला शब्द आज स्थालिका है। हिंदी में, इसका मतलब होगा थाली ।

  • 我在版本2中的新响应如下所示-

    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);