php语音到账api接口如何实现
php  /  管理员 发布于 7年前   166
php语音到账api接口如何实现
1.准备工作
申请讯飞帐号http://www.xfyun.cn/
添加IP白名单(5-10分钟生效)准备一个音频文件(wav或pcm格式)获取APPID和APPKEY(每个服务的APPKEY不同)
const APP_ID = ‘xxxx’;const APP_KEY_IAT = ‘xxxx’; //语音听写APPKEYconst APP_KEY_ISE = ‘xxxx’; //语音评测APPKEYconst APP_KEY_TTS = ‘xxxx’; //语音合成APPKEY
语音听写
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;}
语音听写示例:
voiceIat('a.wav');
语音评测
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;}
语音评测示例:
echo voiceIse(‘a.wav’, ‘科大讯飞真给力’);
语音合成:
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 ‘语音合成成功,请查看文件!’;}}
语音合成示例:
echo voiceTts(‘科大讯飞真给力’, ‘a.wav’);
更多PHP相关知识,请访问!
以上就是php语音到账api接口如何实现的详细内容,更多请关注其它相关文章!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号