AI Endpoints - Développer son assistant audio
Créez un chatbot vocal en utilisant des APIs d'ASR, de LLM et de TTS en moins de 100 lignes de code
AI Endpoints est couvert par les Conditions particulières OVHcloud Public Cloud (voir l’Annexe 10 – « Conditions spécifiques – AI Endpoints »).
Introduction
Imaginez disposer d'un assistant virtuel qui écoute votre voix, comprend vos questions et répond par des réponses vocales, en moins de 100 lignes de code. Grâce à AI Endpoints, c'est désormais facilement réalisable.
Objectif
Dans ce tutoriel, vous allez apprendre à créer un assistant vocal virtuel (Audio Virtual Assistant) pleinement fonctionnel qui :
- Accepte une entrée vocale depuis un microphone
- La transcrit à l'aide de l'ASR (Automatic Speech Recognition)
- Traite la requête à l'aide d'un LLM (Large Language Models)
- Répond à l'aide de la TTS (Text-To-Speech)
Tout ceci est réalisé en connectant les AI Endpoints comme des pièces de puzzle, vous permettant de construire votre assistant en moins de 100 lignes de code Python.

Définitions
- Automatic Speech Recognition (ASR) : technologie qui convertit le langage parlé en texte. L'ASR permet ici à votre assistant de comprendre l'entrée vocale.
- Large Language Models (LLM) : modèles avancés entraînés pour comprendre le contexte et générer des réponses proches de celles d'un humain. Ici, les LLM prendront en charge la logique et répondront intelligemment à vos questions.
- Text-To-Speech (TTS) : technologie qui convertit du texte écrit en audio parlé. Avec la TTS, votre assistant répondra avec une voix naturelle, complétant ainsi la boucle de conversation.
Prérequis
- Un projet Public Cloud dans votre compte OVHcloud
- Un token d'accès pour OVHcloud AI Endpoints. Pour créer un token API, suivez les instructions du guide AI Endpoints - Premiers pas.
En pratique
Configurer l'environnement
Afin d'utiliser facilement les API d'AI Endpoints, créez un fichier .env pour stocker les variables d'environnement :
Veillez à remplacer la valeur du token (OVH_AI_ENDPOINTS_ACCESS_TOKEN) par la vôtre. Si vous n'en avez pas encore, suivez les instructions du guide AI Endpoints - Premiers pas.
Dans ce tutoriel, nous utiliserons les modèles Whisper-Large-V3 et gpt-oss-120b. N'hésitez pas à choisir d'autres modèles disponibles dans le catalogue AI Endpoints.
Créez ensuite un fichier requirements.txt avec les bibliothèques suivantes :
Lancez ensuite l'installation de ces dépendances :
Notez que Python 3.11 est utilisé dans ce tutoriel.
Importer les bibliothèques et variables nécessaires
Une fois cela fait, vous pouvez créer un fichier Python nommé audio-virtual-assistant-app.py, dans lequel vous importerez d'abord les bibliothèques Python comme suit :
Après ces lignes, chargez et accédez aux variables d'environnement de votre fichier .env :
Ensuite, définissez les clients qui seront utilisés pour interagir avec les modèles :
💡 Vous êtes maintenant prêt à commencer à coder votre application web !
Transcrire la question d'entrée avec l'ASR
Créez d'abord la fonction d'Automatic Speech Recognition (ASR) afin de transcrire l'entrée du microphone en texte :
Dans cette fonction :
- L'entrée audio est envoyée depuis l'enregistrement du microphone, sous le nom
question. - Un appel API est effectué vers l'AI Endpoint d'ASR nommé
whisper-large-v3. - Le texte de la réponse de transcription est renvoyé par la fonction.
🎉 Maintenant que vous disposez de cette fonction, vous êtes prêt à transcrire des fichiers audio.
Générer la réponse du LLM à la question d'entrée
Créez maintenant une fonction qui appelle le client LLM pour fournir des réponses aux questions :
Dans cette fonction :
- La conversation/les messages sont récupérés en tant que paramètres.
- Un appel est effectué vers l'endpoint LLM de chat completion, en utilisant le modèle
gpt-oss-120b. - La réponse du modèle est extraite et le texte du message final est renvoyé.
⏳ Presque terminé ! Il ne reste plus qu'à implémenter la TTS pour transformer la réponse du LLM en paroles.
Renvoyer la réponse avec la TTS
Construisez ensuite la fonction de Text To Speech (TTS) afin de transformer la réponse écrite en réponse orale :
Dans cette fonction :
- La réponse du LLM est récupérée.
- Un appel est effectué vers l'AI Endpoint de TTS nommé
nvr-tts-en-us. - L'échantillon audio et le taux d'échantillonnage sont renvoyés pour lire l'audio automatiquement.
⚡️ Vous y êtes presque ! La dernière étape consiste à construire votre application web, rendant votre solution facile à utiliser en quelques lignes de code.
Construire l'application de chat LLM avec Streamlit
Dans cette dernière étape, créez l'application de chatbot à l'aide de Streamlit, une bibliothèque Python open source permettant de créer rapidement des interfaces utilisateur pour des modèles de Machine Learning et des démonstrations. Voici un exemple de code fonctionnel :
Lancer l'application web Streamlit en local
🚀 Voilà ! Votre application web est maintenant prête à être utilisée ! Vous pouvez démarrer cette application Streamlit en local en lançant la commande suivante :

Améliorations
Par défaut, le modèle nvr-tts-en-us ne prend en charge qu'un nombre limité de caractères par requête lors de la génération audio. Si vous dépassez cette limite, vous rencontrerez des erreurs dans votre application.
Pour contourner cette limitation, vous pouvez remplacer la fonction tts_synthesis existante par l'implémentation suivante, qui traite le texte par blocs :
Conclusion
Vous venez de créer un assistant vocal virtuel (Audio Virtual Assistant) capable de mener une conversation naturelle à la voix, propulsé par les endpoints d'ASR, de LLM et de TTS.
Cet exemple démontre à quel point il est puissant, tout en restant simple, de tirer parti des services d'IA d'OVHcloud pour construire des applications intelligentes en quelques lignes de code.
➡️ Accédez au code complet ici.
Aller plus loin
Si vous souhaitez aller plus loin et déployer votre application web dans le cloud, en rendant votre interface accessible à tous, reportez-vous aux articles et tutoriels suivants :
- AI Deploy - Tutoriel - Créer et utiliser une image Docker personnalisée
- AI Deploy - Tutoriel - Déployer une app Gradio pour de la reconnaissance de schémas
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Votre avis nous intéresse !
N’hésitez pas à nous faire part de vos questions, retours et suggestions concernant AI Endpoints et ses fonctionnalités :
- Dans le canal #ai-endpoints du serveur Discord OVHcloud, où vous pouvez échanger avec la communauté et les équipes OVHcloud.