Как записать поток из веб-службы AWS Polly TTS в файл mp3 или wav с использованием C#
Я хочу использовать веб-сервис AWS Polly TTS в приложении C# winforms, которое будет принимать текст и записывать речь в файл *.wav или *.mp3.
Я попытался перевести их пример Java на C#, как это:
private void TTSPolly()
{ //sets everything
AmazonPollyClient polly;
Amazon.Polly.Model.Voice voice ;
String SAMPLE = "Congratulations. You have successfully built this working demo of Amazon Polly in Java.Have fun building voice enabled apps with Amazon Polly(that's me!), and always look at the AWS website for tips and tricks on using Amazon Polly and other great services from AWS";
polly = new AmazonPollyClient("MY_ID", "MY_SECRET_KEY", Amazon.RegionEndpoint.USEast1 );
DescribeVoicesRequest describeVoicesRequest=new DescribeVoicesRequest ();
DescribeVoicesResponse describeVoicesResponse;
describeVoicesResponse = polly.DescribeVoices(describeVoicesRequest);
voice = describeVoicesResponse.Voices[0];
//sintetiza
Amazon.Polly.Model.SynthesizeSpeechRequest synthReq;
synthReq = new Amazon.Polly.Model.SynthesizeSpeechRequest();
synthReq.Text = SAMPLE;
synthReq.VoiceId = voice.Id;
synthReq.OutputFormat = OutputFormat.Mp3;
Amazon.Polly.Model.SynthesizeSpeechResponse synthRes;
synthRes = polly.SynthesizeSpeech(synthReq);
}
Код работает нормально, пока нет, но сейчас я хочу написать synthRes.AudioStream
на аудио файл, который я могу слушать. Однако я не могу понять, как это сделать.
Я пытался преобразовать поток в byte[]
массив для использования File.WriteAllBytes
, Однако я не смог заставить этот подход работать, потому что я не мог видеть, сколько байтов есть в AudioStream.
Не могли бы вы мне помочь, пожалуйста?