Questa pagina mostra come trasmettere l'input audio in streaming a una richiesta di rilevamento dell'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, voce in testo o STT.
Prima di iniziare
Questa funzionalità è applicabile solo quando si utilizza l'API per le interazioni con l'utente finale. Se utilizzi un'integrazione, puoi saltare questa guida.
Prima di leggere questa guida, effettua le seguenti operazioni:
- Leggi le nozioni di base di 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 di Dialogflow. Per ulteriori informazioni, consulta Panoramica della console Dialogflow.
- Fai clic su 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 dell'agente, la lingua predefinita e il fuso orario predefinito.
- 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 di questa guida fanno ipotesi sul tuo agente, pertanto devi import 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 file
room-booking-agent.zip
. - Vai alla console Dialogflow ES.
- Seleziona l'agente.
- Fai clic sul pulsante delle 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 sui flussi di dati
Il metodo streamingDetectIntent
del tipo Session
restituisce un oggetto streaming gRPC bidirezionale.
I metodi disponibili per questo oggetto variano in base alla lingua, quindi consulta la documentazione di riferimento per la tua libreria client per i dettagli.
L'oggetto flusso viene utilizzato per inviare e ricevere dati contemporaneamente.
Utilizzando questo oggetto, il client trasmette il contenuto audio in Dialogflow e, contemporaneamente, ascolta un elemento StreamingDetectIntentResponse
.
Il metodo streamingDetectIntent
ha un parametro query_input.audio_config.single_utterance
che influisce sul riconoscimento vocale:
- Se
false
(impostazione predefinita), il riconoscimento vocale non cessa fino a quando 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 si è interrotta o messa in pausa, interrompe il riconoscimento vocale e invia unStreamingDetectIntentResponse
con risultato del riconoscimentoEND_OF_SINGLE_UTTERANCE
al tuo client. Qualsiasi audio inviato a Dialogflow nello stream dopo la ricezione diEND_OF_SINGLE_UTTERANCE
viene ignorato da Dialogflow.
Nel flusso bidirezionale, un client può chiudere a metà l'oggetto flusso 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) i flussi nelle seguenti situazioni:
- Il cliente ha terminato l'invio dei dati.
- Nel client, la configurazione
single_utterance
è impostata su true e riceve unStreamingDetectIntentResponse
con un risultato del riconoscimento pari aEND_OF_SINGLE_UTTERANCE
.
Dopo aver chiuso uno stream, il cliente dovrebbe avviarne una nuova richiesta con un nuovo stream, se necessario.
Intenzione di rilevamento flussi
I seguenti esempi utilizzano il metodo streamingDetectIntent
del tipo Session
per trasmettere audio in streaming.
Go
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione di C# nella pagina delle librerie client, quindi consulta la documentazione di riferimento di Dialogflow per .NET.
PHP: segui le istruzioni per la configurazione dei file PHP nella pagina relativa alle librerie client e consulta la documentazione di riferimento di Dialogflow per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi visita la documentazione di riferimento di Dialogflow per Ruby.
Esempi
Consulta la pagina degli esempi per le best practice sullo streaming dal microfono del browser a Dialogflow.