我可以在System.Speech.Synthesis中使用Microsoft语音以外的其他语音吗

时间:2018-07-03 10:01:00

标签: c# asp.net .net text-to-speech

这就是我要做一个简单的“文本转语音”应用程序的过程。这很好。

    static void Main(string[] args)
    {
        SpeechSynthesizer ss = new SpeechSynthesizer();
        string file = @"C:\test.wav";
        ss.SetOutputToWaveFile(file, new SpeechAudioFormatInfo(16000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));

        PromptBuilder pb = new PromptBuilder();

        pb.StartVoice("Microsoft David Desktop");
        pb.AppendSsmlMarkup("Hello world");
        pb.EndVoice();

        ss.Speak(pb);

        Console.ReadLine();
    }

现在我的问题是我是否可以使用Microsoft语音以外的语音大声朗读文本。像L&H Michael或Michelle一样,这些声音都符合SAPI。

我尝试与L&H Michael或Michelle一起使用,但是该应用程序未使用这些声音,而是使用了默认的Microsoft声音。

1 个答案:

答案 0 :(得分:0)

我主要使用SAPI SDK 11或System.Speech,但是否尝试过使用.GetInstalledVoices来确保已安装了期望的内容,然后使用.SelectVoice进行设置。这是.GetInstalledVoices:https://msdn.microsoft.com/en-us/library/system.speech.synthesis.voiceinfo(v=vs.110).aspx的示例,而这是从此处堆栈:how I can change the voice synthesizer gender and age in C#?开始的。如果您想要特定的声音,请使用.SelectVoice而不是.SelectVoiceByHints:

synthesizer.SelectVoice("Microsoft Server Speech Text to Speech Voice (en-US, Helen)");