2011-05-08 2 views
0

Je souhaite utiliser des voix installées de type masculin, féminin ou etc. dans le programme C#. J'utilise les fonctions speechsynthesizer et speakAsync. Aidez-moi, s'il vous plaît.comment utiliser les voix installées dans C# visual studio 2010

+1

À quoi exactement avez-vous des problèmes? Pouvez-vous envoyer votre code? – Oded

+0

@Oded Je ne sais pas comment utiliser les voix installées. – Deepak

+0

Pas suffisamment ciblé ou affiche suffisamment de préparation en arrière-plan pour être acceptable sur stackoverflow. –

Répondre

3

Voici un simple article sur la façon de mettre en œuvre la parole dans votre application:

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

En tant que partie de l'article, il montre comment lister toutes les voix installées et il vous montre également comment pour ensuite utiliser votre voix sélectionnée dans votre application. Voici le code exemple cet article donne:

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

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

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

Cela placerait toutes les voix installées dans une liste et il utiliserait la première voix dans la liste comme la voix sélectionnée.

1

Si vous voulez you'r programme parler essayez d'utiliser ceci:

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

Et appeler cette fonction comme ceci: Say("Hello World"!);

Assurez-vous d'inclure: using System.Speech.Synthesis;

0

Si vous devez obtenir une liste de voix masculines ou féminines, vous pouvez faire quelque chose comme ceci:

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