Cette page explique comment diffuser une entrée audio dans une requête de détection d'intent à l'aide de l'API. Dialogflow traite l'audio et le convertit en texte avant de tenter une correspondance d'intent. Ce processus est appelé entrée audio, reconnaissance vocale, speech-to-text ou STT.
Avant de commencer
Cette fonctionnalité n'est disponible que lorsque l'API est utilisée pour les interactions de l'utilisateur final. Si vous utilisez une intégration, vous pouvez ignorer ce guide.
Avant de lire ce guide, effectuez les tâches suivantes :
- Consultez la section Principes de base de Dialogflow.
- Effectuez la procédure de configuration.
Créer un agent
- Accédez à la console Dialogflow ES.
- Connectez-vous à la console si vous y êtes invité. Pour en savoir plus, consultez la présentation de la console Dialogflow.
- Dans le menu de la barre latérale, développez Agents de chargement.
- Cliquez sur Create new agent (Créer un agent).
- Saisissez le nom de l'agent, la langue par défaut et le fuseau horaire par défaut.
- Saisissez un projet existant. Pour laisser la console Dialogflow créer un projet, sélectionnez Create a new Google project (Créer un projet Google).
- Cliquez sur Créer.
Principes de base du streaming
La méthode streamingDetectIntent du type Session renvoie un objet de streaming gRPC bidirectionnel.
Les méthodes disponibles pour cet objet varient selon le langage. Pour en savoir plus, consultez la documentation de référence de votre bibliothèque cliente.
L'objet de streaming permet d'envoyer et de recevoir des données simultanément. À l'aide de cet objet, votre client diffuse du contenu audio vers Dialogflow, tout en écoutant simultanément un StreamingDetectIntentResponse.
La méthode streamingDetectIntent comporte un paramètre query_input.audio_config.single_utterance qui affecte la reconnaissance vocale :
- Si la valeur est
false(par défaut), la reconnaissance vocale ne s'arrête pas tant que le client ne ferme pas le flux. - Si la valeur est
true, Dialogflow détecte un seul énoncé parlé dans l'entrée audio. Lorsque Dialogflow détecte que la voix de l'audio s'est arrêtée ou a été mise en pause, il cesse la reconnaissance vocale et envoie unStreamingDetectIntentResponseavec un résultat de reconnaissance deEND_OF_SINGLE_UTTERANCEà votre client. Tout contenu audio envoyé à Dialogflow sur le flux après réception deEND_OF_SINGLE_UTTERANCEest ignoré par Dialogflow.
Dans le streaming bidirectionnel, un client peut fermer à moitié l'objet de flux pour signaler au serveur qu'il n'enverra plus de données. Par exemple, en Java et en Go, cette méthode est appelée closeSend.
Il est important de fermer à moitié (mais pas d'abandonner) les flux dans les situations suivantes :
- Votre client a fini d'envoyer des données.
- Votre client est configuré avec
single_utterancedéfini surtrueet reçoit unStreamingDetectIntentResponseavec un résultat de reconnaissance deEND_OF_SINGLE_UTTERANCE.
Après avoir fermé un flux, votre client doit lancer une nouvelle requête avec un nouveau flux, si nécessaire.
Détecter un intent en streaming
Les exemples qui suivent font appel à la méthode streamingDetectIntent du type Session pour diffuser du contenu audio.
Go
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Dialogflow CX, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Langages supplémentaires
C# : veuillez suivre les instructions de configuration de C# sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Dialogflow CX pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur Dialogflow CX pour PHP.
Ruby : veuillez suivre les instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Dialogflow CX pour Ruby.
Exemples
Pour en savoir plus sur les bonnes pratiques concernant le streaming d'un micro de navigateur vers Dialogflow, consultez la page d'exemples.