Speech recognition 在发送到dialogflow之前,如何向google助手拼写单词

Speech recognition 在发送到dialogflow之前,如何向google助手拼写单词,speech-recognition,dialogflow-es,actions-on-google,voice-recognition,google-home,Speech Recognition,Dialogflow Es,Actions On Google,Voice Recognition,Google Home,我不知道这是否是问这个问题的好地方,但我正在为谷歌助手做我自己的事情。用户需要用字母和数字拼写一些单词(如RJ343KR)。 在dialogflow端,一切正常,我定义了一个regexp实体,当我使用键盘向助手提问时,它似乎可以工作 但当我说话时,谷歌助手无法理解我拼写的字母。数字没问题。我试着拼写:“RU304304”,它会给出:“你是3 0 4 3 0 4” 不知道这是否重要,但我的助理语言是法语(为了更好地理解,我给你举个英语例子) 我在文件里什么也没找到。除了 有人能帮我吗 谢谢 司仪

我不知道这是否是问这个问题的好地方,但我正在为谷歌助手做我自己的事情。用户需要用字母和数字拼写一些单词(如RJ343KR)。 在dialogflow端,一切正常,我定义了一个regexp实体,当我使用键盘向助手提问时,它似乎可以工作

但当我说话时,谷歌助手无法理解我拼写的字母。数字没问题。我试着拼写:“RU304304”,它会给出:“你是3 0 4 3 0 4”

不知道这是否重要,但我的助理语言是法语(为了更好地理解,我给你举个英语例子)

我在文件里什么也没找到。除了

有人能帮我吗

谢谢

司仪

在谷歌助手支持回复后编辑:

以下是谷歌的答案:

对于GoogleAssistant中的语音识别,它只能转录语言支持的单词或短语。似乎“RU304304”输入不是一个单词,因此它将“RU”识别为“are you”。您可以做的是为这个响应实现建议芯片或在键盘上键入代码。有关建议芯片的更多信息,请查看此文档


所以看起来很清楚,没有办法拼写字母到谷歌主页。这就像是一个很大的限制,是吗?

我在一个旧项目中也遇到过这个问题,当时我使用sys.any实体在用户输入中查找产品代码。我使用的工作是将Google更改为单词的某些单词改回字符或符号

function customReplace(serial) {
      let converted = serial.replace("are", "R");
      converted = converted.replace("bee", "B");
      converted = converted.replace("for", "4");
      converted = converted.replace("slash", "/");
      return converted;
    }

我建议您仅在需要产品代码的处理程序中使用此选项,因为此代码会将其他输入(如“That was for bob too”)更改为“That was 4 bob 2”,这可能会干扰您的响应。

您的正则表达式是否考虑语音输入中的暂停?如果您在与谷歌助手通话时暂停,谷歌将在您的输入中添加空格。“3 0 4 3 0 4”就是一个例子。这可能会影响使用Google助手时的实体检测。谢谢您的评论。事实上,我的正则表达式考虑到了这一点。问题就在那之前。就像我说的,当我输入RJ343K时,R:没问题。当我拼写它时,谷歌助手会尝试将声音转换成单词而不是字母。谢谢你的建议。就我而言,数字运行良好。问题在于信件。我希望除了您的解决方案之外,还有一些其他选择,因为我不想添加26行(每个字母一行)的代码。干杯!