2017-05-25 38 views
9

這是谷歌語音API文檔:https://cloud.google.com/speech/docs/sync-recognize如何使用谷歌語音API翻譯直播?

我嘗試此API 2周。但仍然無法解決我的主要目的(翻譯直播)。

我正在使用PHP。 (其他的語的建議是允許的,我會自己找)

我可以在我的2周做:

  1. 同步語音識別(< = 1分)

  2. 異步語音識別(> 1min和< = 80分鐘)。 注意:我可以修改此接受3小時視頻。從話筒

  3. 直播語音識別:https://www.google.com/intl/en/chrome/demos/speech.html

  4. UPDATE:與音頻流進行API小於6秒的持續時間。

我不能做的是:

  1. 如何翻譯現場直播。例如:廣播流(允許延遲)

  2. 如何翻譯視頻/音頻播放時。 (延遲是允許的)

UPDATE:

我也要求對谷歌GitHub上的問題了。但既然沒有答案,我問here

總結:

我可以執行語音流,但只有6第二音頻。這不像我所期望的。我的期望是承認無限的持續時間(似乎我們不知道什麼時候無線電流將結束)。

感謝您的幫助。我很欣賞它

#UPDATE:

批准,我不能使用的視頻長度超過6秒。所以我寫這個:

我試試這個視頻interview.mp4並用ffmpeg轉換爲interview.flac使用此ffmpeg -i interview.mp4 -c:a flac -ar 16000 -ac 1 -sample_fmt s16 interview.flac

我用這個library使用該命令來錄製視頻:

php speech.php transcribe --encoding FLAC --language-code en-US --sample-rate 16000 --stream interview.flac

,其結果是:

[Google\GAX\ApiException] 
    Invalid 'audio_content': too long. 

它不能太長,因爲視頻的持續時間僅是48秒。這是ffmpeg的結果:

Output #0, flac, to 'interview.flac': 
    Metadata: 
    major_brand  : isom 
    minor_version : 512 
    compatible_brands: isomiso2avc1mp41 
    encoder   : Lavf57.72.101 
    Stream #0:0(und): Audio: flac, 16000 Hz, mono, s16, 128 kb/s (default) 
    Metadata: 
     handler_name : SoundHandler 
     encoder   : Lavc57.92.100 flac 
size=  810kB time=00:00:48.01 bitrate= 138.1kbits/s speed= 108x 
video:0kB audio:801kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.019650% 

回答

6

您需要使用StreamingRecognize API call。你可以在PHP here找到一個例子。

+0

謝謝你blambert,我upvoted你的幫助。但是,請看看我的更新..我有錯過信息之前。抱歉。 – plonknimbuzz

+0

我只是不知道如何在真正的流媒體中實現。我只知道如何發送6秒音頻到語音流api – plonknimbuzz

+0

流API有60秒的限制,而不是6,所以你應該能夠流傳輸高達60秒的音頻。 6秒後你收到錯誤信息了嗎? – blambert