Questa pagina mostra come trasmettere in streaming l'input audio a una richiesta di rilevamento dell'intenzione utilizzando l'API. Dialogflow elabora l'audio e lo converte in testo prima di tentare una corrispondenza con l'intent. Questa conversione è nota come input audio, riconoscimento vocale, conversione della voce in testo o STT.
Prima di iniziare
Questa funzionalità è applicabile solo se l'API viene utilizzata per le interazioni con gli utenti finali. Se utilizzi un'integrazione, puoi saltare questa guida.
Prima di leggere questa guida, devi:
- Leggi le nozioni di base su Dialogflow.
- Esegui i passaggi 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 la panoramica della console di Dialogflow.
- Fai clic su Crea agente nel menu della barra laterale a 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 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 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 il tuo agente.
- Fai clic sul pulsante settings delle impostazioni accanto al nome dell'agente.
- Seleziona la scheda Esporta e importa.
- Seleziona Ripristina da file ZIP e segui le istruzioni per ripristinare il file ZIP 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 in base al linguaggio, quindi consulta la documentazione di riferimento della tua libreria client per maggiori dettagli.
L'oggetto di streaming viene utilizzato per inviare e ricevere dati contemporaneamente.
Utilizzando questo oggetto, il client trasmette in streaming i contenuti audio a Dialogflow,
mentre contemporaneamente ascolta un 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 un messaggioStreamingDetectIntentResponse
con un risultato di riconoscimentoEND_OF_SINGLE_UTTERANCE
al client. Qualsiasi audio inviato a Dialogflow nello stream dopo la ricezione diEND_OF_SINGLE_UTTERANCE
viene ignorato da Dialogflow.
Nello streaming bidirezionale, un client può chiudere parzialmente l'oggetto stream per segnalare al server che non invierà più dati.
Ad esempio, in Java e Go questo metodo si chiama closeSend
.
È importante chiudere parzialmente (ma non annullare) gli stream nelle seguenti situazioni:
- Il cliente ha terminato l'invio dei 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 in streaming
I seguenti esempi utilizzano il metodo streamingDetectIntent
del tipo
Session
per riprodurre in streaming l'audio.
Go
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti a Dialogflow, configura le 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 per C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di Dialogflow per .NET.
PHP: segui le istruzioni di configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di Dialogflow per PHP.
Ruby: segui le istruzioni di configurazione di Ruby nella pagina delle librerie client e poi consulta la documentazione di riferimento di Dialogflow per Ruby.
Esempi
Consulta la pagina Samples per le best practice sullo streaming da un microfono del browser a Dialogflow.