2009-06-08 13 views

उत्तर

11

निम्नलिखित सी # कोड .NET ढांचे में सिस्टम। स्टेच नेमस्पेस का उपयोग करता है। इसका उपयोग करने से पहले नामस्थान का संदर्भ देना आवश्यक है, क्योंकि इसे स्वचालित रूप से विजुअल स्टूडियो द्वारा संदर्भित नहीं किया जाता है।

 SpeechSynthesizer ss = new SpeechSynthesizer(); 
     ss.Volume = 100; 
     ss.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Adult); 
     ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav"); 
     ss.Speak("Hello World"); 

मुझे आशा है कि यह प्रासंगिक और सहायक होगा।

+0

हाय, इससे पहले मुझे कुछ डीएल आयात करने की आवश्यकता है, क्योंकि सिस्टम। स्टेच मेरे प्रोजेक्ट में उपलब्ध नहीं है, भले ही मैंने "सिस्टम स्पीच का उपयोग करके" जोड़ा है। – Tarik

+0

@ मैकेंज़ी: यह मेरे मुकाबले बेहतर जवाब है, क्योंकि यह COM के साथ मिलकर बजाए नेट नेट क्लास का उपयोग करता है। –

+1

@atarikg: सिस्टम का संदर्भ लें। स्टेच असेंबली। –

3

यह कुछ क्षणों के खेल से है, इसलिए चेतावनी emptor। मेरे लिए अच्छा काम किया। मैंने नोटिस किया कि SpFileStream (जो IDISposable लागू नहीं करता है, इस प्रकार कोशिश/आखिरकार) रिश्तेदार को पूर्ण पथ पसंद करता है। सी#।

SpFileStream fs = null; 
    try 
    { 
     SpVoice voice = new SpVoice(); 
     fs = new SpFileStream(); 
     fs.Open(@"c:\hello.wav", SpeechStreamFileMode.SSFMCreateForWrite, false); 
     voice.AudioOutputStream = fs; 
     voice.Speak("Hello world.", SpeechVoiceSpeakFlags.SVSFDefault); 
    } 
    finally 
    { 
     if (fs != null) 
     { 
      fs.Close(); 
     } 
    } 
+1

आपके प्रयास के लिए धन्यवाद। – Tarik

4

और जैसा कि मैं कैसे उत्पादन स्वरूप बदलने के लिए के लिए मिल गया है, हम कोड कुछ इस तरह:

SpeechAudioFormatInfo info = new SpeechAudioFormatInfo(6, AudioBitsPerSample.Sixteen, AudioChannel.Mono); 

//Same code comes here 

ss.SetOutputToWaveFile(@"C:\MyAudioFile.wav",info); 

बहुत आसान और सुबोध है यही कारण है कि।

कूल .net

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