我在 Google Cloud Console 中创建了一个项目,并在该项目中启用了 Google Speech API,并创建了凭据。 同样使用了谷歌推荐的transcribe.py,
https://cloud.google.com/speech/docs/samples
https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/speech
我可以将它与 Google 生成的 API key 一起使用,可以控制台成功地将音频文件(30 秒)翻译成文本,但不完全,只有前 2-3 秒。我的账户现在是免费试用的,所以我怀疑是不是因为我的账户类型(免费试用)。
谷歌的回应就像 {"results": [{"alternatives": [{"confidence": 0.89569235, "transcript": "我在森林里野餐了,我要回家所以跟我走吧"}]}]}
音频文件为wav文件,格式为(ffprobe打印) 流 #0:0:音频:pcm_s16le ([1][0][0][0]/0x0001),16000 Hz,1 channel ,s16,256 kb/s
音频文件已经上传到google drive,链接在这里 https://drive.google.com/file/d/0B3koIsnLksOLQXhvQ1ljS0dDXzg/view?usp=sharing
有人知道上述过程/步骤有什么问题吗?或者这是谷歌语音识别 API 的错误?
最佳答案
将 Google APIs Explorer 与 Cloud Speech API 服务结合使用,可以通过分析音频文件的单独样本来隔离以下相关语音识别结果:
- 剪辑 1:0 - 00'08"015,结果 9:“我在森林里野餐了,我要回家了,所以跟我来吧”
- 剪辑 2:00'08"732 - 00'11"184,结果 2:“听着那是什么”
- 剪辑 3:00’13”500 - 直到结束,结果 2:“它看起来像什么”
这些结果是使用以下配置获得的:
“config”: {
“encoding”: “LINEAR16”,
“sampleRate”: 16000,
“maxAlternatives”: “30”,
}
事实上,目前处于 Beta 阶段的语音 API 存在一些已知问题,因此可能会导致转录无法正常工作(无论该帐户是付费还是免费试用)。如下所述best practices ,您的情况需要考虑两个问题:
- 整个语音录制过程中都在播放背景音乐,这可能会产生足够多的背景噪音,从而降低转录的准确性。 (请注意,Speech API 旨在转录用户向应用程序的麦克风口述的文本)
- 如进一步建议,建议在从多个人那里捕获音频时拆分音频。在您的情况下, Frog 的声音可能会被检测为不同的人声,因此也会影响转录的准确性。
考虑到这两个已知问题,移除任何噪音并仅处理来自录音主角的统一语音非常重要。或者,您可以拆分录音并尝试分别转录录音的每个单独部分,其中包含单个角色的声音。
关于python - 为什么 Google Speech Recognition API 只返回前 2-3 秒的音频转换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179169/