C# 如何使用Microsoft SAPI将文本保存为wav语音?

C# 如何使用Microsoft SAPI将文本保存为wav语音?,c#,text-to-speech,sapi,C#,Text To Speech,Sapi,我需要将文本转换为语音,然后将其保存为wav文件。这是几分钟的游戏,请注意。对我来说效果很好。我注意到SpFileStream(它没有实现IDisposable,因此try/finally)更喜欢绝对路径而不是相对路径。C# 下面的C#代码使用.Net framework中的System.Speech命名空间。 在使用名称空间之前必须先引用它,因为Visual Studio不会自动引用它 SpeechSynthesizer ss = new SpeechSynthesizer()

我需要将文本转换为语音,然后将其保存为wav文件。

这是几分钟的游戏,请注意。对我来说效果很好。我注意到SpFileStream(它没有实现IDisposable,因此try/finally)更喜欢绝对路径而不是相对路径。C#

下面的C#代码使用.Net framework中的System.Speech命名空间。 在使用名称空间之前必须先引用它,因为Visual Studio不会自动引用它

        SpeechSynthesizer ss = new SpeechSynthesizer();
        ss.Volume = 100;
        ss.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult);
        ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav");
        ss.Speak("Hello World");

我希望这是相关的和有帮助的。

我发现如何更改输出格式,我们编写了如下代码:

SpeechAudioFormatInfo info = new SpeechAudioFormatInfo(6, AudioBitsPerSample.Sixteen, AudioChannel.Mono);

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info);
这很容易理解


酷.net

嗨,在这之前我需要导入一些dll,因为System.Speech在我的项目中不可用,即使我是通过“使用System.Speech”添加的。@Mackenzie:这是一个比我更好的答案,因为它使用.net本机类,而不是使用COM。@atarikg:引用System.Speech程序集。
SpeechAudioFormatInfo info = new SpeechAudioFormatInfo(6, AudioBitsPerSample.Sixteen, AudioChannel.Mono);

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info);