synthesize method

Future<File> synthesize(
  1. TextToSpeechRequest request, {
  2. int optimizeStreamingLatency = 0,
})

Synthesize text to speech Takes a TextToSpeechRequest object and a value from 0 to 1 on how much to optimize for streaming latency Returns a HistoryItem object

Implementation

Future<File> synthesize(TextToSpeechRequest request,
    {int optimizeStreamingLatency = 0}) async {
  try {
    Response<dynamic> response;
    if (optimizeStreamingLatency != 0) {
      response = await _dio.post(
        '/v1/text-to-speech/${request.voiceId}',
        data: request,
        queryParameters: {
          'optimize_streaming_latency': optimizeStreamingLatency
        },
        options: Options(
          responseType: ResponseType.bytes,
        ),
      );
    } else {
      response = await _dio.post(
        '/v1/text-to-speech/${request.voiceId}',
        data: request,
        options: Options(
          responseType: ResponseType.bytes,
        ),
      );
    }

    final localStorage = await Directory.systemTemp.createTemp();
    final String fileName =
        "${localStorage.path}/${request.voiceId}_${DateTime.now().toIso8601String()}.wav";
    final responseFile = await File(fileName).writeAsBytes(response.data);
    return responseFile;
  } catch (error) {
    throw _handleError(error);
  }
}