vb.net+tts語音 tts語言設(shè)置

VB.net如何使用Microsoft Speech SDK5.1

安裝了sdk后應(yīng)該可以在控件箱單擊鼠標(biāo)右鍵,然后選擇部件,在彈出的列表中應(yīng)該可以找到microsoft tts engine或之類的東西,選擇后就可以吧tts engine作為控件放到窗體上。 調(diào)用貌似是用.speak(String)實(shí)現(xiàn)的。 由于我是很久以前用的,所以也記得不是很清楚了,你可以找找看。

成都創(chuàng)新互聯(lián)專注于蘭山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。蘭山網(wǎng)站建設(shè)公司,為蘭山等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

我安裝了個(gè)語音TTS不知道怎么用

laser_2008

在VB中使用文字朗讀引擎(TTS)技術(shù)

現(xiàn)今市面上流行的一些英語學(xué)習(xí)軟件,在廣告詞上經(jīng)常說自己使用了國際頂尖的全程語音TTS技術(shù),能進(jìn)行整段英文的流利朗讀,并能自由調(diào)節(jié)朗讀的速度與頻率等。那么,這個(gè)神奇的TTS究竟是什么東西呢?

其實(shí),TTS是微軟出品的一套文字朗讀引擎(Text-To-Speech Engine),這些英語軟件就是調(diào)用它來進(jìn)行英文朗讀的。我們在英語學(xué)習(xí)軟件的編程開發(fā)中也可使用TTS技術(shù),下面筆者將利用Visual Basic 5.0來揭開TTS神秘的面紗。

一、安裝TTS引擎

TTS引擎所需的Microsoft Text-to-Speech Engine與Microsoft Speech API軟件都可到微軟的站點(diǎn)去下載,也可以在“金山詞霸2000”或“金山詞霸.net”的安裝光盤上找到(文件名為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子目錄,打開Vtxtauto.tlb文件,將“VoiceText 1.0 Type Library”添加到引用列表中,選中它并單擊確定。將庫Vtxtauto引入VB后,我們可以通過選單“視圖”中的“對(duì)象瀏覽器”來了解它所封裝的類,以及各類成員函數(shù)的屬性的意義、使用格式等信息。一些主要的方法與屬性意義,筆者在下面的源程序中將給出注釋,在這里就不詳細(xì)列出。

三、設(shè)置控件及屬性

在FORM1上添加三個(gè)Label控件、一個(gè)TextBox控件、一個(gè)HScrollBar控件和六個(gè)CommandButton控件。窗體及各控件的主要屬性設(shè)置如下:

FORM1:Caption=“英文朗讀”

LABEL1:Caption=“請輸入英文文檔”

LABEL2:Caption=“朗讀速度”

LABEL3:Caption=“ ”

(LABEL3標(biāo)簽用來顯示朗讀速度值)

TEXT1:Text=“Please input english text”;ToolTiptext=“請輸入或粘貼英文文檔”; MultiLine=True;ScrollBars=3-Both

HSCROLL1:名稱=SpeedChange;Min=90;Max=300(Min與Max屬性值分別用來限定可調(diào)節(jié)的語速的最小與最大值)

COMMAND1:名稱=read;Caption=“朗讀”

COMMAND2:名稱=pause;Caption=“暫?!?/p>

COMMAND3:名稱=stop;Caption=“停止”

COMMAND4:名稱=prev;Caption=“上一句”

COMMAND5:名稱=next;Caption=“下一句”

COMMAND6:名稱=quit;Caption=“退出”

2007-11-5 03:53 PM laser_2008

四、編寫代碼

下面我們就可以一步步地編寫代碼,具體代碼如下:

'在窗體裝載時(shí)調(diào)用Register方法注冊,括號(hào)內(nèi)的兩個(gè)參數(shù)是字符串

Private Sub Form_Load()

Call VTxtAuto.VTxtAuto.Register(Space(8), Space(8))

'因?yàn)檎Z速的默認(rèn)值為170,故水平滾動(dòng)條的初值也設(shè)為170

SpeedChange.Value = 170

End Sub

'設(shè)置朗讀速度調(diào)節(jié)代碼,當(dāng)水平滾動(dòng)條的值Value發(fā)生變化時(shí)將其賦給控制語速的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è)置“暫?!卑粹o代碼

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方法往后跳過一句

Private Sub prev_Click()

Call VTxtAuto.VTxtAuto.AudioRewind

End Sub

'設(shè)置“下一句”按鈕代碼,調(diào)用AudioFastForward方法向前跳過一句

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)行通過。運(yùn)行時(shí)在文本編輯框中輸入或粘貼英文文檔,然后單擊“朗讀”按鈕就可播放讀音。

五、程序改進(jìn)思路

本文對(duì)在VB編程中使用TTS技術(shù)只是起個(gè)拋磚引玉的作用,熟悉VB編程的電腦愛好者來可以對(duì)本程序作一些改進(jìn),例如增加對(duì)聲卡和TTS引擎是否安裝的檢測、增加從文本文件或數(shù)據(jù)庫中讀取文檔的功能、增加讓用戶選擇朗讀的優(yōu)先級(jí)和發(fā)聲音量調(diào)節(jié)等功能。這些功能實(shí)現(xiàn)起來較為復(fù)雜,感興趣的讀者可進(jìn)行深入研究。

2008-6-17 03:35 PM walefrt

語音朗讀軟件有:如WINDOWS自帶的講述人, 和第三方免費(fèi)軟件[url= ][u]Panopreter中文版[/u][/url], 或[url= ][u]英文版[/u][/url

vb怎么調(diào)用系統(tǒng)tts朗讀文本框里的內(nèi)容?

先創(chuàng)建TTS對(duì)象,然后設(shè)置語言種類,設(shè)置音量,最后就是調(diào)用speak朗讀文本框1中的內(nèi)容,代碼如下

Set?objVoice?=?CreateObject("SAPI.SpVoice")

Set?colVoice?=?objVoice.GetVoices()

objVoice.Volume?=?100?

For?i?=?0?To?colVoice.Count?-?1?

If?Right(colVoice(i).Id,?Len("MSSimplifiedChineseVoice"))?=?"MSSimplifiedChineseVoice"?Then?cnVoice?=i

Next

Set?objVoice.Voice?=?colVoice.Item(cnVoice)??

objVoice.Speak?(text1.text)

想在vb.net的程序中有一個(gè)語音提示,該怎么寫

首先添加一個(gè)系統(tǒng)的語音COM組件的引用microsoft speech object library然后在程序中聲明一個(gè)語音類dim RC As SpeechLib.SpSharedRecoContext這個(gè)類有一些事件,如果你要處理它的一些事件,可以用withevent來聲明然后在窗體LOAD事件或你需要的地方先創(chuàng)建一個(gè)實(shí)例RC = New SpeechLib.SpSharedRecoContext當(dāng)一個(gè)RC被實(shí)例化后,系統(tǒng)就會(huì)運(yùn)行語音識(shí)別程序.前提是你的系統(tǒng)已經(jīng)正確安裝這個(gè)功能.一般默認(rèn)就已經(jīng)安裝好的.其次提醒一下,WIN7的語音識(shí)別比XP的好N倍.從閱讀到偵聽都好很多.然后就可以在你需要閱讀的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚舉,用來標(biāo)識(shí)系統(tǒng)用前臺(tái)還是后臺(tái)或其他方式來閱讀文字,簡單的來說就是閱讀的時(shí)候不會(huì)卡住你的程序.你可以選其他的枚舉來試試作用.以上為閱讀部分.如果需要程序聽你說話,則需要聲明一個(gè)偵聽類dim RG As SpeechLib.ISpeechRecoGrammar在初始化時(shí)將之與上面的RC建立關(guān)系,此時(shí)則必須要用withevent來聲明上面的RC,因?yàn)樯婕半娔X聽到你的語音后,會(huì)觸發(fā)一個(gè)事件,并將聽到的內(nèi)容傳遞到該事件.其次,要讓系統(tǒng)聽到的解析為命令,就必須準(zhǔn)備一個(gè)XML結(jié)構(gòu)的文件來保存那些固定的命令.如果電腦在XML文件中找不到那些固定命令或同時(shí)不屬于系統(tǒng)命令,電腦將會(huì)將其解釋為聽寫.RG = RC.CreateGrammar '(0)

RG.CmdLoadFromFile("聽到.xml", SpeechLib.SpeechLoadOption.SLODynamic)

RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后寫一個(gè)過程來處理聽到的事件Private Sub 聽到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 話語 As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我聽到了" 話語.PhraseInfo.GetText, 11)End Sub以上為偵聽部分.下面列一個(gè)XML的例文?xml version="1.0" encoding="gb2312"?

GRAMMAR LANGID="804"

RULE NAME="命令" TOPLEVEL="ACTIVE"

L

P打開播放器

P上我的QQ

P關(guān)閉你自己 /L

/RULE

/GRAMMAR要讓系統(tǒng)正確地偵聽到你說的話,前提你必須運(yùn)行語音識(shí)別程序并讓其激活到"正在聆聽"狀態(tài).并且你必須有一個(gè)能正常使用的話筒而且保證話筒已經(jīng)打開.(廢話-_-|||)以上就是用VB.NET語音識(shí)別的最基本的一些操作.希望對(duì)你有幫助.更深入的內(nèi)容有興趣的話可以和我一起研究.

本文標(biāo)題:vb.net+tts語音 tts語言設(shè)置
網(wǎng)頁URL:http://muchs.cn/article24/doshije.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、域名注冊、面包屑導(dǎo)航、網(wǎng)站策劃、網(wǎng)站制作、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作