> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Inworld L'implémentation vocale Inworld dans Mastra fournit des fonctionnalités de synthèse vocale (TTS) en streaming et de transcription vocale (STT) par lots à l'aide de l'API Inworld AI. Elle prend en charge plusieurs modèles TTS et STT, des encodages audio configurables et le streaming audio progressif. Pour les échanges vocaux bidirectionnels simultanés en temps réel, le même package exporte [`InworldRealtimeVoice`](https://mastra.zisheng.pro/fr/reference/voice/inworld-realtime). ## Exemple d'utilisation ```typescript import { InworldVoice } from '@mastra/voice-inworld' // Initialize with default configuration (uses INWORLD_API_KEY environment variable) const voice = new InworldVoice() // Initialize with custom configuration const voice = new InworldVoice({ speechModel: { name: 'inworld-tts-2', apiKey: 'your-api-key', }, listeningModel: { name: 'groq/whisper-large-v3', apiKey: 'your-api-key', }, speaker: 'Dennis', }) // Text-to-Speech (streaming) const audioStream = await voice.speak('Hello, world!') // Speech-to-Text const transcript = await voice.listen(audioStream) ``` ## Paramètres du constructeur **speechModel** (`InworldVoiceConfig`): Configuration de la fonctionnalité de synthèse vocale. (Default: `{ name: 'inworld-tts-2' }`) **speechModel.name** (`'inworld-tts-2' | 'inworld-tts-1.5-max' | 'inworld-tts-1.5-mini'`): Modèle TTS Inworld à utiliser. **speechModel.apiKey** (`string`): Clé API Inworld. Utilise par défaut la variable d’environnement INWORLD\_API\_KEY. **listeningModel** (`InworldListeningConfig`): Configuration de la fonctionnalité de transcription vocale. (Default: `{ name: 'groq/whisper-large-v3' }`) **listeningModel.name** (`'groq/whisper-large-v3'`): Modèle STT Inworld à utiliser. **listeningModel.apiKey** (`string`): Clé API Inworld. Utilise par défaut la variable d’environnement INWORLD\_API\_KEY. **speaker** (`string`): ID de voix par défaut à utiliser pour la synthèse vocale. (Default: `'Dennis'`) **audioEncoding** (`'LINEAR16' | 'MP3' | 'OGG_OPUS' | 'ALAW' | 'MULAW' | 'FLAC' | 'PCM' | 'WAV'`): Encodage audio par défaut de la sortie TTS. (Default: `'MP3'`) **sampleRateHertz** (`number`): Fréquence d’échantillonnage par défaut de la sortie TTS. (Default: `48000`) **language** (`string`): Code de langue BCP-47 par défaut pour la STT. (Default: `'en-US'`) ## Méthodes ### `speak(input, options?)` Convertit du texte en parole à l'aide du point de terminaison TTS en streaming d'Inworld. Renvoie un stream lisible qui émet progressivement les segments audio à mesure de leur arrivée. ```typescript const audioStream = await voice.speak('Hello, world!', { speaker: 'Olivia', audioEncoding: 'WAV', sampleRateHertz: 24000, speakingRate: 1.2, temperature: 0.8, }) ``` **input** (`string | NodeJS.ReadableStream`): Texte à convertir en parole. Si un stream est fourni, il sera d'abord converti en texte. **options** (`InworldSpeakOptions`): Options supplémentaires de synthèse vocale. **options.speaker** (`string`): Remplace le locuteur par défaut pour cette requête. **options.audioEncoding** (`AudioEncoding`): Remplace l’encodage audio par défaut. **options.sampleRateHertz** (`number`): Remplace la fréquence d’échantillonnage par défaut. **options.speakingRate** (`number`): Règle la vitesse de parole. **options.temperature** (`number`): Contrôle la variabilité de la voix. Pris en compte par les modèles inworld-tts-1.5-\* ; ignoré par inworld-tts-2. **options.deliveryMode** (`'STABLE' | 'BALANCED' | 'CREATIVE'`): Contrôle d’orientation du style d’élocution. Pris en compte uniquement par inworld-tts-2. **options.language** (`string`): Code de langue BCP-47 de cette requête. Détecté automatiquement s’il est omis. **Renvoie :** `Promise` ### `listen(input, options?)` Convertit la parole en texte à l'aide du point de terminaison STT par lots d'Inworld. ```typescript const transcript = await voice.listen(audioStream, { audioEncoding: 'MP3', sampleRateHertz: 44100, language: 'ja-JP', }) ``` **input** (`NodeJS.ReadableStream`): Stream audio à transcrire. **options** (`InworldListenOptions`): Options supplémentaires de transcription. **options.audioEncoding** (`'LINEAR16' | 'MP3' | 'OGG_OPUS' | 'FLAC' | 'AUTO_DETECT'`): Encodage audio du stream d’entrée. **options.sampleRateHertz** (`number`): Fréquence d’échantillonnage de l’audio d’entrée. **options.language** (`string`): Code de langue BCP-47 de la transcription. **options.numberOfChannels** (`number`): Nombre de canaux audio dans l’entrée. **Renvoie :** `Promise` ### `getSpeakers()` Renvoie la liste des voix disponibles dans l'API Inworld. ```typescript const speakers = await voice.getSpeakers() // [{ voiceId: 'Dennis', name: 'Dennis', language: 'en', description: '...', tags: ['friendly'], source: 'SYSTEM' }, ...] ``` **Renvoie :** `Promise>` ## Remarques - Le point de terminaison TTS utilise le streaming NDJSON progressif ; la lecture audio peut donc commencer avant la réception de la réponse complète. - Une clé API peut être fournie dans la configuration `speechModel` ou `listeningModel`, ou avec la variable d'environnement `INWORLD_API_KEY`. Les clés TTS et STT sont résolues indépendamment : transmettre des valeurs `speechModel.apiKey` et `listeningModel.apiKey` distinctes permet à chaque service d'utiliser ses propres identifiants. Si une seule clé est fournie, elle est réutilisée pour les deux services comme valeur de repli avant la variable d'environnement. - `inworld-tts-2` est le modèle phare par défaut. Utilisez `deliveryMode` (`STABLE` | `BALANCED` | `CREATIVE`) pour orienter le style d'élocution de ce modèle. L'option `temperature` est ignorée sur `inworld-tts-2`. - Le modèle `inworld-tts-1.5-mini` offre une latence plus faible au prix d'une qualité vocale inférieure à celle de `inworld-tts-1.5-max`.