6

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

4

3 回答 3

12

以下 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");

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

于 2009-06-08T05:42:20.493 回答
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();
        }
    }
于 2009-06-08T05:37:34.497 回答
5

And as I've found for how to change output format, we code something like this :

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

//Same code comes here 

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

That's pretty easy and comprehensible.

Cool .net

于 2009-06-08T06:46:05.030 回答