C#讀取文本播放相應語音


利用微軟text to speech引擎(TTS),讀取文本

(1)添加Microsoft Speech Object Library的項目引用

(2)引入using SpeechLib名稱控件

(3)讀取文本

        SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
        SpVoice voice = new SpVoice();

        //默認使用“控制面板”—>“聲音”—>“錄制”選項卡的“配置”—>“文本到語音轉換”—>語言選擇中對應項,例如Microsoft Lily或Microsoft Sam

        //此處可采用“預聽語音”測試,保證操作系統本身正確配置該語音包,尤其是B/S結構往往會被忽略

        //否則會拋出異常:“沒有注冊類 (異常來自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))”

        voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);
        voice.Speak(textBox1.Text, flag);

(4)語言包的選擇(親測)

WindowsXP 中默認只安裝了Microsoft Sam,而且只能朗讀英文,不能讀中文,直接略過。(不推薦)

找了一個Microsoft_TTS_51_chs.msi安裝了以后多了一個Microsoft Simplified Chinese語音包,但只能讀中文,不能讀英文單詞,將單詞拆解為字母讀出(全中文可以)

Windows Vista/7中默認安裝Microsoft Lili,可以中英文混讀,但語音效果較好(推薦),但是XP系統無法安裝,Microsoft Anna 只能讀英文(不推薦)。

ScanSoft-MeiLing-ChineseMandarinVoice可以在XP下安裝,但是多音字識別不好,優點是比較小巧,40M左右。

NeoSpeech Lily,聲音的效果比 Microsoft Lili要好。推薦使用,但是比較大500M左右。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM