2014-06-30 9 views
6

मैं अपने इंटरैक्टिव ट्रेनिंग सेट के लिए भाषण कार्यक्रम में एक टेक्स्ट बनाना चाहता हूं। मैंने System.Speech लाइब्रेरी का उपयोग किया, लेकिन आवाज हमेशा मादा होती है। मैं कुछ वाक्यों को नर आवाज के साथ पढ़ना चाहूंगा, और कुछ को मादा आवाज से पढ़ा जाना चाहिए। (ये दो आवाजें केवल मुझे चाहिए।)टेक्स्ट-टू-स्पीच वॉयस का लिंग बदलें

मैं विंडोज 8 प्रो और विजुअल स्टूडियो 2010 का उपयोग कर रहा हूं। मैं केवल एक वॉयस पैक, माइक्रोसॉफ्ट ज़ीरा डेस्कटॉप देख सकता हूं।

मेरा कोड निम्नानुसार है। मैं पुरुष आवाज के उपयोग को कैसे कॉन्फ़िगर कर सकता हूं?

SpeechSynthesizer synth = new SpeechSynthesizer(); 
synth.Rate = 1; 
synth.Volume = 100; 
synth.SelectVoiceByHints(VoiceGender.Male,VoiceAge.Adult); 
synth.SpeakAsync(label18.Text); 
+0

शायद अन्य आवाजों को सिस्टम पर सवाल उठाने की आवश्यकता है? –

+2

क्या आपने 'चयनवॉइस' विधि कॉल की कोशिश की है, जो वॉइसगेंडर तर्क स्ट्रिंग स्वीकार करता है? या आपने 'GetInstalledVoices' को कॉल करके सत्यापित किया है कि आपके निर्दिष्ट संकेतों से मेल खाने के लिए आवाजें हैं? आप किस संस्कृति का उपयोग कर रहे हैं? – pinkfloydx33

+0

मैंने foreach के साथ GetInstalledVoices की कोशिश की (Synth.GetInstalledVoices() में इंस्टॉलेडवॉइस वॉयस) और यह केवल माइक्रोसॉफ्ट ज़ीरा दिखाया गया है, तो मुझे अब 2 समस्या है :) 1) मैं माइक्रोसॉफ्ट डेविड डेस्कटॉप 2 कैसे स्थापित कर सकता हूं) अगर मैं इंस्टॉल हो जाऊंगा , प्रोग्राम कैसे एक और पीसी चलाएगा जो माइक्रोसॉफ्ट डेविड के बिना? मेरी अंग्रेजी के लिए खेद है :) –

उत्तर

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

अधिक विवरण के लिए देखें: how I can change the voice synthesizer gender and age in C#?

संबंधित मुद्दे