getDefaultVoice function
String?
getDefaultVoice(
- String langCode, {
- VoiceGender gender = VoiceGender.female,
- String provider = 'deepgram',
Get default voice for a language and gender
Implementation
String? getDefaultVoice(
String langCode, {
VoiceGender gender = VoiceGender.female,
String provider = 'deepgram',
}) {
final normalized = normalizeLanguageCode(langCode);
final effectiveGender =
gender == VoiceGender.neutral ? VoiceGender.female : gender;
final genderKey = effectiveGender == VoiceGender.male ? 'male' : 'female';
// Multilingual providers (not language-specific)
if (provider == 'deepgram') {
final voices = deepgramVoices[genderKey];
return voices?.isNotEmpty == true ? voices![0]['id'] : null;
}
if (provider == 'openai') {
final voices = openAIVoices[genderKey];
return voices?.isNotEmpty == true ? voices![0]['id'] : null;
}
if (provider == 'elevenlabs') {
final voices = elevenLabsVoices[genderKey];
return voices?.isNotEmpty == true ? voices![0]['id'] : null;
}
// Language-specific voice maps
if (provider == 'azure') {
final langVoices = azureNeuralVoices[normalized];
if (langVoices == null) return null;
final genderVoices = langVoices[genderKey] ?? langVoices['female'];
return genderVoices?.isNotEmpty == true ? genderVoices![0] : null;
}
// Default fallback to Deepgram
final voices = deepgramVoices[genderKey] ?? deepgramVoices['female'];
return voices?.isNotEmpty == true ? voices![0]['id'] : null;
}