改变文本到语音的性别

mer*_*tc. 7 .net c# text-to-speech

我想为我的交互式训练集制作一个文本到语音的程序.我用过System.Speech图书馆,但声音总是女性.我想用一些男性的声音读一些句子,一些用女性的声音读.(这两个声音是我唯一需要的声音.)

我正在使用Windows 8 Pro和Visual Studio 2010.我只能看到一个语音包,即Microsoft Zira Desktop.

我的代码如下.如何配置男声的使用?

SpeechSynthesizer synth = new SpeechSynthesizer();
synth.Rate = 1;
synth.Volume = 100;
synth.SelectVoiceByHints(VoiceGender.Male,VoiceAge.Adult);
synth.SpeakAsync(label18.Text);
Run Code Online (Sandbox Code Playgroud)

小智 6

您首先需要知道安装了哪些语音,您可以通过SpeechSynthesizer类的GetInstalledVoices方法执行此操作:http: //msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer.getinstalledvoices.aspx

一旦你确定你已经安装了男声,那么你只需通过SelectVoiceByHints切换请参阅:http: //msdn.microsoft.com/en-us/library/ms586877

using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
{
    // show installed voices
    foreach (var v in synthesizer.GetInstalledVoices().Select(v => v.VoiceInfo))
    {
        Console.WriteLine("Name:{0}, Gender:{1}, Age:{2}",
          v.Description, v.Gender, v.Age);
    }

    // select male senior (if it exists)
    synthesizer.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Senior);

    // select audio device
    synthesizer.SetOutputToDefaultAudioDevice();

    // build and speak a prompt
    PromptBuilder builder = new PromptBuilder();
    builder.AppendText("Found this on Stack Overflow.");
    synthesizer.Speak(builder);
}
Run Code Online (Sandbox Code Playgroud)

有关详细说明,请参阅此内容: 如何在C#中更改语音合成器的性别和年龄?