淺析.Net平臺(tái)下開發(fā)中文語音應(yīng)用程序_.Net教程
推薦:Asp.net FMS 開發(fā)視頻網(wǎng)站開發(fā)步驟: 1。下載FMS http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx,安裝配置。 2。使用flash制作FMS視頻采集的控件。 3。aspx頁面嵌入FMS采集控件,運(yùn)行采集數(shù)據(jù)上
隨著.net技術(shù)深入人心,越來越多的程序員開始轉(zhuǎn)到.net平臺(tái)上進(jìn)行開發(fā)。然而,在新發(fā)布的.net speech SDK里面并沒有對(duì)中文語音進(jìn)行支持,目前支持中文的Speech SDK最高版本為Windows平臺(tái)下的SAPI 5.1(),本文介紹如何在.net平臺(tái)下利用SAPI5.1開發(fā)中文語音應(yīng)用程序。
--------------------------------------------------------------------------------
目錄:
1. SAPI.51 SDK淺析以及安裝
2. 導(dǎo)入COM對(duì)象到.Net
3. 用C#開發(fā)中文TTS應(yīng)用程序示例
4. 結(jié)論
5. 參考文獻(xiàn)
--------------------------------------------------------------------------------
1. SAPI.51 SDK淺析以及安裝
SAPI SDK是微軟公司免費(fèi)提供的語音應(yīng)用開發(fā)工具包,這個(gè)SDK中包含了語音應(yīng)用設(shè)計(jì)接口(SAPI)、微軟的連續(xù)語音識(shí)別引擎(MCSR)以及微軟的語音合成(TTS)引擎等等。目前的5.1版本一共可以支持3種語言的識(shí)別 (英語,漢語和日語)以及2種語言的合成(英語和漢語)。SAPI中還包括對(duì)于低層控制和高度適應(yīng)性的直接語音管理、訓(xùn)練向?qū)�、事件、語法編譯、資源、語音識(shí)別(SR)管理以及TTS管理等強(qiáng)大的設(shè)計(jì)接口。其結(jié)構(gòu)如圖(1):
圖(1)
語音引擎則通過DDI層(設(shè)備驅(qū)動(dòng)接口)和SAPI(SpeechAPI)進(jìn)行交互,應(yīng)用程序通過API層和SAPI通信。通過使用這些API,用戶可以快速開發(fā)在語音識(shí)別或語音合成方面應(yīng)用程序。
SAPI5.1 SDK可以從微軟網(wǎng)站下載:http://www.microsoft.com/speech/download/sdk51/ 需要安裝程序的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)。
--------------------------------------------------------------------------------
2. 導(dǎo)入COM對(duì)象到.Net
SAPI5.1的基于Windows平臺(tái)的,通過COM接口進(jìn)行調(diào)用。在.Net平臺(tái)下要應(yīng)用SAPI5.1,我們可以利用.Net Framework自帶的強(qiáng)大工具TlbImp.exe來把SAPI SDK的COM對(duì)象導(dǎo)入到.Net中。TlbImp.exe產(chǎn)生一個(gè)管制的包裝類,管理客戶端可以使用它。包裝類管理實(shí)際的COM對(duì)象的參考數(shù)。當(dāng)包裝類當(dāng)作收集的垃圾時(shí),包裝類釋放掉它包裝的COM對(duì)象。當(dāng)然,你也可以在VS.NET環(huán)境中通過從項(xiàng)目參考對(duì)話框選擇COM對(duì)象,實(shí)現(xiàn)COM對(duì)象的導(dǎo)入,這個(gè)過程也是通過TlbImp.exe來完成的。
下面演示如何導(dǎo)入SAPI的COM對(duì)象:
D:\Program Files\Common Files\Microsoft Shared\Speech>Tlbimp sapi.dll /out: DotNetSpeech.dll
在安轉(zhuǎn)SDK以后,可以在D:\Program Files\Common Files\Microsoft Shared\Speech\目錄下面找到SAPI.dll,這里面定義了SAPI的COM對(duì)象,用Tlbimp.exe工具將該dll轉(zhuǎn)換成.net平臺(tái)下的Assembly---DotNetSpeech.dll,轉(zhuǎn)換的過程會(huì)提示不少的警告(warning),但這部影響我們的開發(fā),可以忽略。最后,我們可以用ildasm查看DotnetSpeech.dll里面的對(duì)象。
--------------------------------------------------------------------------------
3. 用C#開發(fā)中文TTS應(yīng)用程序示例
下面通過一個(gè)實(shí)例來介紹如何利用C# 進(jìn)行開發(fā)語音應(yīng)用程序,開發(fā)環(huán)境為:
操作系統(tǒng): Windows 2000 中文版 SP3
.Net Framework: 1.0.3705(英文版)
Visual Studio.Net 7.0.9466(英文版)
首先,新建一個(gè)C#的Windows Application工程SpeechApp,在開發(fā)環(huán)境的右邊的解決方案管理器(Solution Explorer)中,添加DotNetSpeech對(duì)象庫。右鍵點(diǎn)擊"Reference"(參考),選擇"Add Reference"(添加參考),在彈出的文件選擇對(duì)話框中找到剛才生成的DotNetSpeech.dll。
圖(2)
打開Form1.cs代碼文件,在代碼開頭添加名字空間(注意大小寫)。
using DotNetSpeech;
這樣就實(shí)現(xiàn)了SAPI SDK的導(dǎo)入,下面我們就可以開始編寫應(yīng)用代碼了。本示例演示如何把文本通過喇叭朗讀出來以及把文本轉(zhuǎn)化成語音信號(hào)(Wave聲音文件),程序界面如圖(3):
| 以下為引用的內(nèi)容:
//朗讀 |
接下來,還要去控制面板配置Speech SDK引擎當(dāng)前所處理語言。打開"控制面板",打開"語音"配置項(xiàng)目,可以看到在這里我們可以指定當(dāng)前可以對(duì)何種語言進(jìn)行識(shí)別或者合成,還可以配置相關(guān)的硬件設(shè)備以及控制語速。(如圖4)
在"文字-語音轉(zhuǎn)換"的"語音選擇"組合框中選擇簡體中文(Microsoft Simplified Chinese)。這樣就可以合成漢語文字了。
回到VS.Net,F(xiàn)5編譯運(yùn)行剛才的應(yīng)用程序,在文本框里輸入漢字,戴上耳機(jī),點(diǎn)擊"朗讀"按鈕,開始體驗(yàn)新一代的智能人機(jī)界面吧,呵呵:)
--------------------------------------------------------------------------------
4. 結(jié)論
微軟為語音人機(jī)界面提供了強(qiáng)大的平臺(tái),.net環(huán)境更使這種開發(fā)方便快捷。趕快去下載SAPI5.1 SDK,讓你的應(yīng)用程序"繪聲繪色",體現(xiàn)Nature UI,Let’s GO!
--------------------------------------------------------------------------------
分享:如何用VB.net實(shí)現(xiàn)sql數(shù)據(jù)庫的備份與恢復(fù)Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click '備份數(shù)據(jù)庫 'BACKUP DATABASE Test TO DISK='C:Backup' WITH Format D
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.NET技巧:DataGrid傳統(tǒng)分頁方式
- 轉(zhuǎn)換DataSet到普通xml的新法
- DataGrid中CheckBox綁定bool屬性來進(jìn)行選中判斷
- .net中使用DatagridView的增刪改方法
- 關(guān)于ADO.NET數(shù)據(jù)庫連接的相關(guān)知識(shí)的總結(jié)
- 用ASP.NET/C#連接Access和SQL Server數(shù)據(jù)庫
- 解析利用wsdl.exe生成webservice代理類的詳解
- asp.net CheckBoxList各項(xiàng)最小寬度CSS樣式(兼容性good)
- asp.net文字轉(zhuǎn)成圖片
- VB.NET實(shí)現(xiàn)窗體圖標(biāo)最小化到狀態(tài)欄
- 相關(guān)鏈接:
- 教程說明:
.Net教程-淺析.Net平臺(tái)下開發(fā)中文語音應(yīng)用程序
。