python - 为什么 Google Speech Recognition API 只返回前 2-3 秒的音频转换文本

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

我在 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

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

我可以将它与 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 ,您的情况需要考虑两个问题:

  1. 整个语音录制过程中都在播放背景音乐,这可能会产生足够多的背景噪音,从而降低转录的准确性。 (请注意,Speech API 旨在转录用户向应用程序的麦克风口述的文本)
  2. 如进一步建议,建议在从多个人那里捕获音频时拆分音频。在您的情况下, Frog 的声音可能会被检测为不同的人声,因此也会影响转录的准确性。

考虑到这两个已知问题,移除任何噪音并仅处理来自录音主角的统一语音非常重要。或者,您可以拆分录音并尝试分别转录录音的每个单独部分,其中包含单个角色的声音。

关于python - 为什么 Google Speech Recognition API 只返回前 2-3 秒的音频转换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40179169/

相关文章:

python - 在 python 中从 S3 加载 npy 文件

python - 如何扩展 Boto3 资源?

google-cloud-platform - 无论如何在数据流管道中共享有状态变量?

google-cloud-platform - 保护 Google 云功能免受 DDOS 攻击的最佳方法是什么

node.js - 无法在 Windows 10 上使用 VS Code 调试 Node.js Google Cloud Functions(本地模拟器)

java - Google 语音 API 返回 NULL

python - "./sandbox goal account list"的 py-algorand-sdk 等价物是什么

python - Heroku 与 Django 的使用

oauth-2.0 - 如何在 Rust 中使用 google_speech1 发送语音到文本请求?

google-chrome - Chrome 语音 API 和谷歌语音 API 有什么区别?