Los eventos de actividad de voz indican cuándo se ha detectado el inicio o el final de una conversación a lo largo de una emisión. Los eventos se envían en tiempo real a medida que los detecta Speech-to-Text. Los eventos de actividad de voz pueden ser útiles para desarrollar aplicaciones que dependan de la detección automática de cuándo un usuario ha empezado o terminado de hablar. Speech-to-Text también se puede configurar para que cierre automáticamente el flujo en función de la actividad de voz.
Los eventos de actividad de voz solo están disponibles para las solicitudes gRPC de StreamingRecognize.
Habilitar eventos de actividad de voz
Para habilitar la recepción de respuestas de actividad de voz, define la marca enable_voice_activity_events
como verdadera en streaming_features
message.
Tipos de eventos de actividad de voz
Los eventos de actividad de voz suelen devolverse en tiempo real a medida que Speech-to-Text detecta el inicio o el final de la voz durante la emisión. Normalmente, se devuelven antes que los resultados de la transcripción del segmento de voz correspondiente. Los eventos de actividad de voz se pueden enviar para el audio que produce resultados de transcripción vacíos.
Inicio de la actividad de voz
Se envía cuando Speech-to-Text detecta que se ha empezado a hablar.
{ "speechEventType": "SPEECH_ACTIVITY_BEGIN", "speechEventOffset": "1.070s" }
Speech Activity End
Se envía cuando Speech-to-Text detecta que ha finalizado la voz.
{ "speechEventType": "SPEECH_ACTIVITY_END", "speechEventOffset": "1.070s" }
SPEECH_ACTIVITY_END
.
Habilitar los tiempos de espera de la actividad de voz
Puedes habilitar los tiempos de espera de la actividad de voz definiendo valores en el
voice_activity_timeout
message
en streaming_features
. Los tiempos de espera de la actividad de voz deben ser superiores a 500 ms e inferiores a 60 s. Los tiempos de espera de inicio y finalización de la voz se pueden definir de forma independiente.
Tiempo de espera de inicio de voz
Cuando se establece un tiempo de espera para el inicio de la voz, Speech-to-Text cerrará automáticamente el flujo si no se ha iniciado la voz antes de que finalice el periodo de tiempo de espera. Una vez que se ha detectado y devuelto un evento SPEECH_ACTIVITY_START
, se cancela el tiempo de espera mientras dure el flujo. Esta función es útil para las aplicaciones que esperan que un usuario empiece a hablar en un periodo determinado.
Tiempo de espera de finalización de la voz
Cuando se establece un tiempo de espera para el final de la voz, Speech-to-Text cierra automáticamente el flujo si no se detecta más voz en el tiempo de espera después de un evento SPEECH_ACTIVITY_END
. Una vez que se ha detectado y devuelto un evento SPEECH_ACTIVITY_START
, se cancela el tiempo de espera y se vuelve a iniciar cuando se envía un evento SPEECH_ACTIVITY_END
.
Medición del tiempo de espera
El tiempo transcurrido se mide en función de los bytes de audio enviados en las solicitudes a Speech-to-Text, en lugar del tiempo del servidor. De esta forma, se mantiene la precisión durante las variaciones en la transmisión de la emisión. Si envías fragmentos de audio muy grandes en las solicitudes o envías solicitudes de forma muy rápida, se reducirá la precisión de la medición del tiempo de espera. Nota: El límite de tamaño de los fragmentos de audio es de 15.360 bytes por solicitud.