Как использовать установленные голоса в C # Visual Studio 2010 - PullRequest
0 голосов
/ 08 мая 2011

Я хочу использовать установленные голоса мужчин, женщин и т. Д. В программе c #.Я использую речь синтезатор и говорить функции Async.Пожалуйста, помогите мне.

Ответы [ 3 ]

3 голосов
/ 08 мая 2011

Вот простая статья о том, как реализовать речь в вашем приложении:

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);

Это поместит все установленные голоса в список и будет использовать первый голос в списке в качестве выбранного.

1 голос
/ 08 мая 2011

Если вы хотите, чтобы ваша программа говорила, попробуйте использовать это:

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

И вызовите эту функцию так: Say("Hello World"!);

Убедитесь, что вы включили: using System.Speech.Synthesis;

0 голосов
/ 08 мая 2011

Если вам нужно получить список мужских или женских голосов, вы можете сделать что-то вроде этого:

    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?");
        }
    }
...