摘要:最近在忙一個小程序藍牙秤的項目,開發環境為小程序,上傳物料的時候需要用到語音播報即將文字轉換為語音,于是開始研究,試了幾個,最終使用騰訊的來完成這個功能。
最近在忙一個小程序藍牙秤的項目,開發環境為php+小程序,上傳物料的時候需要用到語音播報(即將文字轉換為語音),于是開始研究,試了幾個,最終使用騰訊AI的API來完成這個功能。官網上(http://ai.qq.com/)也有相應教程,大致分為這幾個步驟
1.創建應用填寫應用的相關信息,勾選所需的AI技術服務,完成應用的創建,最多可以為應用開放所有的接口權限。
2.獲取密鑰在應用創建完畢后,您便可在應用詳情中查看到此應用的接入憑證,主要為AppID、AppKey。每個應用唯一標示,互不相同,這兩個值需要保存好,后期要用到哦
3.生成簽名應用在調用平臺AI技術接口之前,首先需要獲取接口鑒權簽名。
4.啟動開發一切就緒,便可以開發
上邊呢,是大體的步驟,具體知道有這幾步就可以了,下面舉個實例,更容易讓大家理解,其實這個接口的作用就是將文字轉換為語音,然后返回文字的語音數據
5.后臺配置請求的參數
模型編碼
女生 0
女生純英文1
男生 2
喜道公子 6
語速編碼
0.6倍速 -2
0.8倍速 -1
正常速度 0
1.2倍速 1
1.5倍速 2
下面使用PHP實現該HTTP API調用(text即為待合成的語音)
public function actionBluetoothScaleVoice() { $data = Yii::$app->request->get("data"); $appkey = "Ejxghuuuuuuuuu"; $params = array( "app_id" => "11060809832473294", "text" => $data, "model_type" => "0", "speed" => "0", "time_stamp" => strval(time()), "nonce_str" => strval(rand()), "sign" => "", ); $params["sign"] = $this->getReqSign($params, $appkey); // 執行API調用 $url = "https://api.ai.qq.com/fcgi-bin/aai/aai_tta"; $response =$this->doHttpPost($url, $params); return $response; } //獲取簽名 public function getReqSign($params /* 關聯數組 */, $appkey /* 字符串*/) { // 1. 字典升序排序 ksort($params); // 2. 拼按URL鍵值對 $str = ""; foreach ($params as $key => $value) { if ($value !== "") { $str .= $key . "=" . urlencode($value) . "&"; } } // 3. 拼接app_key $str .= "app_key=" . $appkey; // 4. MD5運算+轉換大寫,得到請求簽名 $sign = strtoupper(md5($str)); return $sign; } //執行請求 public function doHttpPost($url, $params) { $curl = curl_init(); $response = false; do { // 1. 設置HTTP URL (API地址) curl_setopt($curl, CURLOPT_URL, $url); // 2. 設置HTTP HEADER (表單POST) $head = array( "Content-Type: application/x-www-form-urlencoded" ); curl_setopt($curl, CURLOPT_HTTPHEADER, $head); // 3. 設置HTTP BODY (URL鍵值對) $body = http_build_query($params); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $body); // 4. 調用API,獲取響應結果 curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_NOBODY, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); if ($response === false) { $response = false; break; } $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($code != 200) { $response = false; break; } } while (0); curl_close($curl); return $response; }
2.響應參數
后臺寫好了,前臺該怎么展示呢,這里以小程序為例:
6.前臺處理1.在頁面中添加audio標簽
2.添加請求
wx.request({ url: "https://xxxx.com", data: { data: "待合成的語音數據"}, method: "get", header: { "content-type": "application/json" // 默認值 }, dataType: "json", success: function (res) { let myAudio = wx.createAudioContext("myAudio"); myAudio.setSrc("data:audio/mp3;base64," + res.data.data.voice); myAudio.play(); } })
大致就這么多,如果有不清楚的,或者有更好辦法的歡迎留言,共同進步
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30791.html
摘要:背景介紹智能語音助手作為物聯網領域的一個重要生態成員,是一種全新的交互方式,它能夠解放雙手,隨時提供服務,無須借助任何按鍵。學完該案例讓你對智能語音助手有一個全新的認識。快來打造你的智能語音助手吧 1. 背景介紹 智能語音助手作為物聯網領域的一個重要生態成員,是一種全新的交互方式,它能夠解...
摘要:避免手機網絡不穩定引起的微信郵件移動不及時現象,基本上電話是不可抗拒的,除非關機。中小企業運維支撐同學就可構建一個團隊,告警事件的處理會逐漸進入正軌,并有序處理。結束語這次新版本發布,已經實現兩個中國領先通知渠道領先和接入監控平臺領先。 大多 IT 運營支撐同學都有過深夜業務應用突然故障的經歷,監控系統準確告警,但是白天筋疲力盡的運維同學在熟睡中,經常會遺漏告警提醒;往往是接到主管電話...
閱讀 609·2021-10-08 10:20
閱讀 1496·2021-09-23 11:22
閱讀 3227·2019-08-30 15:55
閱讀 1613·2019-08-28 18:25
閱讀 1871·2019-08-28 18:14
閱讀 1244·2019-08-26 11:37
閱讀 2907·2019-08-26 10:18
閱讀 2432·2019-08-23 18:39