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 Cloud Speech-to-Text los detecta. 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 comienza a hablar o termina de hacerlo. También se puede configurar Cloud STT 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 devuelven en tiempo real a medida que Cloud STT detecta el inicio o la detención de la voz durante la transmisión. Suelen devolverse 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 Cloud STT detecta que se inició la voz.
{
"speechEventType": "SPEECH_ACTIVITY_BEGIN",
"speechEventOffset": "1.070s"
}
Fin de la actividad de voz
Se envía cuando Cloud STT detecta que la voz se detuvo.
{
"speechEventType": "SPEECH_ACTIVITY_END",
"speechEventOffset": "1.070s"
}
Si la transmisión se cierra antes de que se detenga 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 menores
que 60 s. Los tiempos de espera de inicio y detenció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 inicio de voz, Cloud STT cerrará automáticamente la
transmisión si la voz no ha comenzado antes del tiempo de espera. Una vez
que se detecta y se devuelve 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 detención de voz
Cuando se configura un tiempo de espera de detención de voz,
Cloud STT 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 cuando se envía
un evento SPEECH_ACTIVITY_END.
Medición del tiempo para los tiempos de espera
El tiempo transcurrido se mide por los bytes de audio enviados en solicitudes a Cloud STT, en lugar del tiempo de servidor. Esto permite preservar la exactitud durante las variaciones en la transmisió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.