initialize method

Future<void> initialize({
  1. String language = 'en-US',
  2. String? voiceId,
})

Initializes the TTS engine with language and voice settings

  • language: e.g. 'en-US', 'fr-FR'
  • voiceId: Optional voice override (must match platform voice)

Implementation

Future<void> initialize({
  String language = 'en-US',
  String? voiceId,
}) async {
  await _tts.setLanguage(language);
  await _tts.awaitSpeakCompletion(true);

  if (voiceId != null) {
    await _tts.setVoice({"name": voiceId, "locale": language});
  }

  _tts.setCompletionHandler(() {
    _isSpeaking = false;
    onSpeechComplete?.call();
  });

  _tts.setCancelHandler(() {
    _isSpeaking = false;
  });

  _tts.setErrorHandler((msg) {
    _isSpeaking = false;
    log('TTS Error: $msg');
  });

  await _tts.setVolume(1.0);
  await _tts.setSpeechRate(0.5);
  await _tts.setPitch(1.0);
}