Guide de démarrage : construire un agent audio

Ce guide de démarrage exécute un agent audio auquel vous pouvez parler via le microphone et les haut-parleurs de votre ordinateur. Le SDK Audio Agents gère l'ensemble du pipeline : il capture votre voix, la transcrit, génère une réponse avec un modèle, la prononce et la joue. Vous avez besoin d'une clé API Mistral, d'un microphone, de haut-parleurs et de Python ou Node.js. Pour exécuter plutôt un agent dans une page web, suivez le guide du navigateur.

Installer le SDK

Installer le SDK

L'interface audio par défaut enregistre depuis votre microphone et joue le son sur vos haut-parleurs avec des outils natifs. Installez-les, puis le SDK :

# macOS
brew install portaudio
# Linux
sudo apt install libportaudio2 libportaudiocpp0 portaudio19-dev libasound-dev libsndfile1-dev -y

pip install "mistralai[voice-agents]"

Le SDK Python enregistre et joue l'audio avec PyAudio, qui nécessite PortAudio. Le SDK Node.js enregistre avec SoX et joue avec FFmpeg.

Définir votre clé API

Définir votre clé API

Stockez votre clé API dans la variable d'environnement MISTRAL_API_KEY. Pour en créer une, consultez Activer Studio et générer une clé API.

export MISTRAL_API_KEY="your-api-key"
Parler à votre agent

Parler à votre agent

Enregistrez le code dans un fichier, exécutez-le avec Python ou Node.js et commencez à parler. Appuyez sur Ctrl+C pour arrêter.

import asyncio
import os

from mistralai.client import Mistral
from mistralai.extra.voice_agents import DefaultAudioInterface

async def main() -> None:
    async with Mistral(api_key=os.environ["MISTRAL_API_KEY"]) as client:
        session = await client.audio.sessions.init(
            tts={"voice_id": "fr_marie_neutral"},
            instructions="You are a helpful voice assistant.",
            audio_interface=DefaultAudioInterface(),
        )

        def on_transcript(event) -> None:
            print(f"{event.role}: {event.content}")

        session.on("transcript", on_transcript)

        print("Voice agent connected. Press Ctrl+C to stop.")
        async with session:
            await session.wait()

asyncio.run(main())
Vous devriez voir

Vous devriez voir

Après Voice agent connected, l'agent écoute. Parlez, et chaque tour s'affiche sous la forme d'une ligne avec son rôle et son contenu, par exemple user: ... puis assistant: ..., pendant que vous entendez la réponse avec la voix fr_marie_neutral.

Aller plus loin

Aller plus loin