首页 文章

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

提问于
浏览
1

我在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 /小号

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

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

1 回答

  • 2

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

    • 切1:0 - 00 '08 1688500 I'我在森林里野餐,我要回家了,所以来吧跟我来吧

    • 剪切2:00'08 "732 - 00'11" 184,结果2:"listen what's that"

    • 削减3:00'13“500 - 截止结束,结果2:"what is it look"

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

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

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

    • 在整个语音记录中播放背景音乐,这可能产生足够的背景噪音以降低转录准确度 . (请注意,Speech API旨在转录用户指示应用程序麦克风的文本)

    • 如进一步建议的那样,建议在从多个人捕获音频时拆分音频 . 在您的情况下,青蛙的声音可能被检测为不同的人声,因此也会影响转录的准确性 .

    考虑到这两个已知问题,重要的是消除任何噪音,只处理来自录音主角的统一语音 . 或者,您可以拆分录音并尝试单独录制包含单个字符声音的录音的每个单独部分 .

相关问题