Eventos de atividade de voz e limites de tempo

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 pela conversão de voz em texto. Os eventos de atividade de voz podem ser úteis para desenvolver aplicações que dependam da deteção automática do momento em que um utilizador começou ou terminou de falar. Também é possível configurar a conversão de voz em texto 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 a API Speech-to-Text 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 a conversão de voz em texto deteta que a voz começou.

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

Speech Activity End

Enviado quando a conversão de voz em texto deteta que a voz 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 Speech-to-Text 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 Speech-to-Text 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 Speech-to-Text, 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.