Le applicazioni spesso richiedono un bot per rispondere all'utente finale. Dialogflow Le applicazioni spesso hanno bisogno di un bot per rispondere all'utente finale. Dialogflow ti consente di utilizzare Cloud Text-to-Speech, basato su DeepMind WaveNet, per generare risposte vocali dal tuo agente. Questa conversione delle risposte di testo degli intent in audio è chiamata output audio, sintesi vocale,
Puoi utilizzare l'audio sia per l'input che per l'output quando rilevi un intent. Questo è comune quando si sviluppano app che comunicano con gli utenti utilizzando un'interfaccia puramente audio.
Per un elenco delle lingue supportate, consulta la colonna TTS nella pagina Lingue.
Prima di iniziare
Questa funzionalità è applicabile solo quando si utilizza l'API per le interazioni con gli utenti finali. Se utilizzi un'integrazione, puoi saltare questa guida.
Prima di iniziare, completa i seguenti passaggi:
- Leggi le nozioni di base di Dialogflow.
- Esegui i passaggi di configurazione.
Crea un agente
- Vai alla console di Dialogflow ES.
- Se richiesto, accedi alla console. Per saperne di più, consulta la panoramica della console Dialogflow.
- Nel menu della barra laterale, espandi Agenti di caricamento.
- Fai clic su Crea nuovo agente.
- Inserisci il nome dell'agente, la lingua predefinita e il fuso orario predefinito.
- Inserisci un progetto esistente. Per consentire alla console Dialogflow di creare un progetto, seleziona Crea un nuovo progetto Google.
- Fai clic su Crea.
Rileva l'intent
Per rilevare l'intent, chiama il metodo detectIntent sul tipo Sessions.
REST
1. Prepara i contenuti audio
Scarica il file input_audio di esempio book-a-room.wav, che dice "prenota una stanza". Per questo esempio, il file audio deve essere codificato in base64, in modo da poter essere fornito nella richiesta JSON di seguito.
Ecco un esempio per Linux:
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
Per esempi su altre piattaforme, consulta Incorporamento di audio codificato in base64 nella documentazione dell'API Cloud Speech.
2. Invia una richiesta di rilevamento dell'intent
Chiama il metodo detectIntent sul tipo Sessions e specifica l'audio con codifica base64.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SESSION_ID: un ID sessione
- BASE64_AUDIO: il contenuto base64 del file di output precedente
Metodo HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Corpo JSON della richiesta:
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"outputAudioConfig" : {
"audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16"
},
"inputAudio": "BASE64_AUDIO"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"responseId": "b7405848-2a3a-4e26-b9c6-c4cf9c9a22ee",
"queryResult": {
"queryText": "book a room",
"speechRecognitionConfidence": 0.8616504,
"action": "room.reservation",
"parameters": {
"time": "",
"date": "",
"duration": "",
"guests": "",
"location": ""
},
"fulfillmentText": "I can help with that. Where would you like to reserve a room?",
"fulfillmentMessages": [
{
"text": {
"text": [
"I can help with that. Where would you like to reserve a room?"
]
}
}
],
"intent": {
"name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228",
"displayName": "room.reservation"
},
"intentDetectionConfidence": 1,
"diagnosticInfo": {},
"languageCode": "en-us"
},
"outputAudio": "UklGRs6vAgBXQVZFZm10IBAAAAABAAEAwF0AAIC7AA..."
}
Nota che il valore del campo queryResult.action è room.reservation
e il campo outputAudio contiene una stringa audio base64 di grandi dimensioni.
3. Riproduci l'audio di output
Copia il testo dal campo outputAudio e salvalo in un file denominato output_audio.b64. Questo file deve essere convertito in audio.
Ecco un esempio per Linux:
base64 -d output_audio.b64 > output_audio.wav
Per esempi su altre piattaforme, consulta Decodifica dei contenuti audio codificati in base64 nella documentazione dell'API Text-to-Speech.
Ora puoi riprodurre il file audio output_audio.wav e ascoltare se corrisponde al testo del campo queryResult.fulfillmentMessages[1].text.text[0] sopra.
Viene scelto il secondo elemento fulfillmentMessages perché è la risposta di testo per la piattaforma predefinita.
Java
Per eseguire l'autenticazione in Dialogflow CX, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow CX, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow CX, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Per saperne di più sui campi di risposta pertinenti, consulta la sezione Rileva le risposte di intent.
Rileva le risposte di intent
La risposta a una richiesta di rilevamento dell'intent è di tipo DetectIntentResponse.
La normale elaborazione dell'intent di rilevamento controlla i contenuti del campo DetectIntentResponse.queryResult.fulfillmentMessages.
Il campo DetectIntentResponse.outputAudio viene compilato con l'audio in base ai valori delle risposte di testo della piattaforma predefinita presenti nel campo DetectIntentResponse.queryResult.fulfillmentMessages:
- Se esistono più risposte di testo predefinite, vengono concatenate durante la generazione dell'audio.
- Se non esistono risposte di testo predefinite della piattaforma, i contenuti audio generati sono vuoti.
Il campo DetectIntentResponse.outputAudioConfig viene compilato con le impostazioni audio utilizzate per generare l'audio di output.
Rileva l'intent da uno stream
Quando rilevi l'intent da uno stream, invii richieste simili all'esempio che non utilizza l'audio di output: Rilevamento dell'intent da uno stream.
Tuttavia, devi fornire un campo OutputAudioConfig alla richiesta. I campi output_audio e output_audio_config vengono compilati nella risposta in streaming finale che ricevi dal server dell'API Dialogflow. Per saperne di più, consulta StreamingDetectIntentRequest e StreamingDetectIntentResponse.
Impostazioni dell'agente per la voce
Puoi controllare vari aspetti della sintesi vocale. Consulta le impostazioni di sintesi vocale dell'agente.
Utilizza il simulatore di Dialogflow
Puoi interagire con l'agente e ricevere risposte audio utilizzando il simulatore di Dialogflow:
- Attiva la sintesi vocale automatica seguendo le istruzioni riportate in Impostazioni di sintesi vocale dell'agente.
- Digita o pronuncia "prenota una stanza" nel simulatore.
- Visualizza la sezione Audio di output nel simulatore.