Gli eventi di attività vocale indicano quando è stata rilevata l'inizio o la fine del parlato 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 lo sviluppo di applicazioni che si basano sul rilevamento automatico del momento in cui un utente ha iniziato o terminato di parlare. 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 di StreamingRecognize.
Attivare gli eventi di attività vocale
Puoi attivare la ricezione di risposte all'attività vocale impostando il flag enable_voice_activity_events
su true in streaming_features
message.
Tipi di eventi di attività vocale
Gli eventi di attività vocale vengono generalmente restituiti in tempo reale quando Speech-to-Text rileva l'inizio o l'interruzione del parlato durante lo stream. In genere vengono restituiti prima dei risultati della trascrizione per il segmento di parlato corrispondente. Gli eventi di attività vocale possono essere inviati per l'audio che produce risultati di trascrizione vuoti.
Inizio attività vocale
Inviata quando Speech-to-Text rileva che è iniziata la voce.
{ "speechEventType": "SPEECH_ACTIVITY_BEGIN", "speechEventOffset": "1.070s" }
Fine attività vocale
Inviata quando Speech-to-Text rileva che la voce è terminata.
{ "speechEventType": "SPEECH_ACTIVITY_END", "speechEventOffset": "1.070s" }
SPEECH_ACTIVITY_END
.
Attivare i timeout per l'attività vocale
Puoi attivare i timeout dell'attività vocale impostando i valori su voice_activity_timeout
message
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 parlato possono essere impostati indipendentemente.
Timeout di inizio della voce
Quando è impostato un timeout per l'inizio del parlato, la funzionalità di conversione vocale in testo chiude automaticamente lo stream se il parlato 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 si aspettano che un utente inizi a parlare entro un determinato periodo di tempo.
Timeout di fine della sintesi vocale
Quando è impostato un timeout di fine voce, Speech-to-Text chiude automaticamente
lo stream se non viene rilevato altro parlato 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 ricomincia 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. In questo modo è possibile mantenere la precisione durante le variazioni nella trasmissione dello stream. L'invio di chunk 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 dimensioni per i chunk audio è di 15360 byte per richiesta.