Eventi e timeout relativi all'attività vocale

Gli eventi di attività vocale indicano quando è stato rilevato 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 sviluppare applicazioni che si basano sul rilevamento automatico dell'avvio o della fine dell'attività da parte dell'utente per parlare. Inoltre, è possibile configurare Speech-to-Text per chiudere automaticamente lo stream in base all'attività vocale.

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

Attiva eventi di attività vocale

Puoi attivare la ricezione delle risposte dell'attività vocale impostando il Flag enable_voice_activity_events su true in streaming_features messaggio.

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. Voce gli eventi di attività possono essere inviati per l'audio che produce risultati della trascrizione vuoti.

Inizio attività vocale

Inviata quando Speech-to-Text rileva l'avvio della 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"
}
Se lo stream viene chiuso prima della fine della conversazione, non verrà inviato un evento SPEECH_ACTIVITY_END.

Attiva timeout attività vocale

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

Timeout inizio vocale

Quando è impostato un timeout per l'inizio del parlato, la funzionalità Trascrizione vocale chiude automaticamente lo stream se il parlato non è iniziato prima del periodo di timeout. Una volta È stato rilevato e restituito SPEECH_ACTIVITY_START evento, il timeout è annullato per tutta 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 esegue automaticamente chiudi lo stream se non vengono rilevati ulteriori comandi vocali 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 frammenti 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 blocchi audio è 15360 byte per richiesta.