Eventi e timeout relativi all'attività vocale

Gli eventi di attività vocale indicano quando è stato rilevato l'inizio o la fine di un discorso durante uno stream. Gli eventi vengono inviati in tempo reale man mano che vengono rilevati da Speech-to-Text. Gli eventi di attività vocale possono essere utili per sviluppare applicazioni che si basano sul rilevamento automatico dell'inizio o della fine della conversazione di un utente. Speech-to-Text può anche essere configurato per chiudere automaticamente lo stream in base all'attività vocale.

Gli eventi di attività vocale sono disponibili solo per le richieste gRPC StreamingRecognize.

Attivare gli eventi di attività vocale

Puoi attivare la ricezione delle risposte all'attività vocale impostando il flag enable_voice_activity_events su true nel streaming_features messaggio.

Tipi di eventi di attività vocale

Gli eventi di attività vocale vengono in genere restituiti in tempo reale quando Speech-to-Text rileva l'inizio o l'interruzione del parlato durante lo stream. Vengono in genere restituite prima dei risultati della trascrizione per il segmento di discorso corrispondente. Gli eventi di attività vocale possono essere inviati per l'audio che produce risultati di trascrizione vuoti.

Speech Activity Begin

Inviato quando Speech-to-Text rileva che è iniziato il parlato.

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

Speech Activity End

Inviato quando la funzionalità di Speech-to-Text rileva che il parlato è terminato.

{
  "speechEventType": "SPEECH_ACTIVITY_END",
  "speechEventOffset": "1.070s"
}
Se lo stream viene chiuso prima della fine del discorso, non verrà inviato un evento SPEECH_ACTIVITY_END.

Attivare i timeout dell'attività vocale

Puoi attivare i timeout dell'attività vocale impostando i valori nel voice_activity_timeout messaggio in streaming_features. I timeout dell'attività vocale devono essere superiori a 500 ms e inferiori a 60 secondi. I timeout di inizio e fine del discorso possono essere impostati in modo indipendente.

Timeout di inizio del discorso

Quando viene impostato un timeout di inizio del discorso, la funzionalità Speech-to-Text chiude automaticamente lo stream se il discorso non è iniziato prima del periodo di timeout. Una volta rilevato e restituito un evento SPEECH_ACTIVITY_START, il timeout viene annullato per la durata dello stream. Questa funzionalità è utile per le applicazioni che prevedono che un utente inizi a parlare entro un determinato periodo di tempo.

Timeout di fine del discorso

Quando viene impostato un timeout di fine del discorso, Speech-to-Text chiuderà automaticamente lo stream se non viene rilevato ulteriore discorso entro la durata del timeout dopo un evento SPEECH_ACTIVITY_END. Una volta rilevato e restituito un evento SPEECH_ACTIVITY_START, il timeout viene annullato e riprende quando viene inviato un evento SPEECH_ACTIVITY_END.

Misurazione del tempo per i timeout

Il tempo trascorso viene misurato in base ai byte di audio inviati nelle richieste a Speech-to-Text, anziché in base al tempo del server. Ciò consente di preservare la precisione durante le variazioni nella trasmissione dello stream. L'invio di blocchi audio molto grandi nelle richieste o l'invio di richieste in successione molto rapida ridurrà l'accuratezza della misurazione del timeout. Nota: il limite di dimensione per i chunk audio è 15360 byte per richiesta.