您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關易語言如何制作語音聊天機器人,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
常量數據表
.版本 2 .常量 對話前, "<文本長度: 7>", , text":" .常量 對話后, "<文本長度: 2>", , "} .常量 token前, "<文本長度: 16>", , "access_token":" .常量 雙撇號, "<文本長度: 1>", , " .常量 apikey, "<文本長度: 24>", , Tc9KWDDFPLm1QNVPgEx7kco6 .常量 Secretkey, "<文本長度: 32>", , DnqP3q2GwOqGuYI9sUhLT4l7uC2f1yVL .常量 識別返回前, "<文本長度: 10>", , result":[" .常量 識別返回后, "<文本長度: 3>", , "],
語音聊天機器人的代碼
此功能需要加載精易模塊5.6
.版本 2 .支持庫 eMMedia .支持庫 ESpeechEngine .支持庫 internet .支持庫 spec .支持庫 eAPI .程序集 窗口程序集_啟動窗口 .程序集變量 API地址, 文本型 .程序集變量 APIkey, 文本型 .程序集變量 喚醒名, 文本型, , "0" .程序集變量 音量, 短整數型 .程序集變量 計時, 整數型 .程序集變量 最大頻段, 整數型 .程序集變量 發送內容, 文本型 .子程序 _語音識別1_識別到語音 .參數 識別文本, 文本型 .如果真 (尋找文本 (識別文本, 喚醒名 [1], , 假) ≠ -1) ' 識別到喚醒名就開始錄音。 錄音音波1.打開 () ' 這個是檢測麥克風音量的用的 最大頻段 = 錄音音波1.取上限 () - 1 播放音樂 (#開始聲音, ) 設置喚醒按鈕.標題 = “正在聆聽” 錄音1.錄制 () ' 開始錄音…… 判斷是否說話時鐘.時鐘周期 = 10 ' 判斷是否在說話的時鐘。 .如果真結束 .子程序 _設置喚醒按鈕_被單擊 語音識別1.創建 (0, 1) ' 初始化語音識別引擎,初始化失敗的需要下載微軟的語音識別引擎Microsoft Speech SDK v5.1 加入成員 (喚醒名, 編輯框1.內容) 語音識別1.加入常用 (喚醒名) 信息框 (“設置成功,請直接對著麥克風呼喚: ” + 編輯框1.內容 + “ 即可開始對話”, 0, ) 設置喚醒按鈕.禁止 = 真 .子程序 機器人對話, 文本型, , 調用圖靈機器人API接口 .參數 發送的內容, 文本型 .局部變量 數據, 文本型 .局部變量 返回內容, 文本型 .局部變量 需要的內容長度, 整數型 數據 = 編碼_gb2312到utf8 (發送的內容) ' ——————————先轉換成utf8碼 返回內容 = 到文本 (HTTP讀文件 (“http://www.tuling123.com/openapi/api?key=bad4d07e4c1c439b935a922906176478&info=” + 數據 + “&loc=北京&userid=a1”)) ' ——————————發送給圖靈 返回內容 = 編碼_utf8到gb2312 (返回內容) ' —————————— 先把返回的數據轉成簡體中文的編碼 調試輸出 (返回內容) ' ——————————調試輸出一下看看 需要的內容長度 = 取文本長度 (返回內容) - 尋找文本 (返回內容, #對話前, , 假) - 取文本長度 (#對話前) - 取文本長度 (#對話后) + 1 ' 全部的長度 - 前面文本所在位置 - 前面文本長度 - 后面文本長度 + 1,得出來的結果就是需要的文本長度 返回內容 = 取文本中間 (返回內容, 尋找文本 (返回內容, #對話前, , 假) + 取文本長度 (#對話前), 需要的內容長度) ' ——————————起始位置是前面文本所在位置 + 前面文本的長度 編輯框3.內容 = 返回內容 ' ——————————編輯框上顯示出來 返回 (返回內容) .子程序 獲取token, 文本型, , 獲取百度驗證信息 .局部變量 臨時數組, 文本型, , "0" .局部變量 返回的文本, 文本型 .局部變量 token, 文本型 返回的文本 = 到文本 (HTTP讀文件 (“https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=” + #apikey + “&client_secret=” + #Secretkey)) 臨時數組 = 分割文本 (返回的文本, #token前, ) token = 取文本左邊 (臨時數組 [2], 尋找文本 (臨時數組 [2], #雙撇號, , 假) - 1) 返回 (token) .子程序 合成語音, , , 調用百度語音合成API接口 .參數 需要合成的文本, 文本型 .局部變量 句柄, 整數型 .局部變量 z, 文本型 .局部變量 返回的語音, 字節集 z = 需要合成的文本 z = 編碼_gb2312到utf8 (z) ' 先轉換成utf8編碼 z = 編碼_URL編碼 (z) ' 再進行URL編碼 媒體播放1.停止 () 媒體播放1.關閉 () ' 關閉正在播放的才能寫出新的語音 返回的語音 = HTTP讀文件 (“http://tsn.baidu.com/text2audio?tex=” + z + “&lan=zh&ctp=1&cuid=” + 取本機網卡物理地址 () + “&tok=” + 獲取token () + “&pit=9”) 寫到文件 (“C:\Users\Administrator\Desktop\1.mp3”, 返回的語音) 媒體播放1.打開 (“C:\Users\Administrator\Desktop\1.mp3”) 媒體播放1.播放 (-1, ) 調試輸出 (“合成語音完成”) 設置喚醒按鈕.標題 = “完成” .子程序 _判斷播放狀態時鐘1_周期事件, , , 如果播放完了就關閉文件,這樣才能寫出新的文件 .判斷開始 (媒體播放1.取狀態 () = 2) 媒體播放1.關閉 () .默認 .判斷結束 .子程序 _判斷是否說話時鐘_周期事件 錄音音波1.取聲波值 (音量, 2047) 音量 = 取絕對值 (音量) .判斷開始 (音量 > 200) 計時 = 0 .判斷 (計時 > 100) ' 時鐘周期是10,如果連續100次(也就是1秒鐘)音量都小于200就結束錄音。這個作用就是1秒鐘之內沒說話就停止錄音。 判斷是否說話時鐘.時鐘周期 = 0 錄音1.停止 () 播放音樂 (#結束聲音, ) 設置喚醒按鈕.標題 = “正在識別” 錄音1.保存文件 (取運行目錄 () + “\ly.wav”, 真) 合成語音 (機器人對話 (識別 ())) 計時 = 0 .默認 計時 = 計時 + 1 .判斷結束 .子程序 識別, 文本型, , 調用百度語音識別API接口 .局部變量 MAC, 文本型 .局部變量 語言, 文本型, , , 中文=zh、粵語=ct、英文=en,不區分大小寫,默認中文 .局部變量 返回內容, 文本型 MAC = 取本機網卡物理地址 () 語言 = “zh” 返回內容 = 編碼_utf8到gb2312 (到文本 (網頁_訪問 (“http://vop.baidu.com//server_api?lan=” + 語言 + “&format=wav” + “&rate=8000” + “&channel=1” + “&cuid=” + MAC + “&token=” + 獲取token (), 1, , , , “Content-Type:audio/wav;rate=8000;Content-length=999999”, , , 讀入文件 (取運行目錄 () + “\ly.wav”), ))) 返回內容 = 取文本中間 (返回內容, 尋找文本 (返回內容, #識別返回前, , 假) + 取文本長度 (#識別返回前), 尋找文本 (返回內容, #識別返回后, , 假) - 尋找文本 (返回內容, #識別返回前, , 假) - 取文本長度 (#識別返回前)) ' 取得需要的文本 調試輸出 (“識別后的內容:” + 返回內容) 編輯框2.內容 = 返回內容 返回 (返回內容)
運行結果:
關于“易語言如何制作語音聊天機器人”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。