Hi, 璇风櫥褰�    鎴戣娉ㄥ唽
    鍏充簬鎴戜滑 | 鑱旂郴鎴戜滑 鎶曠ǹ
璁块棶鎵嬫満绔�11jn骞宠娴庡崡

  • 閸旂姴鍙哬ouGov,閸欏倷绗岄張澶庡彯閻ㄥ嫰妫堕崡锟�
  • 娴滎兛绗�,閹风厧顦挎径锟�,濞fê鐤傛径鈺冨皸娑撯偓缂冩垶澧︾亸锟�
  • 閼瑰墽鎲虹拫鍐埡iclick,婵夘偊妫堕崡宄板幀閻滀即鍣�
  • 婢额喛顫嬬敮鍌氭簚閻梻鈹抜ctr,婵夘偊妫堕崡宄板幀閻滀即鍣�
  • 閹额澀绱幆鐘插煖:娴滎兛绗�,閹风厧顦挎径锟�,濞fê鐤傛径鈺冨皸
  • 鐠嬪啯鐓¢柅姝瀒aochatong,婵夘偊妫堕崡宄板幀閻滀即鍣�
灞辨按涓庢梾娓� 杞﹀瓙
鍘嗗彶涓庢枃鍖� 鎴垮瓙
  • 棣栭〉
  • 鎴戠埍鎴戝
    • 鍏崇埍鑰佸勾浜�
    • 鍛垫姢涓嬩竴浠�
  • 鏌寸背娌圭洂閰遍唻鑼�
  • 闈掓槬宀佹湀
    • 鐑闈掑勾
    • 浜哄埌涓勾

PHP调用科大讯飞语音服务

添加时间:18-04-22 所属分类:PHP工具与代码
  http://www.php.cn/php-weizijiaocheng-392613.html

最近在做微信小程序,需要做语音识别,选择了国内很有名的讯飞语音。
我的后台是PHP,在接入过程中走了一些坑,在这里分享出来希望可以帮助需要的朋友

准备工作

申请讯飞帐号http://www.xfyun.cn/
这里写图片描述

添加IP白名单(5-10分钟生效)

准备一个音频文件(wav或pcm格式)

获取APPID和APPKEY(每个服务的APPKEY不同)

[code]const APP_ID = 'xxxx';const APP_KEY_IAT = 'xxxx'; //语音听写APPKEYconst APP_KEY_ISE = 'xxxx'; //语音评测APPKEYconst APP_KEY_TTS = 'xxxx'; //语音合成APPKEY</code>
语音听写
<code>public function voiceIat($file_path){
$param = [ 'engine_type' => 'sms16k', 'aue' => 'raw'
]; $cur_time = (string)time(); $x_param = base64_encode(json_encode($param)); $header_data = [ 'X-Appid:'.self::APP_ID, 'X-CurTime:'.$cur_time, 'X-Param:'.$x_param, 'X-CheckSum:'.md5(self::APP_KEY_IAT.$cur_time.$x_param), 'Content-Type:application/x-www-form-urlencoded; charset=utf-8'
]; //Body
$file_path = $file_path; $file_content = file_get_contents($file_path); $body_data = 'audio='.urlencode(base64_encode($file_content)); //Request
$url = "http://api.xfyun.cn/v1/service/v1/iat"; $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data); $result = curl_exec($ch);
curl_close($ch); return $result;
}[/code]

语音听写示例:
[code]voiceIat('a.wav');[/code]
语音评测
[code][code]public function voiceIse($file_path, $content){
$param = [ 'language' => 'cn', 'aue' => 'raw', 'category' => 'read_sentence'
]; $cur_time = (string)time(); $x_param = base64_encode(json_encode($param)); $header_data = [ 'X-Appid:'.self::APP_ID, 'X-CurTime:'.$cur_time, 'X-Param:'.$x_param, 'X-CheckSum:'.md5(self::APP_KEY_ISE.$cur_time.$x_param), 'Content-Type:application/x-www-form-urlencoded; charset=utf-8'
]; //Body
$file_path = $file_path; $file_content = file_get_contents($file_path); $body_data = 'audio='.urlencode(base64_encode($file_content)).'&text='.urlencode($content); $url = "http://api.xfyun.cn/v1/service/v1/ise"; $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data); $result = curl_exec($ch);
curl_close($ch); return $result;
}[/code]

语音评测示例:
[code]echo voiceIse('a.wav', '科大讯飞真给力');[/code]
语音合成
public function voiceTts($content, $output_path){
$param = [ 'engine_type' => 'intp65', 'auf' => 'audio/L16;rate=16000', 'aue' => 'raw', 'voice_name' => 'xiaoyan', 'speed' => '0'
]; $cur_time = (string)time(); $x_param = base64_encode(json_encode($param)); $header_data = [ 'X-Appid:'.self::APP_ID, 'X-CurTime:'.$cur_time, 'X-Param:'.$x_param, 'X-CheckSum:'.md5(self::APP_KEY_TTS.$cur_time.$x_param), 'Content-Type:application/x-www-form-urlencoded; charset=utf-8'
]; //Body
$body_data = 'text='.urlencode($content); //Request
$url = "http://api.xfyun.cn/v1/service/v1/tts"; $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data); $result = curl_exec($ch); $res_header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $res_header = substr($result, 0, $res_header_size);
curl_close($ch); if(stripos($res_header, 'Content-Type: audio/mpeg') === FALSE){ //合成错误
return substr($result, $res_header_size);
}else{
file_put_contents($output_path, substr($result, $res_header_size)); return '语音合成成功,请查看文件!';
}
}
[/code]
语音合成示例:
[code]echo voiceTts('科大讯飞真给力', 'a.wav');[/code] 涓夌埍鍏嬫柉锛�鍏堥鍒�锛屾窐瀹濆ぉ鐚紝浜笢鍟嗗煄锛屾嫾澶氬涓€缃戞墦灏�

前篇:对老年人骗局出新套路:专车送到郊区观光园... 后篇:博士写论文解释科学擀面 学霸们每天都在想些...
发表我的评论



推荐文章   济南老鞋匠5年做了100多只微型鞋 最小的...   济南辅警“飙”英语教育闯红灯老外 业余...   澳16岁少女,独自一人驾驶小船环游地球...   北漂女拳手赚“血汗钱”   岛上小学”唯一老师:坚守28年,每天划...
随机文章   用【ASP】【PHP】设为桌面快捷方式完整...   php汉字转拼音函数 支持utf编码 完美无...   如何使用PHP的GD库动态生成柱状图   PHP实现gb2312、UTF-8等字符和unicode间...   用PHP编程语言抓取网页的HTML内容汇总
广告

其他推荐

濠电偞娼欐绋跨暦閳╁喚娲ㄩ煫鍥ㄦ惄閸熲偓闁硅壈鎻幏锟� JN5A 闁哄鍎愰崹顖氣枎閵忋倕鐤鹃柛婵嗗鐟欙拷 闂佸摜鍠庨敃锝囩箔娓氣偓瀹曞爼鏁撻敓锟�

闂佺ǹ绻愮粔鐑芥儗濡や胶鐝堕柣妤€鐗婇~鏍煥濞戞瑧顣叉繝鈧幍顔剧>闁瑰鍋涢。鏌ユ煛閸繍妲搁柛鐐差嚟閳ь剙婀遍幊鎾翅缚鎼淬垺濮滄い鎺戝暞缁佷即鏌ゆ總澶夌盎闁告瑥澧介埀顒傛嚀閸燁偊鎮伴悢鍛婂闁瑰灝瀚粈澶愬级閻戝棗澧叉繛鏉戞喘閹嫰顢欓悙顒傛殸闂侀潻璐熼崝瀣姳椤掍礁顕遍柣妯煎劦閸嬫捇骞掗幘瀵稿嚱婵犮垼鍩栭惌顔界┍婵犲洤绠掓い鏍ュ€楃粈澶嬵殽閻愬瓨鏋勭紒妤€顦扮粋鎺楁晲閸稈鍋撻崘顔煎珘妞ゆ帒鍊荤粔褰掓偣瑜忛崑娑㈠箖閹捐绀傞柟顖炲亰濞煎酣鏌i幇顔藉殌闁归攱澹嗛埀顒傛暩閹虫捇宕fィ鍐╁剳闁绘棃顥撻弶浠嬫煙椤戭剙妫涢ˇ浼存偣閹板墎绁烽柍褜鍓欓崐鐟帮耿閹殿喚纾鹃柟杈剧稻缁侇噣寮堕悙鑸殿棄闁告瑧鍋撶粋鎺楀冀瑜忓畷顖毭归敐鍡樺矮缂佺媴绲跨划娆愬緞閸涘⿴鍋ㄩ梺鎸庣☉閺堫剟宕滄导鏉戞嵍闁靛ǹ鍊涚粈瀣煕韫囷絽鍘哥紒槌栧墴楠炴捇骞囬鍡氱箲闂佺ǹ绻愮粔鐑藉垂閸岀偛瀚夌€广儱鎳庨~銈夋煏閸℃鈧悂銆呰缁瑦寰勯崨濠庡仺闂佺粯顨呴悧濠傖缚閸儱纭€闁哄洦姘ㄧ粔鎾煙鐎涙ḿ澧ч梺鍙夌矋缁傚秵娼幍顔炬喒闂佽鍨伴崯鍨耿椤忓牆瀚夋い鎺戝€荤粔褰掓煕濞嗘劕鐏ョ紒鏃傚厴閺佸秶浠﹂挊澶庮唹婵炴垶鎸哥€涒晠宕瑰⿰鍫熷殏闁哄啫鍊块崗鍣€mail:atseashawk@163.com闂佹寧绋戦張顒勫垂濠婂牆缁╅悹鍝勬惈閻撳倿鏌熼鍝勫婵炲牊鍨块弻鍛潩鏉堚晛寮ㄩ梺鍛婅壘缁ㄨ偐妲愰幍顔荤剨闁糕剝顨呭鎾绘煙娣囧崬鈧繂鈻嶆惔銊︽櫖鐎光偓閸愵喗鈻奸柣鐘差儌閸嬫捇鍩€椤掑﹥瀚� 因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555