Google-speech-api错误地录制了口头号码

时间:2016-10-06 10:35:18

标签: google-cloud-platform speech-recognition speech-to-text google-speech-api

我开始使用google speech api转录音频。

被转录的音频包含一个接一个地说出的许多数字。

E.g。 273 298

但是转录回来了270-3298

我的猜测是它将它解释为某种电话号码。

我想要的是未解析的输出,例如"二七十三二九十八'我可以自己处理和解析。

是否有这种设置或支持?

谢谢

4 个答案:

答案 0 :(得分:2)

尝试使用一些短语提示传递语音上下文。如何使用它在此处记录:https://cloud.google.com/speech/docs/basics#phrase-hints

为其提供您想要识别的拼写数字。

"speech_context": {
  "phrases":["zero", "one", "two", ... "nine", "ten", "eleven", ... "twenty", "thirty,..., "ninety"]
 }

这并不能保证有效,但可能有所帮助。

答案 1 :(得分:2)

所以我也遇到了同样的问题,我想我们找到了解决方案。如果您使用英语作为输入,则仅在处理数字时切换到en-PH。然后,Google不会将结果格式设置为美国电话号码,也不会尝试在其中添加多余的数字。

答案 2 :(得分:1)

为了记录,我尝试了上面的blambert解决方案,不幸的是它不起作用。我最近发布了另一个问题,看看是否有人找到了解决这种行为的方法,因为它阻止我实施我原计划的转录服务。

答案 3 :(得分:0)

您是否尝试过 Google Speech customClass

您有一些可以使用的类令牌,告诉 API 您不需要电话号码而是不同类型的号码。

例如,如果您选择使用 OOV_CLASS_AM_RADIO_FREQUENCY,您将指定 API 来解释这样的数字:

  • “十二点二十分”--> 1220
  • “七百三十” --> 730

可能(还没读过)API 默认使用此类 FULLPHONENUM 来表示数字:

  • “一八百五五五四哦哦一”--> +1-800-555-4001
  • “七一八五五五六一哦一”--> 718-555-6101