當前位置:編程學習大全網 - 編程語言 - 我安裝了個語音TTS不知道怎麽用

我安裝了個語音TTS不知道怎麽用

laser_2008

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

現今市面上流行的壹些英語學習軟件,在廣告詞上經常說自己使用了國際頂尖的全程語音TTS技術,能進行整段英文的流利朗讀,並能自由調節朗讀的速度與頻率等。那麽,這個神奇的TTS究竟是什麽東西呢?

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

壹、安裝TTS引擎

TTS引擎所需的Microsoft Text-to-Speech Engine與Microsoft Speech API軟件都可到微軟的站點去下載,也可以在“金山詞霸2000”或“金山詞霸.net”的安裝光盤上找到(文件名為MSTTS.EXE與SPCHAPI.EXE)。安裝了TTS引擎後,在Windows所在目錄下會生成壹個SPEECH目錄,其中有壹個Vtxtauto.tlb文件,在編程時我們需要調用它。

二、在VB中引入Vtxtauto.tlb文件

進入VB 5.0,執行選單命令“文件/新建工程/標準EXE”並確定,然後執行選單“工程”中的“引用”,單擊“瀏覽”按鈕到Windows目錄下的SPEECH子目錄,打開Vtxtauto.tlb文件,將“VoiceText 1.0 Type Library”添加到引用列表中,選中它並單擊確定。將庫Vtxtauto引入VB後,我們可以通過選單“視圖”中的“對象瀏覽器”來了解它所封裝的類,以及各類成員函數的屬性的意義、使用格式等信息。壹些主要的方法與屬性意義,筆者在下面的源程序中將給出註釋,在這裏就不詳細列出。

三、設置控件及屬性

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

FORM1:Caption=“英文朗讀”

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

LABEL2:Caption=“朗讀速度”

LABEL3:Caption=“ ”

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

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

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

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

COMMAND2:名稱=pause;Caption=“暫停”

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

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

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

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

2007-11-5 03:53 PM laser_2008

四、編寫代碼

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

'在窗體裝載時調用Register方法註冊,括號內的兩個參數是字符串

Private Sub Form_Load()

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

'因為語速的默認值為170,故水平滾動條的初值也設為170

SpeedChange.Value = 170

End Sub

'設置朗讀速度調節代碼,當水平滾動條的值Value發生變化時將其賦給控制語速的Speed屬性

Private Sub SpeedChange_Change()

VTxtAuto.VTxtAuto.Speed=SpeedChange.Value

Label3.Caption = SpeedChange.Value

End Sub

'設置“朗讀”按鈕代碼

Private Sub read_Click()

'如果朗讀出錯,則轉到出錯處理標記模塊ErrorHandler

On Error GoTo ErrorHandler

'調用方法Speak進行朗讀,第壹個參數是要朗讀的文本,第二個參數是設置朗讀風格

Call VTxtAuto.VTxtAuto.speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)

Exit Sub

ErrorHandler:

MsgBox "只能朗讀英文文檔,不能朗讀漢字字符!", , "出錯信息"

End Sub

'設置“暫停”按鈕代碼

Private Sub pause_Click()

If VTxtAuto.VTxtAuto.IsSpeaking Then

'如果屬性IsSpeaking為真,則表示正在朗讀,調用AudioPause方法暫停朗讀

Call VTxtAuto.VTxtAuto.AudioPause

pause.Caption = "恢復"

Else

'如果已經處於暫停狀態則調用AudioResume方法恢復朗讀

Call VTxtAuto.VTxtAuto.AudioResume

pause.Caption = "暫停"

End If

End Sub

'設置“停止”按鈕代碼,調用StopSpeaking方法停止當前朗讀

Private Sub stop_Click()

Call VTxtAuto.VTxtAuto.StopSpeaking

End Sub

'設置“上壹句”按鈕代碼,調用AudioRewind方法往後跳過壹句

Private Sub prev_Click()

Call VTxtAuto.VTxtAuto.AudioRewind

End Sub

'設置“下壹句”按鈕代碼,調用AudioFastForward方法向前跳過壹句

Private Sub next_Click()

Call VTxtAuto.VTxtAuto.AudioFastForward

End Sub

'設置“退出”按鈕代碼

Private Sub quit_Click()

Unload Me

End Sub

本程序在中文Windows 95/98、VB 5.0環境下運行通過。運行時在文本編輯框中輸入或粘貼英文文檔,然後單擊“朗讀”按鈕就可播放讀音。

五、程序改進思路

本文對在VB編程中使用TTS技術只是起個拋磚引玉的作用,熟悉VB編程的電腦愛好者來可以對本程序作壹些改進,例如增加對聲卡和TTS引擎是否安裝的檢測、增加從文本文件或數據庫中讀取文檔的功能、增加讓用戶選擇朗讀的優先級和發聲音量調節等功能。這些功能實現起來較為復雜,感興趣的讀者可進行深入研究。

2008-6-17 03:35 PM walefrt

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

  • 上一篇:學習OpenCV的作品目錄
  • 下一篇:孩子的英語課程我又看不懂,想給他買壹個智能機器人陪他學習,有沒有好的推薦?
  • copyright 2024編程學習大全網