易語(yǔ)言調(diào)用TTS語(yǔ)音模塊實(shí)現(xiàn)文字轉(zhuǎn)換語(yǔ)音功能的代碼
DLL命令表
.版本 2 .DLL命令 CoInitialize, 整數(shù)型, "ole32.dll", "CoInitialize" .參數(shù) pvReserved, 整數(shù)型 .DLL命令 CoUninitialize, , "Ole32.dll", "CoUninitialize", , 在當(dāng)前線(xiàn)程,關(guān)閉COM庫(kù),卸載所有加載的DLL的線(xiàn)程,釋放線(xiàn)程保持的任何其他資源,并強(qiáng)制關(guān)閉所有的線(xiàn)程上的RPC連接。
利用系統(tǒng)自帶的TTS語(yǔ)音系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)播放
此功能需要加載系統(tǒng)自帶TTS語(yǔ)音庫(kù)模塊,如果不能調(diào)用下載TTS語(yǔ)音修復(fù)工具試試
.版本 2
.支持庫(kù) iext
.支持庫(kù) iext2
.支持庫(kù) EThread
.程序集 窗口程序集1
.程序集變量 位置解析, 超級(jí)編輯框_回調(diào)函數(shù)使用
.程序集變量 朗讀, 語(yǔ)音支持庫(kù)
.程序集變量 是否已暫停, 邏輯型
.程序集變量 程序目錄, 文本型
.程序集變量 默認(rèn)語(yǔ)音庫(kù), 整數(shù)型
.程序集變量 文本長(zhǎng)度, 整數(shù)型
.子程序 __啟動(dòng)窗口_尺寸被改變
選擇夾1.左邊 = 0
選擇夾1.頂邊 = 工具條1.高度
選擇夾1.寬度 = 取用戶(hù)區(qū)寬度 ()
選擇夾1.高度 = 取用戶(hù)區(qū)高度 () - 選擇夾1.頂邊
超級(jí)編輯框1.左邊 = 0
超級(jí)編輯框1.頂邊 = 20
超級(jí)編輯框1.寬度 = 選擇夾1.寬度
超級(jí)編輯框1.高度 = 選擇夾1.高度 - 35
.子程序 __啟動(dòng)窗口_創(chuàng)建完畢
.如果真 (朗讀.初始化 () = 假)
信息框 (“初始化失敗!請(qǐng)檢查您的系統(tǒng)里面是否安裝了TTS”, 0, )
返回 ()
.如果真結(jié)束
程序目錄 = 取運(yùn)行目錄 ()
滑塊條_音量.位置 = 到整數(shù) (讀取_當(dāng)前音量 ())
透明標(biāo)簽_音量.標(biāo)題 = 到文本 (滑塊條_音量.位置)
滑塊條_語(yǔ)速.位置 = 到整數(shù) (讀取_當(dāng)前語(yǔ)速 ())
透明標(biāo)簽_語(yǔ)速.標(biāo)題 = 到文本 (滑塊條_語(yǔ)速.位置 - 10)
朗讀.置_朗讀速度 (滑塊條_語(yǔ)速.位置 - 10)
枚舉語(yǔ)音庫(kù) ()
默認(rèn)語(yǔ)音庫(kù) = 到整數(shù) (讀取_語(yǔ)音庫(kù) ())
組合框_語(yǔ)音庫(kù).現(xiàn)行選中項(xiàng) = 默認(rèn)語(yǔ)音庫(kù)
ISpeechVoice_掛接事件 ()
.子程序 ISpeechVoice_掛接事件
朗讀.掛接事件 (1, &ISpeechVoice_StartStream)
朗讀.掛接事件 (2, &ISpeechVoice_EndStream)
朗讀.掛接事件 (3, &ISpeechVoice_VoiceChange)
朗讀.掛接事件 (4, &ISpeechVoice_Bookmark)
朗讀.掛接事件 (5, &ISpeechVoice_Word)
朗讀.掛接事件 (7, &ISpeechVoice_Sentence)
朗讀.掛接事件 (6, &ISpeechVoice_Phoneme)
朗讀.掛接事件 (8, &ISpeechVoice_Viseme)
朗讀.掛接事件 (9, &ISpeechVoice_AudioLevel)
朗讀.掛接事件 (10, &ISpeechVoice_EnginePrivate)
.子程序 ISpeechVoice_StartStream, , , 事件編號(hào): 1
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.子程序 ISpeechVoice_EndStream, , , 事件編號(hào): 2
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.子程序 ISpeechVoice_VoiceChange, , , 事件編號(hào): 3
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) VoiceObjectToken, 整數(shù)型, 參考
.子程序 ISpeechVoice_Bookmark, , , 事件編號(hào): 4
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) Bookmark, 文本型
.參數(shù) BookmarkId, 整數(shù)型
.子程序 ISpeechVoice_Word, , , 事件編號(hào): 5
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) CharacterPosition, 整數(shù)型
.參數(shù) Length, 整數(shù)型
.子程序 ISpeechVoice_Sentence, , , 事件編號(hào): 7
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) CharacterPosition, 整數(shù)型
.參數(shù) Length, 整數(shù)型
超級(jí)編輯框1.起始選擇位置 = CharacterPosition
超級(jí)編輯框1.被選擇字符數(shù) = Length
狀態(tài)條1.置文本 (1, “當(dāng)前位置 ” + 到文本 (CharacterPosition) + “ / 總長(zhǎng)度” + 到文本 (文本長(zhǎng)度))
.子程序 ISpeechVoice_Phoneme, , , 事件編號(hào): 6
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) Duration, 整數(shù)型
.參數(shù) NextPhoneId, 短整數(shù)型
.參數(shù) Feature, 整數(shù)型
.參數(shù) CurrentPhoneId, 短整數(shù)型
.子程序 ISpeechVoice_Viseme, , , 事件編號(hào): 8
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) Duration, 整數(shù)型
.參數(shù) NextVisemeId, 整數(shù)型
.參數(shù) Feature, 整數(shù)型
.參數(shù) CurrentVisemeId, 整數(shù)型
.子程序 ISpeechVoice_AudioLevel, , , 事件編號(hào): 9
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) AudioLevel, 整數(shù)型
.子程序 ISpeechVoice_EnginePrivate, , , 事件編號(hào): 10
.參數(shù) 用戶(hù)數(shù)據(jù), 整數(shù)型
.參數(shù) StreamNumber, 整數(shù)型
.參數(shù) StreamPosition, 整數(shù)型
.參數(shù) EngineData, 整數(shù)型
.子程序 _工具條1_被單擊
.參數(shù) 按鈕索引, 整數(shù)型
.判斷開(kāi)始 (按鈕索引 = 0)
朗讀.置_語(yǔ)音庫(kù) (默認(rèn)語(yǔ)音庫(kù))
.如果 (是否已暫停 = 真)
朗讀.方法_繼續(xù) ()
.否則
啟動(dòng)線(xiàn)程 (&朗讀線(xiàn)程, , )
.如果結(jié)束
返回 ()
.默認(rèn)
.判斷結(jié)束
.判斷開(kāi)始 (按鈕索引 = 1)
.如果 (是否已暫停 = 假)
朗讀.方法_暫停 ()
是否已暫停 = 真
.否則
朗讀.方法_繼續(xù) ()
.如果結(jié)束
返回 ()
.默認(rèn)
.判斷結(jié)束
.判斷開(kāi)始 (按鈕索引 = 2)
朗讀.方法_朗讀 (“”, #SVSFPurgeBeforeSpeak)
返回 ()
.默認(rèn)
.判斷結(jié)束
.判斷開(kāi)始 (按鈕索引 = 3)
通用對(duì)話(huà)框1.打開(kāi) ()
.如果真 (通用對(duì)話(huà)框1.文件名 = “”)
返回 ()
.如果真結(jié)束
啟動(dòng)線(xiàn)程 (&輸出WAV線(xiàn)程, , )
.默認(rèn)
.判斷結(jié)束
.子程序 輸出WAV線(xiàn)程
CoInitialize (0)
狀態(tài)條1.置文本 (1, “正在轉(zhuǎn)換,請(qǐng)耐心等待........”)
朗讀.置_語(yǔ)音庫(kù) (默認(rèn)語(yǔ)音庫(kù))
朗讀.置_朗讀速度 (滑塊條_語(yǔ)速.位置 - 10)
朗讀.方法_輸出WAV (通用對(duì)話(huà)框1.文件名 + “.wav”, 超級(jí)編輯框1.內(nèi)容)
朗讀.方法_等待朗讀完畢 (100)
狀態(tài)條1.置文本 (1, “轉(zhuǎn)換完成!”)
CoUninitialize ()
.子程序 朗讀線(xiàn)程
位置解析.重置 ()
CoInitialize (0)
朗讀.方法_朗讀 (超級(jí)編輯框1.內(nèi)容, 1, )
CoUninitialize ()
.子程序 回調(diào)函數(shù)
.參數(shù) 參數(shù)_是否結(jié)束, 邏輯型
.參數(shù) 參數(shù)_朗讀位置, 整數(shù)型
.參數(shù) 參數(shù)_朗讀長(zhǎng)度, 整數(shù)型
.局部變量 換行符位置, 整數(shù)型
.局部變量 編輯框內(nèi)容, 文本型
.如果 (參數(shù)_是否結(jié)束 = 假)
位置解析.解析正確的位置 (參數(shù)_朗讀位置, 參數(shù)_朗讀長(zhǎng)度)
超級(jí)編輯框1.起始選擇位置 = 參數(shù)_朗讀位置
超級(jí)編輯框1.被選擇字符數(shù) = 參數(shù)_朗讀長(zhǎng)度
.否則
.如果結(jié)束
.子程序 枚舉語(yǔ)音庫(kù)
.局部變量 語(yǔ)音庫(kù)數(shù)量, 整數(shù)型
.局部變量 臨時(shí)計(jì)次, 整數(shù)型
組合框_語(yǔ)音庫(kù).清空 ()
語(yǔ)音庫(kù)數(shù)量 = 朗讀.取_語(yǔ)音庫(kù)數(shù)量 ()
.計(jì)次循環(huán)首 (語(yǔ)音庫(kù)數(shù)量, 臨時(shí)計(jì)次)
組合框_語(yǔ)音庫(kù).加入項(xiàng)目 (朗讀.取_語(yǔ)音庫(kù)名稱(chēng) (臨時(shí)計(jì)次), )
.計(jì)次循環(huán)尾 ()
.子程序 _滑塊條_音量_位置被改變
透明標(biāo)簽_音量.標(biāo)題 = 到文本 (滑塊條_音量.位置)
.子程序 _滑塊條_語(yǔ)速_位置被改變
透明標(biāo)簽_語(yǔ)速.標(biāo)題 = 到文本 (滑塊條_語(yǔ)速.位置 - 10)
.子程序 保存_當(dāng)前音量
.參數(shù) 音量, 文本型
寫(xiě)配置項(xiàng) (程序目錄 + “\set.ini”, “音量”, “value”, 音量)
.子程序 保存_當(dāng)前語(yǔ)速
.參數(shù) 語(yǔ)速, 文本型
寫(xiě)配置項(xiàng) (程序目錄 + “\set.ini”, “語(yǔ)速”, “value”, 語(yǔ)速)
.子程序 保存_語(yǔ)音庫(kù)
.參數(shù) 參數(shù)_默認(rèn)語(yǔ)音庫(kù), 文本型
寫(xiě)配置項(xiàng) (程序目錄 + “\set.ini”, “語(yǔ)音庫(kù)”, “value”, 參數(shù)_默認(rèn)語(yǔ)音庫(kù))
.子程序 讀取_當(dāng)前音量, 文本型
返回 (讀配置項(xiàng) (程序目錄 + “\set.ini”, “音量”, “value”, “100”))
.子程序 讀取_當(dāng)前語(yǔ)速, 文本型
返回 (讀配置項(xiàng) (程序目錄 + “\set.ini”, “語(yǔ)速”, “value”, “10”))
.子程序 讀取_語(yǔ)音庫(kù), 文本型
返回 (讀配置項(xiàng) (程序目錄 + “\set.ini”, “語(yǔ)音庫(kù)”, “value”, “0”))
.子程序 _組合框_語(yǔ)音庫(kù)_列表項(xiàng)被選擇
保存_語(yǔ)音庫(kù) (到文本 (組合框_語(yǔ)音庫(kù).現(xiàn)行選中項(xiàng)))
朗讀.置_語(yǔ)音庫(kù) (組合框_語(yǔ)音庫(kù).現(xiàn)行選中項(xiàng))
默認(rèn)語(yǔ)音庫(kù) = 組合框_語(yǔ)音庫(kù).現(xiàn)行選中項(xiàng)
.子程序 _滑塊條_語(yǔ)速_鼠標(biāo)左鍵被放開(kāi), 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
透明標(biāo)簽_語(yǔ)速.標(biāo)題 = 到文本 (滑塊條_語(yǔ)速.位置)
保存_當(dāng)前語(yǔ)速 (透明標(biāo)簽_語(yǔ)速.標(biāo)題)
朗讀.置_朗讀速度 (滑塊條_語(yǔ)速.位置 - 10)
.子程序 _滑塊條_音量_鼠標(biāo)左鍵被放開(kāi), 邏輯型
.參數(shù) 橫向位置, 整數(shù)型
.參數(shù) 縱向位置, 整數(shù)型
.參數(shù) 功能鍵狀態(tài), 整數(shù)型
透明標(biāo)簽_音量.標(biāo)題 = 到文本 (滑塊條_音量.位置)
保存_當(dāng)前音量 (透明標(biāo)簽_音量.標(biāo)題)
朗讀.置_音量 (滑塊條_音量.位置)
.子程序 _超級(jí)編輯框1_內(nèi)容被改變
超級(jí)編輯框1.內(nèi)容 = 子文本替換 (超級(jí)編輯框1.內(nèi)容, #換行符, “ ”, , , 真)
文本長(zhǎng)度 = 取文本長(zhǎng)度 (超級(jí)編輯框1.內(nèi)容)
.子程序 _按鈕_刷新_被單擊
枚舉語(yǔ)音庫(kù) ()
默認(rèn)語(yǔ)音庫(kù) = 到整數(shù) (讀取_語(yǔ)音庫(kù) ())
組合框_語(yǔ)音庫(kù).現(xiàn)行選中項(xiàng) = 默認(rèn)語(yǔ)音庫(kù)
運(yùn)行結(jié)果:

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
易語(yǔ)言通過(guò)計(jì)算替換字節(jié)實(shí)現(xiàn)酷狗音樂(lè)緩存文件轉(zhuǎn)MP3的代碼
今天小編就為大家分享一篇關(guān)于易語(yǔ)言通過(guò)計(jì)算替換字節(jié)實(shí)現(xiàn)酷狗音樂(lè)緩存文件轉(zhuǎn)MP3的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11
易語(yǔ)言打開(kāi)與關(guān)閉輸入法的代碼示例
今天小編就為大家分享一篇關(guān)于易語(yǔ)言打開(kāi)與關(guān)閉輸入法的代碼示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
易語(yǔ)言將指定的主機(jī)名與IP地址轉(zhuǎn)換功能
今天小編就為大家分享一篇關(guān)于易語(yǔ)言將指定的主機(jī)名與IP地址轉(zhuǎn)換功能,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11

