> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Mistral La classe MistralVoice fournit des fonctionnalités de synthèse et de reconnaissance vocales à l'aide des modèles audio Voxtral de Mistral. Elle prend en charge la TTS mise en mémoire tampon et en streaming, la transcription par lots avec diarisation et le clonage de voix à partir d'un audio de référence. ## Exemple d'utilisation ```typescript import { MistralVoice } from '@mastra/voice-mistral' const voice = new MistralVoice() // Text-to-speech const audioStream = await voice.speak('Hello, how can I help you?', { responseFormat: 'mp3', }) // Speech-to-text const text = await voice.listen(audioStream, { language: 'en', }) // List available voices const speakers = await voice.getSpeakers() ``` ```typescript import { MistralVoice } from '@mastra/voice-mistral' // Initialize with specific configuration const voice = new MistralVoice({ speechModel: { name: 'voxtral-mini-tts-2603', apiKey: 'your-mistral-api-key', }, listeningModel: { name: 'voxtral-mini-latest', apiKey: 'your-mistral-api-key', }, speaker: 'en_paul_neutral', }) ``` ## Paramètres du constructeur **speechModel** (`MistralModelConfig`): Configuration de la synthèse vocale. (Default: `{ name: 'voxtral-mini-tts-2603' }`) **speechModel.name** (`string`): Identifiant du modèle de synthèse vocale. **speechModel.apiKey** (`string`): Clé API Mistral. Utilise la variable d'environnement MISTRAL\_API\_KEY à défaut. **listeningModel** (`MistralModelConfig`): Configuration de la reconnaissance vocale. (Default: `{ name: 'voxtral-mini-latest' }`) **listeningModel.name** (`string`): Identifiant du modèle de transcription. Utilisez 'voxtral-mini-2507' pour une version fixe. **listeningModel.apiKey** (`string`): Clé API Mistral. Utilise la variable d'environnement MISTRAL\_API\_KEY à défaut. **speaker** (`string`): Identifiant par défaut de la voix pour la synthèse vocale. Récupérez les identifiants disponibles avec getSpeakers(). (Default: `'en_paul_neutral'`) ## Méthodes ### `speak(input, options?)` Convertit du texte en parole à l'aide du modèle TTS Voxtral de Mistral. Prend en charge les sorties mises en mémoire tampon et en streaming. **input** (`string | NodeJS.ReadableStream`): Texte ou flux de texte à convertir en parole. **options** (`MistralSpeakOptions`): Options de configuration. **options.speaker** (`string`): Identifiant de la voix à utiliser. Remplace la valeur par défaut du constructeur. **options.responseFormat** (`'pcm' | 'wav' | 'mp3' | 'flac' | 'opus'`): Format de sortie audio. Utilisez 'pcm' pour obtenir la plus faible latence en streaming. **options.refAudio** (`string`): Audio de référence encodé en base64 pour un clonage ponctuel de la voix (2 à 3 secondes au minimum). **options.model** (`string`): Remplace le modèle de synthèse vocale pour cet appel. **options.stream** (`boolean`): Active la TTS en streaming. Les chunks audio sont écrits dans le flux à mesure de leur arrivée. Renvoie : `Promise` ### `listen(audioStream, options?)` Transcrit un contenu audio à l'aide du modèle de transcription Voxtral de Mistral. Prend en charge la diarisation, le biais contextuel et le niveau de détail des horodatages. **audioStream** (`NodeJS.ReadableStream`): Flux audio à transcrire. **options** (`MistralListenOptions`): Options de configuration. **options.language** (`string`): Code de langue (par exemple, 'en'). Améliore la précision lorsqu'il est indiqué. **options.diarize** (`boolean`): Active la diarisation des locuteurs. **options.contextBias** (`string[]`): Mots ou expressions destinés à orienter le vocabulaire. **options.timestampGranularities** (`('segment' | 'word')[]`): Niveau de détail des horodatages pour les segments de transcription. **options.filetype** (`string`): Indication de l'extension du fichier audio pour le flux d'entrée. Renvoie : `Promise` ### `getSpeakers()` Récupère les voix prédéfinies disponibles depuis l'API Mistral Voices. Chaque entrée contient : **voiceId** (`string`): Identifiant unique de la voix. **name** (`string`): Nom d'affichage de la voix. **languages** (`string[]`): Langues prises en charge par la voix. **gender** (`string | null`): Genre de la voix. ### `getListener()` Renvoie `{ enabled: true }`. ## Remarques - Les clés API peuvent être fournies au moyen des options du constructeur ou de la variable d'environnement `MISTRAL_API_KEY` - La TTS prend en charge 9 langues : anglais, français, espagnol, portugais, italien, néerlandais, allemand, hindi et arabe - La STT prend en charge 13 langues : anglais, chinois, hindi, espagnol, arabe, français, portugais, russe, allemand, japonais, coréen, italien et néerlandais - Pour obtenir les meilleurs résultats, le texte d'entrée de la TTS doit rester inférieur à 300 mots par requête - La STT prend en charge jusqu'à 3 heures d'audio par requête - Le clonage de voix au moyen de `refAudio` nécessite au moins 2 à 3 secondes d'audio de référence - `getSpeakers()` renvoie des voix prédéfinies avec des identifiants UUID. La valeur par défaut `en_paul_neutral` est un alias nommé accepté par l'endpoint TTS, mais elle ne figure pas dans la liste