Os eventos de atividade de voz indicam quando o início ou o fim da fala foi detetado ao longo de uma stream. Os eventos são enviados em tempo real à medida que são detetados pelo Cloud Speech-to-Text. Os eventos de atividade de voz podem ser úteis para desenvolver aplicações que dependem da deteção automática de quando um utilizador começou ou terminou de falar. Também é possível configurar o STT na nuvem para fechar automaticamente a stream com base na atividade de voz.
Os eventos de atividade de voz só estão disponíveis para pedidos gRPC StreamingRecognize.
Ative os eventos de atividade de voz
Pode ativar a receção de respostas de atividade de voz definindo a flag enable_voice_activity_events como verdadeira no streaming_features
message.
Tipos de eventos de atividade de voz
Normalmente, os eventos de atividade de voz são devolvidos em tempo real à medida que o Cloud STT deteta o início ou o fim da fala durante a stream. Normalmente, são devolvidos antes dos resultados da transcrição do segmento de voz correspondente. Os eventos de atividade de voz podem ser enviados para áudio que produz resultados de transcrição vazios.
Speech Activity Begin
Enviado quando o STT na nuvem deteta que a voz começou.
{
"speechEventType": "SPEECH_ACTIVITY_BEGIN",
"speechEventOffset": "1.070s"
}
Speech Activity End
Enviado quando o STT na nuvem deteta que a fala terminou.
{
"speechEventType": "SPEECH_ACTIVITY_END",
"speechEventOffset": "1.070s"
}
Se a stream for fechada antes de a fala terminar, não é enviado um evento SPEECH_ACTIVITY_END.
Ative os tempos limite de atividade de voz
Pode ativar os limites de tempo de atividade de voz definindo valores na mensagem voice_activity_timeout em streaming_features. Os limites de tempo de inatividade da atividade de voz têm de ser superiores a 500 ms e inferiores a 60 s. Os limites de tempo de início e fim da fala podem ser definidos de forma independente.
Tempo limite de início da fala
Quando é definido um tempo limite de início de voz, o STT do Google Cloud fecha automaticamente a stream se a voz não tiver começado antes do período de tempo limite. Assim que um evento SPEECH_ACTIVITY_START é detetado e devolvido, o limite de tempo é cancelado durante a stream. Esta funcionalidade é útil para aplicações que esperam que um utilizador comece a falar num determinado período.
Tempo limite de fim de voz
Quando é definido um tempo limite de fim de voz, o STT do Google Cloud fecha automaticamente a stream se não for detetada mais voz durante o período de tempo limite após um evento SPEECH_ACTIVITY_END. Assim que um evento SPEECH_ACTIVITY_START for detetado e devolvido, o limite de tempo é cancelado e recomeça assim que um evento SPEECH_ACTIVITY_END for enviado.
Medição do tempo para limites de tempo
O tempo decorrido é medido pelos bytes de áudio enviados em pedidos para o Cloud STT, em vez do tempo do servidor. Isto permite preservar a precisão durante as variações na transmissão em stream. O envio de grandes blocos de áudio em pedidos ou o envio de pedidos em sucessão muito rápida reduz a precisão na medição do tempo limite. Nota: o limite de tamanho para fragmentos de áudio é de 15 360 bytes por pedido.