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" }
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.