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