4

我有一个将文本文件读入字节数组的应用程序,然后我将此数组转换为字符串并将其作为输入发送到 SpeechSynthesizer 的 speak 方法,但 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 吗?

4

1 回答 1

2

我看不出您的代码有任何问题,但也许您的变量 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); 
}
于 2013-12-06T14:31:28.277 回答