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

來源:互聯網
上載者:User

標籤:

第一種方案:

  利用微軟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左右。

 

第二種方案:

System.Speech.Synthesis(語音合成器)

讓我們看一下關於如何從託管應用程式使用語音合成的樣本。作為最典型的一個 UI 輸出樣本,我將從只說出“Hello, world”的應用程式開始,如圖 5 所示。

<em>using System;using System.Speech.Synthesis; namespace TTS_Console_Sample_1{    class Program    {        static void Main(string[] args)        {            SpeechSynthesizer synth = new SpeechSynthesizer();            synth.SpeakText("Hello, world!");        }    }}</em>

該樣本是一個明顯的控制台應用程式,是最近使用 Visual C#® 建立的,其中添加了三行代碼。所添加的第一行只引入 System.Speech.Synthesis 命名空間。第二行聲明並執行個體化 SpeechSynthesizer 的執行個體,它準確表示了其名稱的含意:語音合成器。所添加的第三行是對 SpeakText 的調用。這是調用合成器所需的全部。

預設情況下,SpeechSynthesizer 類使用 Speech 控制項面板中預設推薦的合成器。但是它可以使用任何與 SAPI DDI 相容的合成器。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.