0

我想在 c# 程序中使用已安装的男性、女性等声音。我使用语音合成器和 speakAsync 功能。请帮我。

4

3 回答 3

3

这是一篇关于如何在应用程序中实现语音的简单文章:

http://www.dotnetfunda.com/articles/article828-build-your-talking-application-.aspx

作为文章的一部分,它展示了如何列出所有已安装的声音,还展示了如何在应用程序中使用您选择的声音。这是本文给出的示例代码:

List lst = new List();
foreach (InstalledVoice voice in spsynthesizer.GetInstalledVoices())
{

    lst.Items.Add(voice.VoiceInfo);
}

spsynthesizer.SelectVoice(lstVoice[0].Name);

这会将所有已安装的声音放入一个列表中,并将列表中的第一个声音用作选定的声音。

于 2011-05-08T06:34:50.147 回答
1

如果你想让你的程序说话,试试这个:

public void Say(string say)
{
    SpeechSynthesizer talker = new SpeechSynthesizer();
    talker.Speak(say);
}

并像这样调用这个函数:Say("Hello World"!);

确保您包括:using System.Speech.Synthesis;

于 2011-05-08T06:38:04.603 回答
0

如果您需要获取男性或女性声音的列表,您可以执行以下操作:

    private static void Main()
    {
        Speak(VoiceGender.Male);
        Speak(VoiceGender.Female);
    }

    private static void Speak(VoiceGender voiceGender)
    {
        using (var speechSynthesizer = new SpeechSynthesizer())
        {
            var genderVoices = speechSynthesizer.GetInstalledVoices().Where(arg => arg.VoiceInfo.Gender == voiceGender).ToList();
            var firstVoice = genderVoices.FirstOrDefault();
            if (firstVoice == null)
                return;
            speechSynthesizer.SelectVoice(firstVoice.VoiceInfo.Name);
            speechSynthesizer.Speak("How are you today?");
        }
    }
于 2011-05-08T07:25:02.180 回答