为什么Google语音识别API仅返回前2-3秒转换的音频文本

时间:2016-10-21 14:24:32

标签: python google-cloud-platform google-speech-api

我在Google Cloud Console中创建了一个项目,并在此项目中启用了Google Speech API,并创建了凭据。  还使用了Google推荐的transcribe.py,

https://cloud.google.com/speech/docs/samples

https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/speech

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api-client/transcribe.py

我可以使用谷歌生成的API密钥来控制成功将音频文件(30秒)翻译成文本,但不完全,只需要前2-3秒。我的帐户现在是免费试用,所以我怀疑是否是因为我的帐户类型(免费试用)。

来自谷歌的回复就像 {“结果”:[{“替代品”:[{“置信度”:0.89569235,“成绩单”:“我在森林里野餐,我要回家了,所以请跟我来吧”}}}}}

音频文件是带格式的wav文件(由ffprobe打印) 流#0:0:音频:pcm_s16le([1] [0] [0] [0] / 0x0001),16000 Hz,1个通道,s16,256 kb / s

音频文件已在谷歌驱动器上传,链接在这里 https://drive.google.com/file/d/0B3koIsnLksOLQXhvQ1ljS0dDXzg/view?usp=sharing

有人知道上述流程/步骤有什么问题吗?或者这是谷歌语音识别api的错误?

2 个答案:

答案 0 :(得分:2)

将Google API资源管理器与Cloud Speech API服务配合使用,可以通过分析音频文件的单独示例来隔离以下相关语音识别结果:

  • 切1:0 - 00' 08" 015,结果9:"我在森林里野餐,我要回家了,所以来和我一起来#34;
  • 切断2:00' 08" 732 - 00' 11" 184,结果2:"听听"
  • 截止3:00'13“500 - 直到结束,结果2:"它看起来是什么"

使用以下配置获得这些结果:

“config”: {
    “encoding”: “LINEAR16”,
    “sampleRate”: 16000,
    “maxAlternatives”: “30”,
}

事实上,目前处于Beta状态的语音API存在已知问题,因此可能会阻止转录正常工作(无论该帐户是基于付费还是免费试用)。如以下best practices所述,在您的案例中需要考虑两个问题:

  1. 在整个语音记录中播放背景音乐,这可能产生足够的背景噪音以降低转录准确度。 (请注意,Speech API旨在转录用户指示应用程序麦克风的文本)
  2. 如进一步建议的那样,建议在从多个人捕获音频时拆分音频。在您的情况下,青蛙的声音可能被检测为不同的人声,因此也会影响转录的准确性。
  3. 考虑到这两个已知问题,删除任何噪音并仅处理源自录音主角的统一语音非常重要。或者,您可以拆分录音并尝试单独录制包含单个字符声音的录音的每个单独部分。

答案 1 :(得分:0)

我遇到了类似的问题,但是使用其中一种增强型模型能够获得完整的转录

config = {
  ...
  use_enhanced: true,
  model: "phone_call"
}

您可以查看以下更多信息:https://cloud.google.com/speech-to-text/docs/phone-model