我正在试图发表文字通用的应用程序,但卡住了一件事。 我看了整个互联网,找不到一个适当的解决scheme,工程..所以我来到这里..基本上我想要应用程序保存在文本框中的任何东西作为MP3。 这是我的代码到目前为止:
private void Speak_Click(object sender, RoutedEventArgs e) { SpeakText(Text.Text); } public async void SpeakText(string TTS) { SpeechSynthesizer ttssynthesizer = new SpeechSynthesizer(); //Set the Voice/Speaker using (var Speaker = new SpeechSynthesizer()) { Speaker.Voice = (SpeechSynthesizer.AllVoices.First(x => x.Gender == VoiceGender.Female)); ttssynthesizer.Voice = Speaker.Voice; } SpeechSynthesisStream ttsStream = await ttssynthesizer.SynthesizeTextToStreamAsync(TTS); //play the speech MediaElement media = new MediaElement(); media.SetSource(ttsStream, " "); }
我想你可以将SpeechSynthesisStream
保存为一个.wav文件。 然后,您可以使用MediaTranscoder
类将其重新编码为任何您喜欢的内容。
MSDN:媒体转码器
使用媒体转码器的示例项目 – 用它作为参考
一些额外的帮助将流保存到一个wav文件: SpeakText.xaml.cpp