2016-09-26 76 views
5

我一直在使用Chromium Google语音API,并最近切换到使用Google云语音API。自从Google云语音API发布以来,性能似乎在识别的准确性方面已经下降。此外,我还看到,音频流传回来的“空洞结果”越来越多。谷歌云语音api返回空结果

我同时将音频流式传输到多个不同的服务,Google Cloud Speech API返回空结果,而其他一些服务正在返回转录文本。让我想知道Chromium Speech API和Google Cloud Speech API的工作方式是否有变化?

我验证了音频的正确标题并验证了我正在将音频流式传输到Google。

有人经历过Google有时(更像大多数时间)返回空结果吗?

+0

相关http://stackoverflow.com/questions/38906527/google-speech-recognition-api-result-is-empty –

回答

4

这类问题更适合公共问题追踪器,因为它需要更多详细信息才能重现您的确切错误。确保填写这个form所需的信息,或者至少用你的代码的最小工作示例清楚地突出显示问题。为了准确再现,重要的是提供您执行的示例代码或命令,并将错误与配置文件和流式传输的音频文件的URI(或文件)一起返回,并返回空结果。

事实上,目前存在于Beta版中的语音API存在已知问题,因此可能会阻止转录正常工作。同时,您可以参考以下documentation以确定是否有任何最佳做法适用于您的案例。

1

我也收到空的答复,但最终通过不同设置编码得到结果。

sox async.wav -t raw --channels=1 --bits=16 --rate=16000 --encoding=signed-integer --endian=little async.raw

1

我也有谷歌语音API返回空的结果同样的问题。 我用FFmpgeg将我的音频文件转换为LINEAR16。为了安装这个工具我用自制:

brew install ffmpeg 

对于我的音频文件转换为LINEAR16我用这个命令:

ffmpeg -i input.flac -f s16le -acodec pcm_s16le output.raw 

后,我就装到我的谷歌stogage:https://console.cloud.google.com/storage/browser/

这里是我的JSON文件,用于制作请求的配置:

{ 
    'config': { 
     'encoding':'LINEAR16', 
     'sampleRate': 16000, 
     'languageCode': 'en-US' 
    }, 
    'audio': { 
     'uri':'gs://your-bucket-name/output.raw' 
    } 
} 

对于f iles超过1分钟你需要使用Asyncrecognize方法:

curl -s -k -H "Content-Type: application/json" \ 
-H "Authorization: Bearer [YOUR-KEY]" \ 
https://speech.googleapis.com/v1beta1/speech:asyncrecognize \ 
-d @sync-request.json 

它会返回操作ID。您可以通过获取运算结果来检查它是否准备就绪:

curl -s -k -H "Content-Type: application/json" \ 
-H "Authorization: Bearer " [YOUR-KEY]\ 
https://speech.googleapis.com/v1beta1/operations/[OPERATION-ID]