textToSpeech method

  1. @override
Future<TTSResponse> textToSpeech(
  1. TTSRequest request
)
override

Convert text to speech with full configuration support

Throws UnsupportedError if not supported. Check supportedFeatures first.

Implementation

@override
Future<TTSResponse> textToSpeech(TTSRequest request) async {
  final response = await _textToSpeechInternal(
    request.text,
    voiceId: request.voice,
    model: request.model,
    languageCode: request.languageCode,
    seed: request.seed,
    previousText: request.previousText,
    nextText: request.nextText,
    previousRequestIds: request.previousRequestIds,
    nextRequestIds: request.nextRequestIds,
    textNormalization: request.textNormalization.name,
    enableLogging: request.enableLogging,
    optimizeStreamingLatency: request.optimizeStreamingLatency,
  );

  return TTSResponse(
    audioData: response.audioData,
    contentType: response.contentType,
    voice: request.voice,
    model: request.model,
    // ElevenLabs doesn't provide duration/sample rate in response
    duration: null,
    sampleRate: null,
    usage: null,
  );
}