国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

移動(dòng)端快速接入語(yǔ)音播報(bào)

elarity / 2723人閱讀

摘要:最近在忙一個(gè)小程序藍(lán)牙秤的項(xiàng)目,開(kāi)發(fā)環(huán)境為小程序,上傳物料的時(shí)候需要用到語(yǔ)音播報(bào)即將文字轉(zhuǎn)換為語(yǔ)音,于是開(kāi)始研究,試了幾個(gè),最終使用騰訊的來(lái)完成這個(gè)功能。

最近在忙一個(gè)小程序藍(lán)牙秤的項(xiàng)目,開(kāi)發(fā)環(huán)境為php+小程序,上傳物料的時(shí)候需要用到語(yǔ)音播報(bào)(即將文字轉(zhuǎn)換為語(yǔ)音),于是開(kāi)始研究,試了幾個(gè),最終使用騰訊AI的API來(lái)完成這個(gè)功能。官網(wǎng)上(http://ai.qq.com/)也有相應(yīng)教程,大致分為這幾個(gè)步驟

1.創(chuàng)建應(yīng)用

填寫應(yīng)用的相關(guān)信息,勾選所需的AI技術(shù)服務(wù),完成應(yīng)用的創(chuàng)建,最多可以為應(yīng)用開(kāi)放所有的接口權(quán)限。

2.獲取密鑰

在應(yīng)用創(chuàng)建完畢后,您便可在應(yīng)用詳情中查看到此應(yīng)用的接入憑證,主要為AppID、AppKey。每個(gè)應(yīng)用唯一標(biāo)示,互不相同,這兩個(gè)值需要保存好,后期要用到哦

3.生成簽名

應(yīng)用在調(diào)用平臺(tái)AI技術(shù)接口之前,首先需要獲取接口鑒權(quán)簽名。

4.啟動(dòng)開(kāi)發(fā)

一切就緒,便可以開(kāi)發(fā)


上邊呢,是大體的步驟,具體知道有這幾步就可以了,下面舉個(gè)實(shí)例,更容易讓大家理解,其實(shí)這個(gè)接口的作用就是將文字轉(zhuǎn)換為語(yǔ)音,然后返回文字的語(yǔ)音數(shù)據(jù)

5.后臺(tái)配置

請(qǐng)求的參數(shù)

模型編碼

女生 0
女生純英文1
男生 2
喜道公子 6

語(yǔ)速編碼

0.6倍速 -2
0.8倍速 -1
正常速度 0
1.2倍速 1
1.5倍速 2

下面使用PHP實(shí)現(xiàn)該HTTP API調(diào)用(text即為待合成的語(yǔ)音)

    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);
        // 執(zhí)行API調(diào)用
        $url = "https://api.ai.qq.com/fcgi-bin/aai/aai_tta";
        $response =$this->doHttpPost($url, $params);
        return $response;
    }
        
       //獲取簽名
       
      public function getReqSign($params /* 關(guān)聯(lián)數(shù)組 */, $appkey /* 字符串*/)
        {
            // 1. 字典升序排序
            ksort($params);
            // 2. 拼按URL鍵值對(duì)
            $str = "";
            foreach ($params as $key => $value)
            {
                if ($value !== "")
                {
                    $str .= $key . "=" . urlencode($value) . "&";
                }
            }
            // 3. 拼接app_key
            $str .= "app_key=" . $appkey;

            // 4. MD5運(yùn)算+轉(zhuǎn)換大寫,得到請(qǐng)求簽名
            $sign = strtoupper(md5($str));
            return $sign;
        }
        
        //執(zhí)行請(qǐng)求
        public function doHttpPost($url, $params)
    {
        $curl = curl_init();

        $response = false;
        do
        {
            // 1. 設(shè)置HTTP URL (API地址)
            curl_setopt($curl, CURLOPT_URL, $url);

            // 2. 設(shè)置HTTP HEADER (表單POST)
            $head = array(
                "Content-Type: application/x-www-form-urlencoded"
            );
            curl_setopt($curl, CURLOPT_HTTPHEADER, $head);

            // 3. 設(shè)置HTTP BODY (URL鍵值對(duì))
            $body = http_build_query($params);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $body);

            // 4. 調(diào)用API,獲取響應(yīng)結(jié)果
            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.響應(yīng)參數(shù)

后臺(tái)寫好了,前臺(tái)該怎么展示呢,這里以小程序?yàn)槔?/p> 6.前臺(tái)處理

1.在頁(yè)面中添加audio標(biāo)簽

2.添加請(qǐng)求

    wx.request({
      url: "https://xxxx.com",
      data: { data: "待合成的語(yǔ)音數(shù)據(jù)"},
      method: "get",
      header: {
        "content-type": "application/json" // 默認(rèn)值
      },
      dataType: "json",
      success: function (res) {
        let myAudio = wx.createAudioContext("myAudio");
        myAudio.setSrc("data:audio/mp3;base64," + res.data.data.voice);
        myAudio.play();
      }
    })

大致就這么多,如果有不清楚的,或者有更好辦法的歡迎留言,共同進(jìn)步

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30791.html

相關(guān)文章

  • 爆肝一周,用Python在物聯(lián)網(wǎng)設(shè)備上寫了個(gè)智能語(yǔ)音助手

    摘要:背景介紹智能語(yǔ)音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個(gè)重要生態(tài)成員,是一種全新的交互方式,它能夠解放雙手,隨時(shí)提供服務(wù),無(wú)須借助任何按鍵。學(xué)完該案例讓你對(duì)智能語(yǔ)音助手有一個(gè)全新的認(rèn)識(shí)。快來(lái)打造你的智能語(yǔ)音助手吧 1. 背景介紹 智能語(yǔ)音助手作為物聯(lián)網(wǎng)領(lǐng)域的一個(gè)重要生態(tài)成員,是一種全新的交互方式,它能夠解...

    I_Am 評(píng)論0 收藏0
  • 中小企業(yè) IT 運(yùn)維福利:快速構(gòu)建 on-call 機(jī)制

    摘要:避免手機(jī)網(wǎng)絡(luò)不穩(wěn)定引起的微信郵件移動(dòng)不及時(shí)現(xiàn)象,基本上電話是不可抗拒的,除非關(guān)機(jī)。中小企業(yè)運(yùn)維支撐同學(xué)就可構(gòu)建一個(gè)團(tuán)隊(duì),告警事件的處理會(huì)逐漸進(jìn)入正軌,并有序處理。結(jié)束語(yǔ)這次新版本發(fā)布,已經(jīng)實(shí)現(xiàn)兩個(gè)中國(guó)領(lǐng)先通知渠道領(lǐng)先和接入監(jiān)控平臺(tái)領(lǐng)先。 大多 IT 運(yùn)營(yíng)支撐同學(xué)都有過(guò)深夜業(yè)務(wù)應(yīng)用突然故障的經(jīng)歷,監(jiān)控系統(tǒng)準(zhǔn)確告警,但是白天筋疲力盡的運(yùn)維同學(xué)在熟睡中,經(jīng)常會(huì)遺漏告警提醒;往往是接到主管電話...

    fobnn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<