Guide de démarrage : construire un agent vocal
Ce guide de démarrage crée un agent vocal complet. L’API Agents vocaux gère l’ensemble du pipeline : elle capte votre voix, la transcrit, génère une réponse avec un modèle et prononce cette réponse.
Pour cela, il vous faut une clé API Mistral, un microphone, des haut-parleurs, et Python ou Node.js. Pour exécuter plutôt un agent dans une page web, suivez le guide navigateur.
Installer les outils audio et le SDK
Le SDK Python utilise PyAudio. Comme PyAudio s’appuie sur PortAudio, installez PortAudio. Ajoutez l’extra voice-agents à l’installation du SDK : il installe la pile audio (PyAudio, LiveKit, NumPy) dont le SDK a besoin pour utiliser votre microphone et votre haut-parleur.
Pour JavaScript ou TypeScript, installez SoX et FFmpeg.
# macOS
brew install portaudio
# Linux
sudo apt install libportaudio2 libportaudiocpp0 portaudio19-dev libasound-dev libsndfile1-dev -y
pip install "mistralai[voice-agents]"Définir votre clé API
Stockez votre clé API dans la variable d’environnement MISTRAL_API_KEY. Pour en créer une, consultez Guide de démarrage : créer votre première clé API.
export MISTRAL_API_KEY="your-api-key"Discuter avec votre agent
Enregistrez ce code dans un fichier, puis exécutez-le avec Python ou Node.js.
import asyncio
import os
from mistralai.client import Mistral
from mistralai.extra.voice_agents import DefaultAudioInterface
MISTRAL_API_KEY = os.environ["MISTRAL_API_KEY"]
async def main():
async with Mistral(api_key=MISTRAL_API_KEY) as client:
session = await client.audio.sessions.init(
audio_interface=DefaultAudioInterface(),
instructions="Please respond to me in the most dramatic way possible."
)
def on_transcript(event):
print(f"{event.role}: {event.content}")
session.on("transcript", on_transcript)
async with session:
await session.wait()
asyncio.run(main())Vous devriez voir
Appuyez sur Ctrl+C pour arrêter.
Aller plus loin
Cet exemple n’utilise que deux paramètres : "audio_interface" / audioInterface et "instructions". Il en existe bien d’autres. Par exemple, pour changer la voix de l’agent, utilisez le paramètre "tts" :
tts={"voice_id": "fr_marie_neutral"}