tp中如何调用科大讯飞的语音转写

1.首先注册科大讯飞(https://www.xfyun.cn/),拿到语音转写的APPID以及SecretKey
2.将我的压缩包放到tp的扩展类库目录(extend)中。解压
在这里插入图片描述
3.在控制里面的调用方式
在这里插入图片描述
重点注意:
1.一定要是科大讯飞语音转写的APPID以及SecretKey
2.你的音频文件一定要是绝对路径,这里科大讯飞那边需要将你的文件上传到他们的服务端
3.建议调用的方式采用消息队列的方式,方式因回调慢,影响项目的浏览速度
使用非常简单如有问题联系qq:1219481875

代码

class Kdxf{private $lfasr_host = 'http://raasr.xfyun.cn/api';# 请求的接口名private $api_prepare = '/prepare';private $api_upload = '/upload';private $api_merge = '/merge';private $api_get_progress = '/getProgress';private $api_get_result = '/getResult';# 文件分片大小10Mprivate $file_piece_sice = 10485760;# 转写类型private $lfasr_type = 0;# 是否开启分词private $has_participle = 'false';private $has_seperate = 'true';# 多候选词个数private $max_alternatives = 0;# 子用户标识private $suid = '';private $appid;private $secret_key;private $upload_file_path;private $obj;private $data;private $sig;public function __construct($appid,$secret_key) {$this->appid = $appid;$this->secret_key = $secret_key;$this->sig = new Sliceidgenerator();}#主要运行函数public function run($file_path) {$this->upload_file_path = $file_path;if($this->upload_file_path!=''){#预处理$pre_result = json_decode($this->prepare_request(),true);//var_dump($pre_result);die();$taskid = $pre_result['data'];#上传文件$this->upload_request($taskid,$this->upload_file_path);$this->merge_request($taskid);while (true) {$progress = $this->get_progress_request($taskid);$progress_dic = json_decode($progress);if ($progress_dic->err_no != 0 && $progress_dic->err_no != 26605){return;}else{$data = $progress_dic->data;$task_status = json_decode($data);if ($task_status->status == 9){//echo('The task ' . $taskid . ' is in processing, task status: ' . $task_status->desc);//echo "<br />";break;}//echo('The task ' . $taskid . ' is in processing, task status: ' . $task_status->desc);//echo "<br />";//sleep(0.1);}}$data_all=$this->get_result_request($taskid=$taskid);$data_all = json_decode($data_all)->data;$data_all=json_decode($data_all);$message='';for ($i=0;$i<count($data_all);$i++){$message.=$data_all[$i]->onebest;}   $this->data=$message;return $this->data;}}public function get_data() {return $this->data;}public function gene_params($apiname,$taskid="",$slice_id=""){$appid = $this->appid;$secret_key = $this->secret_key;$upload_file_path = $this->upload_file_path;$ts=time();$md5 = md5($appid.$ts);$signa = hash_hmac('sha1',$md5,$secret_key,true);$signa=base64_encode($signa);$file_len = filesize($this->upload_file_path);$file_name = basename($this->upload_file_path);if($apiname== $this->api_prepare){$slice_num = 1;$param_dict['app_id'] = $appid;$param_dict['signa'] = $signa;$param_dict['ts'] = $ts;$param_dict['file_len'] = (string)($file_len);$param_dict['file_name'] = $file_name;$param_dict['slice_num'] = (string)($slice_num);}elseif($apiname== $this->api_upload){$param_dict['app_id'] = $appid;$param_dict['signa'] = $signa;$param_dict['ts'] = $ts;$param_dict['task_id'] = $taskid;$param_dict['slice_id'] = $slice_id;}elseif($apiname == $this->api_merge){$param_dict['app_id'] = $appid;$param_dict['signa'] = $signa;$param_dict['ts'] = $ts;$param_dict['task_id'] = $taskid;$param_dict['file_name'] = $file_name;}elseif($apiname == $this->api_get_progress || $apiname == $this->api_get_result){$param_dict['app_id'] = $appid;$param_dict['signa'] = $signa;$param_dict['ts'] = $ts;$param_dict['task_id'] = $taskid;}return $param_dict;}public function gene_request($apiname, $data, $files='', $headers=''){if($files!=''){$data['content'] =$files['content'];}$jsonStr =$data;if($apiname==$this->api_prepare||$apiname==$this->api_merge||$apiname==$this->api_get_progress||$apiname==$this->api_get_result){$header= array("Content-Type"=>"application/x-www-form-urlencoded;charset=UTF-8",);}if($apiname==$this->api_upload){$header = array("Content-Type"=>"multipart/form-data;",);}$url = $this->lfasr_host . $apiname;$rt=$this->http_post_json($url, $jsonStr, $header);$result = json_decode($rt[1],true);if ($result["ok"] == 0){
//          echo("success:".$apiname);
//          echo "<br />";return $rt[1];}else{return $rt[1];} }# 预处理gene_requestpublic function prepare_request(){return $this->gene_request($apiname=$this->api_prepare,$data=$this->gene_params($this->api_prepare));}#上传public function upload_request($taskid, $upload_file_path){$finfo    = finfo_open(FILEINFO_MIME_TYPE);$mime = finfo_file($finfo, $upload_file_path);finfo_close($finfo);$curlFile = curl_file_create($upload_file_path,$mime,pathinfo($upload_file_path,PATHINFO_BASENAME));$files["filename"] = $this->gene_params($this->api_upload)["slice_id"];$files["content"] = $curlFile;$response = $this->gene_request($this->api_upload,$data=$this->gene_params($this->api_upload, $taskid=$taskid,$slice_id=$this->sig->getNextSliceId()),$files=$files);return $response;}public  function merge_request($taskid){return $this->gene_request($this->api_merge, $data=$this->gene_params($this->api_merge, $taskid=$taskid));}# 获取进度public  function get_progress_request($taskid){return $this->gene_request($this->api_get_progress, $data=$this->gene_params($this->api_get_progress, $taskid=$taskid));}# 获取结果public  function get_result_request($taskid){$result=$this->gene_request($this->api_get_result, $data=$this->gene_params($this->api_get_result, $taskid=$taskid));return $result;}#请求public  function http_post_json($url, $jsonStr,$header){$ch = curl_init();curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);$response = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);curl_close($ch);return array($httpCode, $response);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66169.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android语音识别之科大讯飞语音API的使用

Android系统本身其实提供有语音识别模块&#xff0c;在它的APIDemo里也有关于语音识别的sample&#xff0c;不过经过大多开发者的真机测试&#xff0c;发现很多真机并不能使用哪个sample&#xff0c;在网上查找了一下原因&#xff0c;大部分是因为开发者在刷机的时候&#xff0…

如何调教ChatGPT,让它成为生产力工具

我希望您充当 Graphviz DOT 生成器&#xff0c;创建有意义的图表的专家。该图应该至少有 n 个节点&#xff08;我在我的输入中通过写入 [n] 来指定 n&#xff0c;10 是默认值&#xff09;并且是给定输入的准确和复杂的表示。每个节点都由一个数字索引以减少输出的大小&#xff…

3月18日英超两场足球比赛分析推荐

不知不觉文章分析的场次推荐已经4连红&#xff0c;昨日文章写的纽卡没有问题&#xff0c;扫盘中错的两场实属无奈&#xff0c;比勒费前半场领先2球优势被最后一分钟点球扳平。海牙带球入场结果后半场乏力被打穿&#xff01;球场上就是这么变化莫测&#xff0c;让人悲伤让人疯狂…

足球胜平负数据这样分析竞猜准确率超高,你敢相信吗?

作为足球爱好者和竞猜玩家&#xff0c;使用一款好用的工具软件能够帮助我们更全面地分析比赛数据和情况&#xff0c; 提高我们的赛事预测准确率。因此&#xff0c;选择一款最好用的足球胜平负竞猜分析工具软件是我们必须要做的事情。下面我为大家介绍一款非常好用的数据分析工具…

周鸿祎自传

​ 1.那共通之处就是——人们如何在没有前车之鉴的判例中进行决策&#xff0c;又如何在泰山压顶般的压力之下做出最优的判断。对于创业者来说&#xff0c;每一天都是压力测试。&#xff0d;&#xff0d;&#xff0d;&#xff0d;决策 2.真正的勇敢&#xff0c;并非骁勇善战&am…

马斯克回应多年前嘲笑比亚迪;360 周鸿祎训练数字人代替演讲;微软发布自己的 Linux | 极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

史上最全最详细的多语言调用 3.5 Turbo 的 API 教程(持续更新中)

3.5 Turbo 模型是 Chat 所使用的模型&#xff0c;现 OpenAI 已正式开放 Chat 的 API 能力供广大开发者使用&#xff0c;它可以提供超高准确性、可靠性和可扩展性&#xff0c;让机器学习和自然语言处理的开发者以极低的成本获取精准的结果。 那么我们如何通过API 的方式调用 3.…

寻找新奇有趣的AI工具合集,一个网站就够了

随着ChatGpt横空出世&#xff0c;越来越多的AI工具涌现出来&#xff0c;利用这些工具&#xff0c;我们就可以玩转智能办公&#xff0c;尽享高效快捷。那么&#xff0c;我们从哪里可以即时获取到这些产品的信息呢&#xff1f;又如何调兵遣将&#xff0c;化种类繁多的AI工具为各种…

云炬Android开发笔记 17商品详情功能开发

阅读目录 1.商品详情ui框架设计 1.1 自定义圆形控件 1.2 底部栏的布局 1.3 整体布局 2.商品详情UI-MD风格伸缩渐变效果实现 2.1 ui的绑定 2.2 服务器中商品详情页的数据的取出 3.商品详情页的中间信息的完善 4. 商品详情页下部滑动Tab页面的实现 4.2 填充的ImageDele…

chatgpt赋能python:Python怎么断行-让代码更易读

Python怎么断行 - 让代码更易读 大多数Python程序员都知道&#xff0c;代码可读性非常重要。好的代码应该易于阅读和理解&#xff0c;而不是让人困惑和痛苦。 然而&#xff0c;我们经常会发现一些Python代码在一行中拥挤着多个表达式、长变量名混杂其中&#xff0c;让人感到相…

如何利用citespace分析cnki里的文献——(1)导入数据

##&#xff08;一&#xff09;在cnki中导出数据 按照自己的需要进行检索&#xff0c;选择需要导出的文献题录&#xff08;最多一次可选择500个&#xff09;&#xff0c;导出格式选为“Refworks”&#xff0c;点击“导出”&#xff0c;导出题录的txt&#xff0c;注意&#xff1a…

研究方法|用CiteSpace进行科学文献可视化分析

研究方法|用CiteSpace进行科学文献可视化分析 CiteSpace是什么&#xff1f; 简单来说&#xff0c;它一款通过将国内外文献进行可视化分析来帮助你了解一门学科前世今生的软件。 面对成千上万篇的文献&#xff0c;怎样才能快速锁定自己最感兴趣的主题及科学文献&#xff0c;找…

❤️这两个文献神器绝了!一张图谱梳理文献脉络

文章目录 引言神器1&#xff1a;connected papers关联文献图谱过往工作衍生工作 神器2&#xff1a;semantic scholar文献检索被引情况Semantic Reader阅读器 小结 引言 每当我们接触一个新技术领域时&#xff0c;往往需要借助大量的文献调研&#xff0c;来梳理研究现状。 尤其…

论文写作——origin画图

一 origin的安装 详见下面网址&#xff0c;内涵下载路径和破解方法。 http://www.ddooo.com/softdown/51005.htm 1. 下载origin 网址&#xff1a;https://thepcgo.com/origin-pro-8-0-free-download/ 2.下载破解相关压缩包 链接&#xff1a;https://pan.baidu.com/s/1LwA…

Endnote参考文献分享与导入

Endnote参考文献分享与导入/转移 文章发给老师如何将参考文献一同发送 软件版本为X8 一、分享 首先找到Endnote library的位置&#xff0c;将两个文件【一个是后缀为enl的数据库文件和另一个是.data文件夹】一起复制到一个文件夹&#xff0c;压缩通过网盘、U盘等方式发送给接…

名帖376 祝允明 草书《滕王阁序并诗》

《中国书法名帖目录》 祝允明&#xff0c;号枝山&#xff0c;明长洲(今苏州)人。弘治五年(1492)举人&#xff0c;天资卓越&#xff0c;五岁能作径尺大字&#xff1a;九岁能诗&#xff0c;写文章有奇气&#xff0c;且才思敏捷&#xff0c;与唐寅、文徵明、徐祯卿号称“吴中四才…

名帖249 文徵明 行书《滕王阁序》

《中国书法名帖目录》 《滕王阁序》是王勃创作的一篇骈文&#xff0c;素有“千古第一骈文”之名&#xff0c;无论从内容上还是从形式上看&#xff0c;都代表了中国骈文的最高成就。 曾有人问如何写出《滕王阁序》这样的作品&#xff0c;殊不知《滕王阁序》这样的雄构不是写出…

《滕王阁序》

滕王阁序 唐 王勃 南昌故郡&#xff0c;洪都新府&#xff0c;星分翼轸&#xff0c;地接衡庐&#xff0c;襟三江而带五湖&#xff0c;控蛮荆而引瓯越。物华天宝&#xff0c;龙光射斗牛之墟&#xff1b;人杰地灵&#xff0c;徐孺下陈蕃之榻。雄州雾列&#xff0c;俊彩星驰&#x…

chatgpt赋能python:Python输出波形:让你的数据可视化更轻松

Python输出波形&#xff1a;让你的数据可视化更轻松 随着数据获取和处理的不断深入&#xff0c;数据可视化正在变得越来越重要。而Python是一种流行的、易学习的、高级编程语言&#xff0c;广泛用于数据科学、统计学、机器学习等领域。Python的可视化库也非常强大&#xff0c;…

chatgpt赋能python:Python词云包:让数据可视化更加生动形象

Python词云包&#xff1a;让数据可视化更加生动形象 在当前大数据时代下&#xff0c;如何让海量数据更加生动形象展示&#xff0c;成为了数据科学家们面临的一个重要问题。数据可视化是其中的一种解决方案&#xff0c;词云作为数据可视化的一种手段&#xff0c;是很受欢迎的。…