← Retour

Module 3 : L’ASSISTANT VOCAL

Permettre à notre agent de comprendre les messages audio grâce à la reconnaissance vocale.


📖 COURS

1) LA MAGIE DE LA RECONNAISSANCE VOCALE (SPEECH-TO-TEXT) La technologie Speech-to-Text (STT) est ce qui permet à des machines de convertir le langage parlé en texte écrit. Au cœur de cette technologie se trouvent des modèles d'IA complexes entraînés sur des milliers d'heures de données audio.
2) WHISPER : LA MEILLEURE OREILLE DU MARCHÉ **Whisper** est le modèle de reconnaissance vocale d'OpenAI. Il est réputé pour sa précision exceptionnelle, sa robustesse face aux bruits de fond et sa capacité à comprendre de nombreuses langues et accents. En l'intégrant, nous nous assurons que les transcriptions des messages vocaux de vos utilisateurs (ou de vous-même) sont de la plus haute qualité.
3) LE FLUX DE TRAVAIL POUR UN MESSAGE AUDIO Le traitement d'un message audio est un peu plus complexe que celui d'un message texte, car le fichier audio n'est pas directement inclus dans la première notification de WhatsApp. Le processus se déroule en plusieurs étapes : 1) **Notification de WhatsApp** : n8n reçoit une notification disant "Hé, tu as reçu un message audio. Voici son ID." 2) **Obtenir l'URL du média** : n8n doit faire un premier appel à l'API de Meta en disant "Donne-moi l'URL pour l'audio avec cet ID." 3) **Télécharger le fichier audio** : n8n utilise ensuite cette URL pour télécharger le fichier audio (qui est souvent au format `.ogg` pour WhatsApp). 4) **Transcription** : n8n envoie ce fichier audio binaire à l'API Whisper d'OpenAI. 5) **Récupération du texte** : Whisper renvoie le texte transcrit. 6) **Traitement** : Ce texte est ensuite envoyé dans le reste de notre workflow, exactement comme s'il avait été tapé à la main !

🗝️ POINTS CLÉS

1) WHISPER POUR LA PRÉCISION - Nous utilisons Whisper pour obtenir des transcriptions fiables.
2) GESTION DES FICHIERS BINAIRES - Ce module introduit la manipulation de fichiers (données binaires) dans n8n, une compétence très puissante.
3) WORKFLOW EN PLUSIEURS ÉTAPES - Le traitement audio nécessite une séquence d'appels API pour récupérer le fichier avant de pouvoir le traiter.
4) RÉUTILISATION DE LA LOGIQUE EXISTANTE - Une fois le texte transcrit, il est injecté dans notre workflow de classification (Module 2) sans aucune modification nécessaire de ce dernier. On ne réinvente pas la roue !

💪 PRATIQUE

PRÉREQUIS - Votre workflow n8n fonctionnel des modules 1 et 2. - Vos identifiants (credentials) OpenAI déjà configurés dans n8n.
1) ADAPTER LE WORKFLOW POUR ROUTER LES TYPES DE MESSAGE La première chose à faire est de différencier un message texte d'un message audio. 1) Ouvrez votre workflow n8n. 2) Ajoutez un nœud **IF** juste après votre nœud **Webhook**. 3) Configurez cette condition pour vérifier le type de message : - **Value 1** : Utilisez l'expression pour trouver le type de message : `{{$json.body.entry[0].changes[0].value.messages[0].type}}` - **Operation** : `String` -> `Equals` - **Value 2** : `text` 4) Renommez ce nœud IF en "Texte ou Audio ?". 5) Connectez la sortie `true` (c'est un message texte) au nœud **OpenAI Chat** (notre classifieur du Module 2). 6) La sortie `false` est notre nouvelle branche pour les messages audio. C'est là que nous allons construire la logique de transcription.
2) OBTENIR L'URL DU FICHIER AUDIO (BRANCHE AUDIO) 1) Cliquez sur le `+` de la sortie `false` du nœeud "Texte ou Audio ?". 2) Ajoutez un nœud **HTTP Request**. Renommez-le "Get Media URL". 3) Configurez-le comme suit : - **Method**: `GET` - **URL**: `https://graph.facebook.com/v18.0/{{$json.body.entry[0].changes[0].value.messages[0].audio.id}}` - L'expression `{{...}}` récupère dynamiquement l'ID du fichier audio depuis le webhook. - **Authentication**: `Header Auth` - **Name**: `Authorization` - **Value**: `Bearer VOTRE_JETON_ACCES` (utilisez le même jeton que pour envoyer des messages). 4) Exécutez ce nœud avec un message audio de test. La sortie de ce nœud doit être un JSON contenant une `url`.
3) TÉLÉCHARGER LE FICHIER AUDIO 1) Ajoutez un autre nœud **HTTP Request** après "Get Media URL". Renommez-le "Download Audio File". 2) Configurez-le : - **Method**: `GET` - **URL**: Utilisez une expression pour récupérer l'URL de l'étape précédente : `{{$json.url}}` - **Authentication**: `Header Auth` (oui, encore une fois). - **Name**: `Authorization` - **Value**: `Bearer VOTRE_JETON_ACCES` - **Send Headers** : Activez cette option. - **IMPORTANT -> Response Format**: Changez la valeur par défaut `JSON` en **`File`**. Cela indique à n8n que la réponse attendue n'est pas du texte, mais un fichier binaire.
4) TRANSCRIRE L'AUDIO AVEC WHISPER 1) Ajoutez un nœud **OpenAI** après "Download Audio File". 2) Configurez-le pour la transcription : - **Credential for OpenAI API**: Sélectionnez vos identifiants OpenAI. - **Resource**: `Audio` - **Operation**: `Transcription` - **Model**: `whisper-1`. - **Source File**: Le champ attend le nom de la propriété qui contient les données binaires. Par défaut, le nœud HTTP Request précédent stocke le fichier dans une propriété nommée `data`. Donc, dans le champ "Property Name", tapez : `data`.
5) CONNECTER LA TRANSCRIPTION AU RESTE DU WORKFLOW 1) Le nœud OpenAI (Whisper) a maintenant une sortie qui contient le texte transcrit. 2) Il suffit de relier la sortie de ce nœud OpenAI (Whisper) à l'entrée du nœud **OpenAI Chat** (le classifieur du Module 2). Et voilà ! Votre workflow gère maintenant les deux types de messages.

❓ FAQ

1) QUELS SONT LES FORMATS AUDIO SUPPORTÉS PAR WHISPER ? Whisper supporte de nombreux formats (mp3, mp4, mpeg, mpga, m4a, wav, webm). Heureusement, le format `.ogg` utilisé par WhatsApp est également pris en charge, donc aucune conversion n'est nécessaire.
2) LE PROCESSUS DE TRANSCRIPTION EST-IL LENT ? Il y a une petite latence (quelques secondes) due aux multiples appels API. Pour une conversation en temps réel, cela peut se remarquer, mais pour un assistant asynchrone, c'est tout à fait acceptable.
3) EST-CE QUE CELA FONCTIONNE DANS D'AUTRES LANGUES QUE LE FRANÇAIS ? Oui ! Whisper est un modèle multilingue extrêmement performant. Il détectera automatiquement la langue parlée et la transcrira. Vous n'avez rien à configurer de plus.

🧠 QUIZ

1) POURQUOI LE TRAITEMENT D'UN MESSAGE AUDIO NÉCESSITE-T-IL DEUX NŒUDS "HTTP REQUEST" ? * a) Pour des raisons de sécurité. * b) Le premier obtient l'URL du fichier, le second le télécharge. * c) Le premier transmet l'audio, le second reçoit le texte. * d) C'est une erreur, un seul nœud suffit.
... Réponse : B
2) QUEL EST LE "RESPONSE FORMAT" ESSENTIEL À CONFIGURER LORS DU TÉLÉCHARGEMENT DU FICHIER AUDIO ? * a) JSON * b) String * c) File * d) XML
... Réponse : C
3) QUELLE EST LA DESTINATION FINALE DU TEXTE TRANSCRIT PAR WHISPER ? * a) Il est directement envoyé à l'utilisateur. * b) Il est sauvegardé dans un fichier. * c) Il est envoyé au nœud de classification (OpenAI Chat) du Module 2. * d) Il est supprimé.
... Réponse : C