溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

易語言調(diào)用TTS語音模塊實(shí)現(xiàn)文字轉(zhuǎn)換語音功能的代碼

發(fā)布時(shí)間:2020-08-27 14:21:21 來源:腳本之家 閱讀:601 作者:易語言源碼教程 欄目:編程語言

DLL命令表

.版本 2
.DLL命令 CoInitialize, 整數(shù)型, "ole32.dll", "CoInitialize"
  .參數(shù) pvReserved, 整數(shù)型
.DLL命令 CoUninitialize, , "Ole32.dll", "CoUninitialize", , 在當(dāng)前線程,關(guān)閉COM庫,卸載所有加載的DLL的線程,釋放線程保持的任何其他資源,并強(qiáng)制關(guān)閉所有的線程上的RPC連接。

利用系統(tǒng)自帶的TTS語音系統(tǒng)調(diào)用來實(shí)現(xiàn)播放

此功能需要加載系統(tǒng)自帶TTS語音庫模塊,如果不能調(diào)用下載TTS語音修復(fù)工具試試

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

運(yùn)行結(jié)果:

易語言調(diào)用TTS語音模塊實(shí)現(xiàn)文字轉(zhuǎn)換語音功能的代碼

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對億速云的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI