2016-09-26 75 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]