Ereignisse und Zeitlimits bei Sprachaktivitäten

Ereignisse zur Sprachaktivität geben an, wann Sprachbeginn oder -ende während des gesamten Streams erkannt wurde. Die Ereignisse werden in Echtzeit gesendet, wenn sie von Speech-to-Text erkannt wurden. Ereignisse zur Sprachaktivität können für die Entwicklung von Anwendungen nützlich sein, die auf der automatischen Erkennung des Zeitpunkts basieren, zu dem ein Nutzer zu sprechen begonnen oder beendet hat. Speech-to-Text kann auch so konfiguriert werden, dass der Stream basierend auf Sprachaktivitäten automatisch geschlossen wird.

Ereignisse zur Sprachaktivität sind nur für StreamingRecognize-gRPC-Anfragen verfügbar.

Sprachaktivitätsereignisse aktivieren

Wenn Sie Antworten von Sprachaktivitäten aktivieren möchten, legen Sie das Flag enable_voice_activity_events in der Nachricht streaming_features auf „true“ fest.

Ereignistypen für Sprachaktivitäten

Sprachaktivitätsereignisse werden normalerweise in Echtzeit zurückgegeben, da Speech-to-Text während des Streams einen Sprachstart oder -stopp erkennt. Sie werden normalerweise vor den Transkriptionsergebnissen für das entsprechende Sprachsegment zurückgegeben. Ereignisse zur Sprachaktivität können für Audiodaten gesendet werden, die leere Transkriptionsergebnisse liefern.

Beginn der Sprachaktivität

Wird gesendet, wenn Speech-to-Text erkennt, dass Sprache gestartet wurde.

{
  "speechEventType": "SPEECH_ACTIVITY_BEGIN",
  "speechEventOffset": "1.070s"
}

Ende der Sprachaktivität

Wird gesendet, wenn Speech-to-Text erkennt, dass Sprache beendet wurde.

{
  "speechEventType": "SPEECH_ACTIVITY_END",
  "speechEventOffset": "1.070s"
}
Wenn der Stream vor dem Ende der Sprache geschlossen wird, wird kein SPEECH_ACTIVITY_END-Ereignis gesendet.

Zeitlimits für Sprachaktivitäten aktivieren

Sie können Zeitlimits für Sprachaktivitäten aktivieren. Dazu legen Sie Werte für die Nachricht voice_activity_timeout in streaming_features fest. Zeitlimits von Sprachaktivitäten müssen größer als 500 ms und kleiner als 60 Sekunden sein. Zeitlimits für Start und Ende können unabhängig festgelegt werden.

Zeitlimit für Start der Sprache

Wenn ein Zeitlimit für den Beginn einer Sprache festgelegt ist, schließt Speech-to-Text den Stream automatisch, wenn die Sprache nicht vor dem Zeitlimit gestartet wurde. Sobald ein SPEECH_ACTIVITY_START-Ereignis erkannt und zurückgegeben wurde, wird das Zeitlimit für die Dauer des Streams abgebrochen. Diese Funktion ist nützlich für Anwendungen, die erwarten, dass ein Nutzer innerhalb eines bestimmten Zeitraums spricht.

Zeitlimit für Ende der Sprache

Wenn ein Zeitlimit für das Ende einer Sprache festgelegt ist, schließt Speech-to-Text automatisch den Stream, wenn nach dem Ereignis SPEECH_ACTIVITY_END keine weitere Sprache innerhalb des Zeitlimits erkannt wird. Sobald ein SPEECH_ACTIVITY_START-Ereignis erkannt und zurückgegeben wurde, wird das Zeitlimit abgebrochen und neu gestartet, sobald ein SPEECH_ACTIVITY_END-Ereignis gesendet wurde.

Zeitmessung des Zeitlimits

Die verstrichene Zeit wird anhand der Bytes der Audiodaten gemessen, die in Anfragen an Speech-to-Text gesendet werden, im Gegensatz zur Serverzeit. Dadurch lässt sich die Genauigkeit bei Variationen der Streamübertragung beibehalten. Wenn Sie sehr große Audioblöcke in Anfragen haben oder Anfragen sehr schnell nacheinander senden, wird die Genauigkeit der Messung des Zeitlimits verringert. Hinweis: Die Größenbeschränkung für Audioblöcke beträgt 15.360 Byte pro Anfrage.