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

Tar*_*rik 6 c# sapi text-to-speech

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

Mac*_*zie 11

以下C#代码使用.Net框架中的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");
Run Code Online (Sandbox Code Playgroud)

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


Mic*_*tta 5

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

   SpFileStream fs = null;
    try
    {
        SpVoice voice = new SpVoice();
        fs = new SpFileStream();
        fs.Open(@"c:\hello.wav", SpeechStreamFileMode.SSFMCreateForWrite, false);
        voice.AudioOutputStream = fs;
        voice.Speak("Hello world.", SpeechVoiceSpeakFlags.SVSFDefault);
    }
    finally
    {
        if (fs != null)
        {
            fs.Close();
        }
    }
Run Code Online (Sandbox Code Playgroud)


Tar*_*rik 5

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

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

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info);
Run Code Online (Sandbox Code Playgroud)

这很容易理解。

酷.net