首先添加一個(gè)系統(tǒng)的語(yǔ)音COM組件的引用microsoft speech object library然后在程序中聲明一個(gè)語(yǔ)音類(lèi)dim RC As SpeechLib.SpSharedRecoContext這個(gè)類(lèi)有一些事件,如果你要處理它的一些事件,可以用withevent來(lái)聲明然后在窗體LOAD事件或你需要的地方先創(chuàng)建一個(gè)實(shí)例RC = New SpeechLib.SpSharedRecoContext當(dāng)一個(gè)RC被實(shí)例化后,系統(tǒng)就會(huì)運(yùn)行語(yǔ)音識(shí)別程序.前提是你的系統(tǒng)已經(jīng)正確安裝這個(gè)功能.一般默認(rèn)就已經(jīng)安裝好的.其次提醒一下,WIN7的語(yǔ)音識(shí)別比XP的好N倍.從閱讀到偵聽(tīng)都好很多.然后就可以在你需要閱讀的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚舉,用來(lái)標(biāo)識(shí)系統(tǒng)用前臺(tái)還是后臺(tái)或其他方式來(lái)閱讀文字,簡(jiǎn)單的來(lái)說(shuō)就是閱讀的時(shí)候不會(huì)卡住你的程序.你可以選其他的枚舉來(lái)試試作用.以上為閱讀部分.如果需要程序聽(tīng)你說(shuō)話,則需要聲明一個(gè)偵聽(tīng)類(lèi)dim RG As SpeechLib.ISpeechRecoGrammar在初始化時(shí)將之與上面的RC建立關(guān)系,此時(shí)則必須要用withevent來(lái)聲明上面的RC,因?yàn)樯婕半娔X聽(tīng)到你的語(yǔ)音后,會(huì)觸發(fā)一個(gè)事件,并將聽(tīng)到的內(nèi)容傳遞到該事件.其次,要讓系統(tǒng)聽(tīng)到的解析為命令,就必須準(zhǔn)備一個(gè)XML結(jié)構(gòu)的文件來(lái)保存那些固定的命令.如果電腦在XML文件中找不到那些固定命令或同時(shí)不屬于系統(tǒng)命令,電腦將會(huì)將其解釋為聽(tīng)寫(xiě).RG = RC.CreateGrammar '(0)
目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、富平網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
RG.CmdLoadFromFile("聽(tīng)到.xml", SpeechLib.SpeechLoadOption.SLODynamic)
RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后寫(xiě)一個(gè)過(guò)程來(lái)處理聽(tīng)到的事件Private Sub 聽(tīng)到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 話語(yǔ) As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我聽(tīng)到了" 話語(yǔ).PhraseInfo.GetText, 11)End Sub以上為偵聽(tīng)部分.下面列一個(gè)XML的例文?xml version="1.0" encoding="gb2312"?
GRAMMAR LANGID="804"
RULE NAME="命令" TOPLEVEL="ACTIVE"
L
P打開(kāi)播放器
P上我的QQ
P關(guān)閉你自己 /L
/RULE
/GRAMMAR要讓系統(tǒng)正確地偵聽(tīng)到你說(shuō)的話,前提你必須運(yùn)行語(yǔ)音識(shí)別程序并讓其激活到"正在聆聽(tīng)"狀態(tài).并且你必須有一個(gè)能正常使用的話筒而且保證話筒已經(jīng)打開(kāi).(廢話-_-|||)以上就是用VB.NET語(yǔ)音識(shí)別的最基本的一些操作.希望對(duì)你有幫助.更深入的內(nèi)容有興趣的話可以和我一起研究.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As Object
s = CreateObject("sapi.spvoice")
s.speak("speak")
End Sub
.c 是c語(yǔ)言的源程序,
.cpp是c++語(yǔ)言的源程序,
這是兩種不同的語(yǔ)言,語(yǔ)法不同。但是c++兼容c語(yǔ)言的絕大部分語(yǔ)法特性,所以該段代碼在C++中可以運(yùn)行,但是在C語(yǔ)言中就會(huì)報(bào)錯(cuò)。
下面以常見(jiàn)的hello world為例。
1、打開(kāi)vs2012——文件——新建——項(xiàng)目,單擊(如圖)
2、在對(duì)話框左側(cè)分別找到模板——其他語(yǔ)言——visual c++——win32(如圖)。選擇“win32控制臺(tái)應(yīng)用程序”并設(shè)置好”名稱(chēng)“和”存儲(chǔ)路徑 “后單擊確定
3、單擊下一步
4、然后勾選”空項(xiàng)目“
5、接著單擊菜單欄——視圖——解決方案資源管理器
6、在彈出的浮動(dòng)窗口中單擊右鍵 ”源文件“(如圖)
7、然后選擇——添加——新建項(xiàng) 單擊(如圖)
8、接著選擇visual c++ 后選擇”c++文件“并命名為holloworld.c
9、接著輸入c語(yǔ)言代碼
復(fù)制內(nèi)容到剪貼板
#includestdio.h
int main()
{
printf("hello world!");
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
接著單擊”本地windows調(diào)試器“或者ctrl + F5
10、單擊是
11、運(yùn)行結(jié)果如下圖
C++和C#都是編程常用語(yǔ)言,二者相似但又有很多不同,在編程上的具體差異有以下幾點(diǎn)
1、設(shè)計(jì)目的上有所區(qū)別。
在C++設(shè)計(jì)之時(shí)考慮到提供先進(jìn)的面向?qū)ο筇匦裕瑫r(shí)也為了提供很好的性能。為了以往的程序得到保證、工程師在開(kāi)發(fā)時(shí)的知識(shí)兼容,目前C#與C++幾乎完全兼容。
2、C#通過(guò)底層的虛擬機(jī)機(jī)制減少了C++語(yǔ)言中常常容易發(fā)生的內(nèi)存泄漏和安全性問(wèn)題,運(yùn)行速度相對(duì)減慢,但是大大提高了開(kāi)發(fā)者的效率。
3、C#編譯成中間語(yǔ)言與Java在字節(jié)代碼上有些相似。而C++經(jīng)常把代碼編譯成匯編語(yǔ)言之后,在通過(guò)Iust-In-Time編譯進(jìn)程轉(zhuǎn)換成本機(jī)的可執(zhí)行代碼。
4、C#不再需要顯式地刪除動(dòng)態(tài)分配的給堆的內(nèi)存,而C++則要這么做,無(wú)用存儲(chǔ)單元收集器將周期性地清空。
5、C#中指針的運(yùn)用可能與C++一樣,但它只用于已特別標(biāo)記為應(yīng)用指針的代碼塊中。對(duì)于大部分的程序,C#依賴(lài)VB/Java風(fēng)格的對(duì)類(lèi)實(shí)例的引用,而不需和C++一樣頻繁地使用指針。
6、C++比C#中用來(lái)顯式重載的運(yùn)算符比要多,主要是C#編譯器是運(yùn)用一些定制的基本操作符重載(如=)來(lái)自動(dòng)計(jì)算出組合操作符的重載(如+=)
7、C++依賴(lài)于標(biāo)準(zhǔn)庫(kù),C#依賴(lài)于.NET基類(lèi)。.NET基類(lèi)是以單一的繼承為基礎(chǔ),而標(biāo)準(zhǔn)庫(kù)是以繼承和模板為基礎(chǔ)。
8、C#是基于GUI的環(huán)境下(不僅僅是Windows環(huán)境,盡管現(xiàn)在只是在Windows中可用)專(zhuān)門(mén)為編程和背景服務(wù)(如Web服務(wù))而設(shè)計(jì)的。這與語(yǔ)言本身無(wú)關(guān),而是反映在基類(lèi)庫(kù)的設(shè)計(jì)中。
以下是一個(gè)TTS語(yǔ)音的示例程序,它可以識(shí)別中文跟英文的文本,通過(guò)此程序可以幫助編程者快速的熟悉VB下TTS的編程,
也可根據(jù)這個(gè)示例進(jìn)一步開(kāi)發(fā)有關(guān)英文小精靈之類(lèi)的軟件!!
運(yùn)行之前必須安裝microsoft中文引擎,附錄在程序所在的文件夾里面!!
本站提供TTS_forVB免費(fèi)下載,版權(quán)歸該下載資源的合法擁有者所有。
laser_2008
在VB中使用文字朗讀引擎(TTS)技術(shù)
現(xiàn)今市面上流行的一些英語(yǔ)學(xué)習(xí)軟件,在廣告詞上經(jīng)常說(shuō)自己使用了國(guó)際頂尖的全程語(yǔ)音TTS技術(shù),能進(jìn)行整段英文的流利朗讀,并能自由調(diào)節(jié)朗讀的速度與頻率等。那么,這個(gè)神奇的TTS究竟是什么東西呢?
其實(shí),TTS是微軟出品的一套文字朗讀引擎(Text-To-Speech Engine),這些英語(yǔ)軟件就是調(diào)用它來(lái)進(jìn)行英文朗讀的。我們?cè)谟⒄Z(yǔ)學(xué)習(xí)軟件的編程開(kāi)發(fā)中也可使用TTS技術(shù),下面筆者將利用Visual Basic 5.0來(lái)揭開(kāi)TTS神秘的面紗。
一、安裝TTS引擎
TTS引擎所需的Microsoft Text-to-Speech Engine與Microsoft Speech API軟件都可到微軟的站點(diǎn)去下載,也可以在“金山詞霸2000”或“金山詞霸.net”的安裝光盤(pán)上找到(文件名為MSTTS.EXE與SPCHAPI.EXE)。安裝了TTS引擎后,在Windows所在目錄下會(huì)生成一個(gè)SPEECH目錄,其中有一個(gè)Vtxtauto.tlb文件,在編程時(shí)我們需要調(diào)用它。
二、在VB中引入Vtxtauto.tlb文件
進(jìn)入VB 5.0,執(zhí)行選單命令“文件/新建工程/標(biāo)準(zhǔn)EXE”并確定,然后執(zhí)行選單“工程”中的“引用”,單擊“瀏覽”按鈕到Windows目錄下的SPEECH子目錄,打開(kāi)Vtxtauto.tlb文件,將“VoiceText 1.0 Type Library”添加到引用列表中,選中它并單擊確定。將庫(kù)Vtxtauto引入VB后,我們可以通過(guò)選單“視圖”中的“對(duì)象瀏覽器”來(lái)了解它所封裝的類(lèi),以及各類(lèi)成員函數(shù)的屬性的意義、使用格式等信息。一些主要的方法與屬性意義,筆者在下面的源程序中將給出注釋?zhuān)谶@里就不詳細(xì)列出。
三、設(shè)置控件及屬性
在FORM1上添加三個(gè)Label控件、一個(gè)TextBox控件、一個(gè)HScrollBar控件和六個(gè)CommandButton控件。窗體及各控件的主要屬性設(shè)置如下:
FORM1:Caption=“英文朗讀”
LABEL1:Caption=“請(qǐng)輸入英文文檔”
LABEL2:Caption=“朗讀速度”
LABEL3:Caption=“ ”
(LABEL3標(biāo)簽用來(lái)顯示朗讀速度值)
TEXT1:Text=“Please input english text”;ToolTiptext=“請(qǐng)輸入或粘貼英文文檔”; MultiLine=True;ScrollBars=3-Both
HSCROLL1:名稱(chēng)=SpeedChange;Min=90;Max=300(Min與Max屬性值分別用來(lái)限定可調(diào)節(jié)的語(yǔ)速的最小與最大值)
COMMAND1:名稱(chēng)=read;Caption=“朗讀”
COMMAND2:名稱(chēng)=pause;Caption=“暫停”
COMMAND3:名稱(chēng)=stop;Caption=“停止”
COMMAND4:名稱(chēng)=prev;Caption=“上一句”
COMMAND5:名稱(chēng)=next;Caption=“下一句”
COMMAND6:名稱(chēng)=quit;Caption=“退出”
2007-11-5 03:53 PM laser_2008
四、編寫(xiě)代碼
下面我們就可以一步步地編寫(xiě)代碼,具體代碼如下:
'在窗體裝載時(shí)調(diào)用Register方法注冊(cè),括號(hào)內(nèi)的兩個(gè)參數(shù)是字符串
Private Sub Form_Load()
Call VTxtAuto.VTxtAuto.Register(Space(8), Space(8))
'因?yàn)檎Z(yǔ)速的默認(rèn)值為170,故水平滾動(dòng)條的初值也設(shè)為170
SpeedChange.Value = 170
End Sub
'設(shè)置朗讀速度調(diào)節(jié)代碼,當(dāng)水平滾動(dòng)條的值Value發(fā)生變化時(shí)將其賦給控制語(yǔ)速的Speed屬性
Private Sub SpeedChange_Change()
VTxtAuto.VTxtAuto.Speed=SpeedChange.Value
Label3.Caption = SpeedChange.Value
End Sub
'設(shè)置“朗讀”按鈕代碼
Private Sub read_Click()
'如果朗讀出錯(cuò),則轉(zhuǎn)到出錯(cuò)處理標(biāo)記模塊ErrorHandler
On Error GoTo ErrorHandler
'調(diào)用方法Speak進(jìn)行朗讀,第一個(gè)參數(shù)是要朗讀的文本,第二個(gè)參數(shù)是設(shè)置朗讀風(fēng)格
Call VTxtAuto.VTxtAuto.speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)
Exit Sub
ErrorHandler:
MsgBox "只能朗讀英文文檔,不能朗讀漢字字符!", , "出錯(cuò)信息"
End Sub
'設(shè)置“暫停”按鈕代碼
Private Sub pause_Click()
If VTxtAuto.VTxtAuto.IsSpeaking Then
'如果屬性IsSpeaking為真,則表示正在朗讀,調(diào)用AudioPause方法暫停朗讀
Call VTxtAuto.VTxtAuto.AudioPause
pause.Caption = "恢復(fù)"
Else
'如果已經(jīng)處于暫停狀態(tài)則調(diào)用AudioResume方法恢復(fù)朗讀
Call VTxtAuto.VTxtAuto.AudioResume
pause.Caption = "暫停"
End If
End Sub
'設(shè)置“停止”按鈕代碼,調(diào)用StopSpeaking方法停止當(dāng)前朗讀
Private Sub stop_Click()
Call VTxtAuto.VTxtAuto.StopSpeaking
End Sub
'設(shè)置“上一句”按鈕代碼,調(diào)用AudioRewind方法往后跳過(guò)一句
Private Sub prev_Click()
Call VTxtAuto.VTxtAuto.AudioRewind
End Sub
'設(shè)置“下一句”按鈕代碼,調(diào)用AudioFastForward方法向前跳過(guò)一句
Private Sub next_Click()
Call VTxtAuto.VTxtAuto.AudioFastForward
End Sub
'設(shè)置“退出”按鈕代碼
Private Sub quit_Click()
Unload Me
End Sub
本程序在中文Windows 95/98、VB 5.0環(huán)境下運(yùn)行通過(guò)。運(yùn)行時(shí)在文本編輯框中輸入或粘貼英文文檔,然后單擊“朗讀”按鈕就可播放讀音。
五、程序改進(jìn)思路
本文對(duì)在VB編程中使用TTS技術(shù)只是起個(gè)拋磚引玉的作用,熟悉VB編程的電腦愛(ài)好者來(lái)可以對(duì)本程序作一些改進(jìn),例如增加對(duì)聲卡和TTS引擎是否安裝的檢測(cè)、增加從文本文件或數(shù)據(jù)庫(kù)中讀取文檔的功能、增加讓用戶(hù)選擇朗讀的優(yōu)先級(jí)和發(fā)聲音量調(diào)節(jié)等功能。這些功能實(shí)現(xiàn)起來(lái)較為復(fù)雜,感興趣的讀者可進(jìn)行深入研究。
2008-6-17 03:35 PM walefrt
語(yǔ)音朗讀軟件有:如WINDOWS自帶的講述人, 和第三方免費(fèi)軟件[url= ][u]Panopreter中文版[/u][/url], 或[url= ][u]英文版[/u][/url
MS Speech 是一個(gè)合成語(yǔ)音軟件,可用來(lái)形成語(yǔ)音(例如朗讀"Hi I am Mike"),Speech SDK是用來(lái)將Speech的功能使用于自己的程序的輔助開(kāi)發(fā)工具。
網(wǎng)站標(biāo)題:vb.net轉(zhuǎn)語(yǔ)音 net 文字轉(zhuǎn)語(yǔ)音
文章轉(zhuǎn)載:http://m.kartarina.com/article38/hgjcsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、定制網(wǎng)站、電子商務(wù)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)