語音活動事件和逾時

語音活動事件會指出系統在整個串流中偵測到語音開始或結束的時間。事件會在 Speech-to-Text 偵測到時即時傳送。語音活動事件可用於開發應用程式,讓應用程式自動偵測使用者何時開始或結束說話。您也可以設定 Speech-to-Text,讓系統根據語音活動自動關閉串流。

語音活動事件僅適用於 StreamingRecognize gRPC 要求。

啟用語音活動事件

只要將 streaming_features message 下的 enable_voice_activity_events 標記設為 true,即可啟用語音活動回應功能。

語音活動事件類型

當 Speech-to-Text 在串流期間偵測到語音開始或停止,通常會即時傳回語音活動事件。這些資訊通常會在對應語音片段的轉錄結果之前傳回。您可以針對產生空白轉錄結果的音訊傳送語音活動事件。

語音活動開始

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_ACTIVITY_START 事件後,系統會在串流期間取消逾時。這項功能對於需要使用者在特定時間內開始說話的應用程式很實用。

語音結束逾時

設定語音結束逾時期限後,如果在 SPEECH_ACTIVITY_END 事件後的逾時期限內,系統未偵測到其他語音,Cloud 語音轉文字就會自動關閉串流。偵測到並傳回 SPEECH_ACTIVITY_START 事件後,系統會取消逾時,並在傳送 SPEECH_ACTIVITY_END 事件時重新開始。

超時時間測量

時間間隔的計算方式是根據向 Speech-to-Text 要求傳送的音訊位元組,而非伺服器時間。這樣一來,就能在串流傳輸變化時維持準確性。在要求中傳送非常大的音訊區塊,或連續快速傳送要求,都會降低逾時測量的精確度。注意:音訊區塊的大小上限為每項要求 15360 位元組。