C#语音合成

我有一个应用程序将文本文件读入字节数组,

然后我将这个数组转换为字符串并将其作为输入发送到speak方法

SpeechSynthesizer,但SPEAK方法不说话..

如果我只是发送一个常规的临时字符串它工作正常..但当我转换
字节数组到字符串它不起作用.

我做的是当我从文本文件中读取行时,我使用这行代码

UTF8Encoding temp = new UTF8Encoding(true);
string whatToSay = temp.getString(b);
speech.Speak(whatToSay); // it doesn't work even though the above line returns the  
                            correct string

所以我想知道如果我写这个有什么区别:

spech.Speak("hello"); // this works perfect

这些字符串之间有什么区别吗? speak方法没有获得UTF8?

最佳答案 我看不到你的代码有任何问题,但也许你的变量b是不同的.我不确定有什么问题,但您也可以尝试将音频文件保存到某处并检查它是否正在播放:

 using (SpeechSynthesizer synth = new SpeechSynthesizer()) {
     synth.SetOutputToWaveFile(@"C:\temp\Sample.wav");
     PromptBuilder builder = new PromptBuilder();
     builder.AppendText("Hello World !"); //You can send a variable here also.
     synth.Speak(builder); 
}
点赞