synthesize method
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);
}
}