Eventos de actividad de voz y tiempos de espera

Los eventos de actividad de voz indican cuándo se detectó un inicio o un final de voz en una transmisión. Los eventos se envían en tiempo real a medida que Speech-to-Text los detecta. Los eventos de actividad de voz pueden ser útiles para desarrollar aplicaciones que dependen de la detección automática de cuándo un usuario comienza a hablar o termina de hacerlo. También se puede configurar Speech-to-Text para cerrar automáticamente la transmisión en función de la actividad de voz.

Los eventos de actividad de voz solo están disponibles para las solicitudes de gRPC StreamingRecognize.

Habilita los eventos de actividad de voz

Para habilitar la recepción de respuestas de actividad de voz, configura la marca enable_voice_activity_events como verdadera en el mensaje streaming_features.

Tipos de eventos de actividad de voz

Por lo general, los eventos de actividad de voz se muestran en tiempo real a medida que Speech-to-Text detecta el inicio o la detención de durante la transmisión. Suelen mostrarse antes de los resultados de la transcripción del segmento de voz correspondiente. Se pueden enviar eventos de actividad de voz para el audio que genera resultados de transcripción vacíos.

Inicio de la actividad de voz

Se envía cuando Speech-to-Text detecta que se inició la voz.

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

Fin de la actividad de voz

Se envía cuando Speech-to-Text detecta que la voz finalizó.

{
  "speechEventType": "SPEECH_ACTIVITY_END",
  "speechEventOffset": "1.070s"
}
Si la transmisión se cierra antes de que finalice la voz, no se enviará un evento SPEECH_ACTIVITY_END.

Habilita los tiempos de espera de la actividad de voz

Para habilitar los tiempos de espera de la actividad de voz, establece valores en el mensaje voice_activity_timeout en streaming_features. Los tiempos de espera de la actividad de voz deben ser mayores que 500 ms y menos de 60 s. Los tiempos de espera de inicio y finalización de la voz se pueden establecer de forma independiente.

Tiempo de espera de inicio de voz

Cuando se configura un tiempo de espera de voz, Speech-to-Text cerrará automáticamente la transmisión si la voz no ha comenzado antes del tiempo de espera. Una vez que se detecta y se muestra un evento SPEECH_ACTIVITY_START, se cancela el tiempo de espera durante la transmisión. Esta característica es útil para las aplicaciones que esperan que un usuario comience a hablar dentro de un período determinado.

Tiempo de espera de finalización de voz

Cuando se configura un tiempo de espera de finalización de voz, Speech-to-Text cierra automáticamente la transmisión si no se detecta más voz dentro del tiempo de espera después de un evento SPEECH_ACTIVITY_END. Una vez que se detecta y muestra un evento SPEECH_ACTIVITY_START, se cancela el tiempo de espera y se vuelve a iniciar una vez que se envía un evento SPEECH_ACTIVITY_END.

Medición del tiempo para los tiempos de espera

El tiempo transcurrido se mide por bytes de audio enviados en solicitudes a Speech-to-Text, en lugar del tiempo de servidor. Esto permite preservar la exactitud durante las variaciones de la transmisión de reproducción. Enviar fragmentos de audio muy grandes en las solicitudes o enviar solicitudes seguidas muy rápido reducirá la exactitud en 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.