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'utilisationLien 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 constructeurLien direct vers Paramètres du constructeur
speechModel?:
name?:
apiKey?:
listeningModel?:
name?:
apiKey?:
speaker?:
MéthodesLien 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:
options?:
speaker?:
responseFormat?:
refAudio?:
model?:
stream?:
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:
options?:
language?:
diarize?:
contextBias?:
timestampGranularities?:
filetype?:
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:
name:
languages?:
gender?:
getListener()Lien direct vers getlistener
Renvoie { enabled: true }.
RemarquesLien 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
refAudioné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éfauten_paul_neutralest un alias nommé accepté par l'endpoint TTS, mais elle ne figure pas dans la liste