Aller au contenu principal

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
Lien direct vers Exemple d'utilisation

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()
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
Lien direct vers Paramètres du constructeur

speechModel?:

MistralModelConfig
= { name: 'voxtral-mini-tts-2603' }
Configuration de la synthèse vocale.
MistralModelConfig

name?:

string
Identifiant du modèle de synthèse vocale.

apiKey?:

string
Clé API Mistral. Utilise la variable d'environnement MISTRAL_API_KEY à défaut.

listeningModel?:

MistralModelConfig
= { name: 'voxtral-mini-latest' }
Configuration de la reconnaissance vocale.
MistralModelConfig

name?:

string
Identifiant du modèle de transcription. Utilisez 'voxtral-mini-2507' pour une version fixe.

apiKey?:

string
Clé API Mistral. Utilise la variable d'environnement MISTRAL_API_KEY à défaut.

speaker?:

string
= 'en_paul_neutral'
Identifiant par défaut de la voix pour la synthèse vocale. Récupérez les identifiants disponibles avec getSpeakers().

Méthodes
Lien direct vers Méthodes

speak(input, options?)
Lien direct vers speakinput-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.
MistralSpeakOptions

speaker?:

string
Identifiant de la voix à utiliser. Remplace la valeur par défaut du constructeur.

responseFormat?:

'pcm' | 'wav' | 'mp3' | 'flac' | 'opus'
Format de sortie audio. Utilisez 'pcm' pour obtenir la plus faible latence en streaming.

refAudio?:

string
Audio de référence encodé en base64 pour un clonage ponctuel de la voix (2 à 3 secondes au minimum).

model?:

string
Remplace le modèle de synthèse vocale pour cet appel.

stream?:

boolean
Active la TTS en streaming. Les chunks audio sont écrits dans le flux à mesure de leur arrivée.

Renvoie : Promise<NodeJS.ReadableStream>

listen(audioStream, options?)
Lien direct vers listenaudiostream-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.
MistralListenOptions

language?:

string
Code de langue (par exemple, 'en'). Améliore la précision lorsqu'il est indiqué.

diarize?:

boolean
Active la diarisation des locuteurs.

contextBias?:

string[]
Mots ou expressions destinés à orienter le vocabulaire.

timestampGranularities?:

('segment' | 'word')[]
Niveau de détail des horodatages pour les segments de transcription.

filetype?:

string
Indication de l'extension du fichier audio pour le flux d'entrée.

Renvoie : Promise<string>

getSpeakers()
Lien direct vers 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()
Lien direct vers getlistener

Renvoie { enabled: true }.

Remarques
Lien direct vers 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