改变文本到语音语音的性别

本文关键字:语音 改变 文本 | 更新日期: 2023-09-27 18:10:46

我想为我的交互式训练集制作一个文本到语音的程序。我用的是System.Speech库,但声音总是女性的。我希望有些句子用男性的声音来读,有些句子用女性的声音来读。(我只需要这两种声音)

我使用Windows 8 Pro和Visual Studio 2010。我只能看到一个语音包,微软的Zira桌面。

我的代码如下:如何配置使用男声?
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.Rate = 1;
synth.Volume = 100;
synth.SelectVoiceByHints(VoiceGender.Male,VoiceAge.Adult);
synth.SpeakAsync(label18.Text);

改变文本到语音语音的性别

你首先需要知道安装了哪些声音,你可以通过语音合成器类的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);
}

查看下面的解释:如何在c#中更改语音合成器的性别和年龄?