Questa pagina mostra come trasmettere in streaming l'input audio per una richiesta di rilevamento di intent utilizzando l'API. Dialogflow elabora l'audio e lo converte in testo prima di tentare una corrispondenza di intent. Questa conversione è nota come input audio, riconoscimento vocale, conversione della voce in testo o STT.
Prima di iniziare
Questa funzione è applicabile solo se si utilizza l'API per interazioni con l'utente finale. Se utilizzi un integrazione, puoi saltare questa guida.
Prima di leggere questa guida, devi procedere nel seguente modo:
- Leggi le nozioni di base su Dialogflow.
- Esegui la procedura di configurazione.
Crea un agente
Se non hai ancora creato un agente, creane uno ora:
- Vai alla console Dialogflow ES.
- Se richiesto, accedi alla console Dialogflow. Per ulteriori informazioni, consulta la panoramica della console Dialogflow.
- Fai clic su Create Agent (Crea agente) nel menu della barra laterale sinistra. (Se hai già altri agenti, fai clic sul nome dell'agente scorri verso il basso e fai clic su Crea nuovo agente.)
- Inserisci il nome, la lingua e il fuso orario predefiniti dell'agente.
- Se hai già creato un progetto, inseriscilo. Se vuoi consentire alla console di Dialogflow di creare il progetto: Seleziona Crea un nuovo progetto Google.
- Fai clic su pulsante Crea.
Importa il file di esempio nell'agente
I passaggi descritti in questa guida fanno delle supposizioni sul tuo agente, quindi devi importare un agente preparato per questa guida. Durante l'importazione, questi passaggi utilizzano l'opzione restore, che sovrascrive tutte le impostazioni, gli intent e le entità dell'agente.
Per importare il file:
-
Scarica il
room-booking-agent.zip
. - Vai alla console Dialogflow ES.
- Seleziona l'agente.
- Fai clic sull' pulsante impostazioni settings accanto al nome dell'agente.
- Seleziona la scheda Esporta e importa.
- Seleziona Ripristina da ZIP e segui le istruzioni per ripristinare il file ZIP che hai scaricato.
Nozioni di base sullo streaming
Il metodo streamingDetectIntent
del tipo Session
restituisce un oggetto di streaming gRPC bidirezionale.
I metodi disponibili per questo oggetto
variano a seconda della lingua,
quindi consulta la documentazione di riferimento per la libreria client per maggiori dettagli.
L'oggetto in modalità flusso viene utilizzato per inviare e ricevere dati contemporaneamente.
Utilizzando questo oggetto, il client trasmette i flussi di contenuti audio a Dialogflow,
durante l'ascolto simultaneo di StreamingDetectIntentResponse
.
Il metodo streamingDetectIntent
ha un parametro query_input.audio_config.single_utterance
che influisce sul riconoscimento vocale:
- Se
false
(valore predefinito), il riconoscimento vocale non si interrompe finché il client non chiude lo stream. - Se
true
, Dialogflow rileverà una singola frase pronunciata nell'audio di input. Quando Dialogflow rileva che la voce dell'audio è stata interrotta o messa in pausa, interrompe il riconoscimento vocale e invia unStreamingDetectIntentResponse
con un risultato di riconoscimento diEND_OF_SINGLE_UTTERANCE
per il tuo cliente. Qualsiasi audio inviato a Dialogflow nello stream dopo aver ricevutoEND_OF_SINGLE_UTTERANCE
viene ignorato da Dialogflow.
Nel flusso bidirezionale, un client può chiudere la metà dell'oggetto stream
per segnalare al server che non invierà altri dati.
Ad esempio, in Java e Go, questo metodo è chiamato closeSend
.
È importante chiudere a metà (ma non interrompere) gli stream nelle seguenti situazioni:
- Il cliente ha terminato di inviare i dati.
- Il client è configurato con
single_utterance
impostato su true e riceve unStreamingDetectIntentResponse
con un risultato di riconoscimentoEND_OF_SINGLE_UTTERANCE
.
Dopo aver chiuso uno stream, il cliente deve avviare una nuova richiesta con un nuovo stream, se necessario.
Rilevamento dell'intento di flussi di dati
I seguenti esempi utilizzano
Session
streamingDetectIntent
del tipo per trasmettere audio in streaming.
Go
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: Segui le Istruzioni per la configurazione di C# Nella pagina delle librerie client e poi visita Documentazione di riferimento Dialogflow per .NET.
PHP Segui le Istruzioni per la configurazione dei file PHP Nella pagina delle librerie client e poi visita Documentazione di riferimento Dialogflow per PHP.
Ruby: Segui le Istruzioni per la configurazione di Ruby Nella pagina delle librerie client e poi visita Documentazione di riferimento Dialogflow per Ruby.
Esempi
Consulta la pagina Samples per le best practice sullo streaming da un microfono del browser a Dialogflow.