首页 > 编程知识 正文

百度文字转语音在线版,百度语音广播文字转语音

时间:2023-05-05 08:26:51 阅读:192024 作者:4607

直接可以复制使用的代码,PHP实现调取 百度文字转语音SDK 提示:建议放入助手中使用 //最终效果public function Index() {return getVoiceUrl('俺就是这么帅',2,2,2,3); //调用文字转语音助手函数}//实现代码/** * 请求接口返回合成语音链接 * @param string $tex UTF-8编码[需要播报的文字] * @param int $spd [语速,取值0-9] * @param int $pit [音调,取值0-9] * @param int $vol [音量,取值0-15] * @param int $per [发音人选择0-4] * @return string */if (!function_exists("getVoiceUrl")) { function getVoiceUrl($tex, $spd = 5, $pit = 5, $vol = 5, $per = 0) { //存缓存的目的是下次直接拿token用,无需多次重复请求 if (!Yii::$app->cache->get('voice_key')) { //无缓存,缓存名称voice_key $token_url = "https://openapi.baidu.com/oauth/2.0/token"; //拿请求token $headers = 'content-type:application/x-www-form-urlencoded'; //header请求头 $params = 'grant_type=client_credentials&client_id=tGkGdWBsFPiyuB0gpgCPA4Zk&client_secret=ElWhGqpgVqIaaCQXcxDG8baXvWzVqutL'; //建议改为自己的 $token = json_decode(juhecurlHttps($token_url, $params, true, $headers)); //请求接口 Yii::$app->cache->set('voice_key', $token->access_token, $token->expires_in); //设置缓存,缓存名称voice_key } $url = "http://tsn.baidu.com/text2audio"; //合成语音api $params = [ 'tok' => Yii::$app->cache->get('voice_key'), //直接读缓存中的token 'tex' => $tex, 'spd' => $spd, 'pit' => $pit, 'vol' => $vol, 'per' => $per, 'cuid' => "quickstart", 'lan' => 'zh', 'ctp' => 1, ]; if (is_array($params)) { $url .= '?'; foreach ($params as $k => $v) { $url .= $k . '=' . $v . '&'; } } //返回语音url return $url; }}/** * 请求接口返回内容 - https * * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string */if (!function_exists('juhecurlHttps')) { function juhecurlHttps($url, $params = false, $ispost = 0, $headers = []) { $httpInfo = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); if (!empty($headers)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); //传post数据 curl_setopt($ch, CURLOPT_URL, $url); } else { if ($params) { // 判断参数是否是数组 if (is_array($params)) { // 清空zt数据 unset($params['zt']); // get上传 $url .= '?'; foreach ($params as $k => $v) { $url .= $k . '=' . $v . '&'; } curl_setopt($ch, CURLOPT_URL, $url); } else { curl_setopt($ch, CURLOPT_URL, $url . '?' . $params); } } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } curl_close($ch); return $response; }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。