voice.getSpeakers()
La méthode getSpeakers() récupère la liste des options de voix disponibles (locuteurs) auprès du Provider Voice. Les applications peuvent proposer aux utilisateurs un choix de voix ou sélectionner par programmation la voix la plus appropriée selon le contexte.
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { OpenAIVoice } from '@mastra/voice-openai'
import { ElevenLabsVoice } from '@mastra/voice-elevenlabs'
// Initialize voice providers
const openaiVoice = new OpenAIVoice()
const elevenLabsVoice = new ElevenLabsVoice({
apiKey: process.env.ELEVENLABS_API_KEY,
})
// Get available speakers from OpenAI
const openaiSpeakers = await openaiVoice.getSpeakers()
console.log('OpenAI voices:', openaiSpeakers)
// Example output: [{ voiceId: "alloy" }, { voiceId: "echo" }, { voiceId: "fable" }, ...]
// Get available speakers from ElevenLabs
const elevenLabsSpeakers = await elevenLabsVoice.getSpeakers()
console.log('ElevenLabs voices:', elevenLabsSpeakers)
// Example output: [{ voiceId: "21m00Tcm4TlvDq8ikWAM", name: "Rachel" }, ...]
// Use a specific voice for speech
const text = 'Hello, this is a test of different voices.'
await openaiVoice.speak(text, { speaker: openaiSpeakers[2].voiceId })
await elevenLabsVoice.speak(text, { speaker: elevenLabsSpeakers[0].voiceId })
ParamètresLien direct vers Paramètres
Cette méthode n'accepte aucun paramètre.
Valeur renvoyéeLien direct vers Valeur renvoyée
Promise<Array<{ voiceId: string } & TSpeakerMetadata>>:
Promise
Une promesse qui se résout en un tableau d'options de voix, dont chacune contient au moins une propriété voiceId et peut inclure des métadonnées supplémentaires propres au Provider.
Métadonnées propres au ProviderLien direct vers Métadonnées propres au Provider
Les différents Providers Voice renvoient des métadonnées différentes pour leurs voix :
- OpenAI
- OpenAI Realtime
- Deepgram
- ElevenLabs
- Azure
- Murf
- PlayAI
- Speechify
- Sarvam
voiceId:
string
Identifiant unique de la voix (par exemple, 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer')
voiceId:
string
Identifiant unique de la voix (par exemple, 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer')
voiceId:
string
Identifiant unique de la voix
language:
string
Code de langue intégré à l'identifiant de la voix (par exemple, 'en')
voiceId:
string
Identifiant unique de la voix
name:
string
Nom lisible de la voix
category:
string
Catégorie de la voix (par exemple, 'premade', 'cloned')
voiceId:
string
Identifiant unique de la voix
languageCodes:
string[]
Tableau des codes de langue pris en charge par la voix (par exemple, ['en-US'])
voiceId:
string
Identifiant unique de la voix
language:
string
Code de langue extrait de l'identifiant de la voix (par exemple, 'en')
region:
string
Code de région extrait de l'identifiant de la voix (par exemple, 'US')
voiceId:
string
Identifiant unique de la voix
name:
string
Nom de la voix (identique à voiceId)
language:
string
Code de langue extrait de l'identifiant de la voix (par exemple, 'en')
gender:
string
Genre de la voix (toujours 'neutral' dans l'implémentation actuelle)
voiceId:
string
Identifiant unique de la voix (URL S3 vers manifest.json)
name:
string
Nom lisible de la voix (par exemple, 'Angelo', 'Arsenio')
accent:
string
Accent de la voix (par exemple, 'US', 'Irish', 'US African American')
gender:
string
Genre de la voix ('M' ou 'F')
age:
string
Catégorie d'âge de la voix (par exemple, 'Young', 'Middle')
style:
string
Style d'élocution de la voix (par exemple, 'Conversational')
voiceId:
string
Identifiant unique de la voix
name:
string
Nom lisible de la voix
language:
string
Code de langue de la voix (par exemple, 'en-US')
voiceId:
string
Identifiant unique de la voix
name:
string
Nom lisible de la voix
language:
string
Langue de la voix (par exemple, 'english', 'hindi')
gender:
string
Genre de la voix ('male' ou 'female')
RemarquesLien direct vers Remarques
- Les voix disponibles varient considérablement d'un Provider à l'autre
- Certains Providers peuvent nécessiter une authentification pour récupérer la liste complète des voix
- L'implémentation par défaut renvoie un tableau vide si le Provider ne prend pas en charge cette méthode
- Pour des raisons de performances, envisagez de mettre les résultats en cache si vous devez afficher fréquemment la liste
- La présence de la propriété
voiceIdest garantie pour tous les Providers, mais les métadonnées supplémentaires varient