語音活動事件會指出系統在整個串流中偵測到語音開始或結束的時間。Cloud Speech-to-Text 偵測到事件後,會即時傳送事件。語音活動事件有助於開發應用程式,自動偵測使用者何時開始或結束說話。您也可以設定雲端 STT,根據語音活動自動關閉串流。
語音活動事件僅適用於 StreamingRecognize gRPC 要求。
啟用語音活動事件
如要啟用接收語音活動回應,請在 streaming_features
訊息下方,將 enable_voice_activity_events 旗標設為 true。
語音活動事件類型
通常,當 Cloud STT 在串流期間偵測到語音開始或停止時,就會即時傳回語音活動事件。通常會在對應語音片段的轉錄結果傳回前傳回。如果音訊產生空白的轉錄結果,系統可能會傳送語音活動事件。
Speech Activity Begin
在 Cloud STT 偵測到語音開始時傳送。
{
"speechEventType": "SPEECH_ACTIVITY_BEGIN",
"speechEventOffset": "1.070s"
}
語音活動結束
在雲端 STT 偵測到語音結束時傳送。
{
"speechEventType": "SPEECH_ACTIVITY_END",
"speechEventOffset": "1.070s"
}
如果在語音結束前關閉串流,系統不會傳送 SPEECH_ACTIVITY_END 事件。
啟用語音活動逾時
您可以在 streaming_features 中,透過在 voice_activity_timeout
message
上設定值,啟用語音活動逾時。語音活動逾時時間必須大於 500 毫秒,且小於 60 秒。語音開始和結束逾時可分別設定。
語音開始逾時
設定語音開始逾時後,如果語音未在逾時時間內開始,Cloud STT 就會自動關閉串流。偵測到並傳回 SPEECH_ACTIVITY_START 事件後,系統會在串流期間取消逾時。如果應用程式預期使用者會在特定時間內開始說話,這項功能就非常實用。
語音結束逾時
設定語音結束逾時後,如果系統在 SPEECH_ACTIVITY_END 事件發生後,於逾時時間內未偵測到任何語音,Cloud STT 就會自動關閉串流。偵測到並傳回 SPEECH_ACTIVITY_START 事件後,系統會取消逾時,並在傳送 SPEECH_ACTIVITY_END 事件時重新開始。
逾時時間測量
計算時間時,是以傳送至 Cloud STT 的音訊位元組數為準,而非伺服器時間。這樣一來,即使串流傳輸發生變化,也能維持準確度。在要求中傳送非常大的音訊區塊,或以極快的速度連續傳送要求,都會降低逾時測量的準確度。注意:每個要求的音訊區塊大小上限為 15360 個位元組。