C# 文字轉語音DEMO

來源:互聯網
上載者:User

最近突發奇想 想玩玩  文字轉語音的東東   Google了一下 發現微軟有一個TTS 的SDK   查了查相關資料  發現 還真不錯  然後就開始玩玩Microsoft Speech SDK的 DEMO了    

現在網上最新版好像是Microsoft Speech SDK Version 5.1    先下載下來

是  http://www.52z.com/soft/22068.html

要先安裝第一個SDK 然後安裝語言套件    只有安裝了語言套件   語言套件是用來支援中文翻讀的

然後開始我們的C#文字轉語音小程式  

1、開啟VS  建立一個表單項目

2、添加引用:在COM選項卡裡面的Microsoft Speech  object  library引用 

並在代碼區添加引用

using SpeechLib; 
using System.Threading;//這個引用是用來儲存語音檔案用的線程類

 3、添加一個文字框 兩個按鈕 

4、在一個按鈕下輸入如下代碼

 SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
            SpVoice voice = new SpVoice();
            voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(3);
            //Item(0)單詞男聲Sam
            //Item(1)單詞男聲Mike
            //Item(2)單詞女聲Mary
            //Item(3)中文發音,如果是英文,就依單詞字母一個一個發音
            voice.Speak(textBox1.Text, flag);

代碼解釋  :其中最重要的是SPVoice類   他是這個DEMO的核心 ;然後就是Item(3)選項  下面注釋已經很清楚了 說明是什麼意思。後面還有一個SPEAK方法  不用我說也知道是什麼意思吧 !當然關於SpVoice對象還有很多方法  查了一下Microsoft Speech的API   還有pause\ Resume     SetVoice\GetVoice    SetRate|SetRate  SetVolume\GetVolume   這些方法根據他的意思就知道 是關於暫停 繼續   設定聲音   設定讀取速度  聲音大小的   更多的對象 方法  請參考他的API 

5、在另一個按鈕輸入如下代碼 

  SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
            SpVoice voice = new SpVoice();
            voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(3);

 

            SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;

            SpFileStream SpFileStream = new SpFileStream();
            SpFileStream.Open(@"C:\test.wav", SpFileMode, false);
            voice.AudioOutputStream = SpFileStream;//設定voice的輸出為Stream
            voice.Speak(textBox1.Text.Trim(), flag);
            voice.WaitUntilDone(Timeout.Infinite);//Using System.Threading;

            SpFileStream.Close();

其實這段代碼跟前一個代碼差不多 只不過是通過流把聲音儲存為語音檔案而已   

簡單吧   現在就可以好好玩玩你的這個DEMO了    你還可以添加很多功能的 可以做成SDK裡面的幾個例子一樣的程式  !

Ps 感覺微軟的這個聲音好不柔和  我在網上見到幾個 比較好的線上文字轉聲音系統 不錯  分享給大家

http://ecl.iflytek.com/ListenToThis/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.