Net平台下開發中文語音應用程式(C#)

來源:互聯網
上載者:User

 
1. SAPI.51 SDK淺析以及安裝
SAPI SDK是微軟公司免費提供的語音應用開發套件,這個SDK中包含了語音應用設計介面(SAPI)、微軟的連續語音辨識引擎(MCSR)以及微軟的語音合成(TTS)引擎等等。目前的5.1版本一共可以支援3種語言的識別 (英語,漢語和日語)以及2種語言的合成(英語和漢語)。SAPI中還包括對於低層控制和高度適應性的直接語音管理、訓練嚮導、事件、文法編譯、資源、語音辨識(SR)管理以及TTS管理等強大的設計介面。其結構(1):

圖(1)
語音引擎則通過DDI層(裝置驅動介面)和SAPI(SpeechAPI)進行互動,應用程式通過API層和SAPI通訊。通過使用這些API,使用者可以快速開發在語音辨識或語音合成方面應用程式。
SAPI5.1 SDK可以從微軟網站下載:http://www.microsoft.com/speech/download/sdk51/ 需要安裝程式的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)
2. 匯入COM對象到.Net
SAPI5.1的基於Windows平台的,通過COM介面進行調用。在.Net平台下要應用SAPI5.1,我們可以利用.Net Framework內建的強大工具TlbImp.exe來把SAPI SDK的COM對象匯入到.Net中。TlbImp.exe產生一個管制的封裝類,管理用戶端可以使用它。封裝類管理實際的COM對象的參考數。當封裝類當作收集的垃圾時,封裝類釋放掉它封裝的COM對象。當然,你也可以在VS.NET環境中通過從項目參考對話方塊選擇COM對象,實現COM對象的匯入,這個過程也是通過TlbImp.exe來完成的。
下面示範如何匯入SAPI的COM對象:

SAPI.dll的目錄在c:/Program Files/Common Files/Microsoft Shared/Speech

Tlbimp的目錄在C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin

在DOS下面運行命令:Tlbimp sapi.dll /out: DotNetSpeech.dll
在安轉SDK以後,可以在C:/Program Files/Common Files/Microsoft Shared/Speech/目錄下面找到SAPI.dll,這裡面定義了SAPI的COM對象,用Tlbimp.exe工具將該dll轉換成.net平台下的Assembly---DotNetSpeech.dll,轉換的過程會提示不少的警告(warning),但這部影響我們的開發,可以忽略。最後,我們可以用ildasm查看DotnetSpeech.dll裡面的對象。
 3.添加引用並using DotNetSpeech;
4.進行編程
測試環境:VS.NET2005(C#)
注意:
語音辨識時,識別中英文要根據“語音特性”中你所選擇的語言而定。
進入“語音特性”可以通過C:/Program Files/Common Files/Microsoft Shared/Speech/sapi.cpl
也可以通過編程
按鈕事件://using System.Diagnostics;
ProcessStartInfo info = new ProcessStartInfo();
            try
            {
                /*未註明的在system32檔案下,可以直接調用,註明地址的要寫上絕對路徑
                
                       選項                             檔案名稱
                    ---------------------------------------------------
                    Internet選項:                    inetcpl.cpl
                    ODBC資料來源管理:                  odbccp32.cpl
                    電話和數據機選項:            telephon.cpl
                    電源選項:                        powercfg.cpl
                    協助工具功能選項:                    access.cpl
                    地區和語言選項:                  intl.cpl
                    日期和時間:                      timedate.cpl
                    聲音和音訊裝置:                  mmsys.cpl
                    滑鼠:                            main.cpl
                    添加或刪除程式:                  appwiz.cpl
                    添加硬體:                        hdwwiz.cpl
                    網路連接:                        ncpa.cpl
                    系統:                            sysdm.cpl
                    顯示:                            desk.cpl
                    使用者帳戶:                        nusrmgr.cpl
                    遊戲控制器:                      joy.cpl
                    語音:                            sapi.cpl(C:/Program files/Common files/Microsoft Shared/Speech)
                Gateway Services for NetWare          Nwc.cpl
                   紅外線                             Irprops.cpl(在您安裝紅外線裝置之前,位於 C:/Windows/Driver cache/I386/Driver.cab )
                    -----------------------------------------------------
                    字型:                            Fonts
                    ------------------------------------------------------
                    這些是常用的控制台中的選項。

                 */
                info.FileName = @"C:/Program files/Common files/Microsoft Shared/Speech/sapi.cpl";
                Process.Start(info);
            }
            catch(Win32Exception win)
            {
                MessageBox.Show("出錯原因:" + win.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
 try
            {
                SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
                SpVoice voice = new SpVoice();
                voice.Speak(textBox1.Text, spFlags);
            }
            catch (Exception ee)
            {
                MessageBox.Show("Error", "SpeechApp", MessageBoxButtons.OK, MessageBoxIcon.Error);
            } 

聯繫我們

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