這篇文章將為大家詳細(xì)講解有關(guān)易語(yǔ)言如何制作語(yǔ)音聊天機(jī)器人,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)專注于榕城企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),成都做商城網(wǎng)站。榕城網(wǎng)站建設(shè)公司,為榕城等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
常量數(shù)據(jù)表
.版本 2 .常量 對(duì)話前, "<文本長(zhǎng)度: 7>", , text":" .常量 對(duì)話后, "<文本長(zhǎng)度: 2>", , "} .常量 token前, "<文本長(zhǎng)度: 16>", , "access_token":" .常量 雙撇號(hào), "<文本長(zhǎng)度: 1>", , " .常量 apikey, "<文本長(zhǎng)度: 24>", , Tc9KWDDFPLm1QNVPgEx7kco6 .常量 Secretkey, "<文本長(zhǎng)度: 32>", , DnqP3q2GwOqGuYI9sUhLT4l7uC2f1yVL .常量 識(shí)別返回前, "<文本長(zhǎng)度: 10>", , result":[" .常量 識(shí)別返回后, "<文本長(zhǎng)度: 3>", , "],
語(yǔ)音聊天機(jī)器人的代碼
此功能需要加載精易模塊5.6
.版本 2 .支持庫(kù) eMMedia .支持庫(kù) ESpeechEngine .支持庫(kù) internet .支持庫(kù) spec .支持庫(kù) eAPI .程序集 窗口程序集_啟動(dòng)窗口 .程序集變量 API地址, 文本型 .程序集變量 APIkey, 文本型 .程序集變量 喚醒名, 文本型, , "0" .程序集變量 音量, 短整數(shù)型 .程序集變量 計(jì)時(shí), 整數(shù)型 .程序集變量 最大頻段, 整數(shù)型 .程序集變量 發(fā)送內(nèi)容, 文本型 .子程序 _語(yǔ)音識(shí)別1_識(shí)別到語(yǔ)音 .參數(shù) 識(shí)別文本, 文本型 .如果真 (尋找文本 (識(shí)別文本, 喚醒名 [1], , 假) ≠ -1) ' 識(shí)別到喚醒名就開(kāi)始錄音。 錄音音波1.打開(kāi) () ' 這個(gè)是檢測(cè)麥克風(fēng)音量的用的 最大頻段 = 錄音音波1.取上限 () - 1 播放音樂(lè) (#開(kāi)始聲音, ) 設(shè)置喚醒按鈕.標(biāo)題 = “正在聆聽(tīng)” 錄音1.錄制 () ' 開(kāi)始錄音…… 判斷是否說(shuō)話時(shí)鐘.時(shí)鐘周期 = 10 ' 判斷是否在說(shuō)話的時(shí)鐘。 .如果真結(jié)束 .子程序 _設(shè)置喚醒按鈕_被單擊 語(yǔ)音識(shí)別1.創(chuàng)建 (0, 1) ' 初始化語(yǔ)音識(shí)別引擎,初始化失敗的需要下載微軟的語(yǔ)音識(shí)別引擎Microsoft Speech SDK v5.1 加入成員 (喚醒名, 編輯框1.內(nèi)容) 語(yǔ)音識(shí)別1.加入常用 (喚醒名) 信息框 (“設(shè)置成功,請(qǐng)直接對(duì)著麥克風(fēng)呼喚: ” + 編輯框1.內(nèi)容 + “ 即可開(kāi)始對(duì)話”, 0, ) 設(shè)置喚醒按鈕.禁止 = 真 .子程序 機(jī)器人對(duì)話, 文本型, , 調(diào)用圖靈機(jī)器人API接口 .參數(shù) 發(fā)送的內(nèi)容, 文本型 .局部變量 數(shù)據(jù), 文本型 .局部變量 返回內(nèi)容, 文本型 .局部變量 需要的內(nèi)容長(zhǎng)度, 整數(shù)型 數(shù)據(jù) = 編碼_gb2312到utf8 (發(fā)送的內(nèi)容) ' ——————————先轉(zhuǎn)換成utf8碼 返回內(nèi)容 = 到文本 (HTTP讀文件 (“http://www.tuling123.com/openapi/api?key=bad4d07e4c1c439b935a922906176478&info=” + 數(shù)據(jù) + “&loc=北京&userid=a1”)) ' ——————————發(fā)送給圖靈 返回內(nèi)容 = 編碼_utf8到gb2312 (返回內(nèi)容) ' —————————— 先把返回的數(shù)據(jù)轉(zhuǎn)成簡(jiǎn)體中文的編碼 調(diào)試輸出 (返回內(nèi)容) ' ——————————調(diào)試輸出一下看看 需要的內(nèi)容長(zhǎng)度 = 取文本長(zhǎng)度 (返回內(nèi)容) - 尋找文本 (返回內(nèi)容, #對(duì)話前, , 假) - 取文本長(zhǎng)度 (#對(duì)話前) - 取文本長(zhǎng)度 (#對(duì)話后) + 1 ' 全部的長(zhǎng)度 - 前面文本所在位置 - 前面文本長(zhǎng)度 - 后面文本長(zhǎng)度 + 1,得出來(lái)的結(jié)果就是需要的文本長(zhǎng)度 返回內(nèi)容 = 取文本中間 (返回內(nèi)容, 尋找文本 (返回內(nèi)容, #對(duì)話前, , 假) + 取文本長(zhǎng)度 (#對(duì)話前), 需要的內(nèi)容長(zhǎng)度) ' ——————————起始位置是前面文本所在位置 + 前面文本的長(zhǎng)度 編輯框3.內(nèi)容 = 返回內(nèi)容 ' ——————————編輯框上顯示出來(lái) 返回 (返回內(nèi)容) .子程序 獲取token, 文本型, , 獲取百度驗(yàn)證信息 .局部變量 臨時(shí)數(shù)組, 文本型, , "0" .局部變量 返回的文本, 文本型 .局部變量 token, 文本型 返回的文本 = 到文本 (HTTP讀文件 (“https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=” + #apikey + “&client_secret=” + #Secretkey)) 臨時(shí)數(shù)組 = 分割文本 (返回的文本, #token前, ) token = 取文本左邊 (臨時(shí)數(shù)組 [2], 尋找文本 (臨時(shí)數(shù)組 [2], #雙撇號(hào), , 假) - 1) 返回 (token) .子程序 合成語(yǔ)音, , , 調(diào)用百度語(yǔ)音合成API接口 .參數(shù) 需要合成的文本, 文本型 .局部變量 句柄, 整數(shù)型 .局部變量 z, 文本型 .局部變量 返回的語(yǔ)音, 字節(jié)集 z = 需要合成的文本 z = 編碼_gb2312到utf8 (z) ' 先轉(zhuǎn)換成utf8編碼 z = 編碼_URL編碼 (z) ' 再進(jìn)行URL編碼 媒體播放1.停止 () 媒體播放1.關(guān)閉 () ' 關(guān)閉正在播放的才能寫(xiě)出新的語(yǔ)音 返回的語(yǔ)音 = HTTP讀文件 (“http://tsn.baidu.com/text2audio?tex=” + z + “&lan=zh&ctp=1&cuid=” + 取本機(jī)網(wǎng)卡物理地址 () + “&tok=” + 獲取token () + “&pit=9”) 寫(xiě)到文件 (“C:\Users\Administrator\Desktop\1.mp3”, 返回的語(yǔ)音) 媒體播放1.打開(kāi) (“C:\Users\Administrator\Desktop\1.mp3”) 媒體播放1.播放 (-1, ) 調(diào)試輸出 (“合成語(yǔ)音完成”) 設(shè)置喚醒按鈕.標(biāo)題 = “完成” .子程序 _判斷播放狀態(tài)時(shí)鐘1_周期事件, , , 如果播放完了就關(guān)閉文件,這樣才能寫(xiě)出新的文件 .判斷開(kāi)始 (媒體播放1.取狀態(tài) () = 2) 媒體播放1.關(guān)閉 () .默認(rèn) .判斷結(jié)束 .子程序 _判斷是否說(shuō)話時(shí)鐘_周期事件 錄音音波1.取聲波值 (音量, 2047) 音量 = 取絕對(duì)值 (音量) .判斷開(kāi)始 (音量 > 200) 計(jì)時(shí) = 0 .判斷 (計(jì)時(shí) > 100) ' 時(shí)鐘周期是10,如果連續(xù)100次(也就是1秒鐘)音量都小于200就結(jié)束錄音。這個(gè)作用就是1秒鐘之內(nèi)沒(méi)說(shuō)話就停止錄音。 判斷是否說(shuō)話時(shí)鐘.時(shí)鐘周期 = 0 錄音1.停止 () 播放音樂(lè) (#結(jié)束聲音, ) 設(shè)置喚醒按鈕.標(biāo)題 = “正在識(shí)別” 錄音1.保存文件 (取運(yùn)行目錄 () + “\ly.wav”, 真) 合成語(yǔ)音 (機(jī)器人對(duì)話 (識(shí)別 ())) 計(jì)時(shí) = 0 .默認(rèn) 計(jì)時(shí) = 計(jì)時(shí) + 1 .判斷結(jié)束 .子程序 識(shí)別, 文本型, , 調(diào)用百度語(yǔ)音識(shí)別API接口 .局部變量 MAC, 文本型 .局部變量 語(yǔ)言, 文本型, , , 中文=zh、粵語(yǔ)=ct、英文=en,不區(qū)分大小寫(xiě),默認(rèn)中文 .局部變量 返回內(nèi)容, 文本型 MAC = 取本機(jī)網(wǎng)卡物理地址 () 語(yǔ)言 = “zh” 返回內(nèi)容 = 編碼_utf8到gb2312 (到文本 (網(wǎng)頁(yè)_訪問(wèn) (“http://vop.baidu.com//server_api?lan=” + 語(yǔ)言 + “&format=wav” + “&rate=8000” + “&channel=1” + “&cuid=” + MAC + “&token=” + 獲取token (), 1, , , , “Content-Type:audio/wav;rate=8000;Content-length=999999”, , , 讀入文件 (取運(yùn)行目錄 () + “\ly.wav”), ))) 返回內(nèi)容 = 取文本中間 (返回內(nèi)容, 尋找文本 (返回內(nèi)容, #識(shí)別返回前, , 假) + 取文本長(zhǎng)度 (#識(shí)別返回前), 尋找文本 (返回內(nèi)容, #識(shí)別返回后, , 假) - 尋找文本 (返回內(nèi)容, #識(shí)別返回前, , 假) - 取文本長(zhǎng)度 (#識(shí)別返回前)) ' 取得需要的文本 調(diào)試輸出 (“識(shí)別后的內(nèi)容:” + 返回內(nèi)容) 編輯框2.內(nèi)容 = 返回內(nèi)容 返回 (返回內(nèi)容)
運(yùn)行結(jié)果:
關(guān)于“易語(yǔ)言如何制作語(yǔ)音聊天機(jī)器人”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。