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" }
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.