调用科大讯飞语音转文本

文章目录

    • 一、创建应用
    • 二、测试接口

一、创建应用

在这里插入图片描述点击控制台,创建新应用
在这里插入图片描述点击应用,进入详情页,可获取APPID、APISecret、APIKey
在这里插入图片描述

二、测试接口

安装包

pip install websocket
pip install websocket-client==0.57.0
#!/usr/bin/env python
# -*- coding: utf-8 -*-import base64
import hashlib
import hmac
import json
import os
import timeimport pandas as pd
import requestslfasr_host = 'http://raasr.xfyun.cn/api'# 请求的接口名
api_prepare = '/prepare'
api_upload = '/upload'
api_merge = '/merge'
api_get_progress = '/getProgress'
api_get_result = '/getResult'
# 文件分片大小10M
file_piece_sice = 10485760# ——————————————————转写可配置参数————————————————
# 参数可在官网界面(https://doc.xfyun.cn/rest_api/%E8%AF%AD%E9%9F%B3%E8%BD%AC%E5%86%99.html)查看,根据需求可自行在gene_params方法里添加修改
# 转写类型
lfasr_type = 0
# 是否开启分词
has_participle = 'false'
has_seperate = 'true'
# 多候选词个数
max_alternatives = 0
# 子用户标识
suid = ''class SliceIdGenerator:"""slice id生成器"""def __init__(self):self.__ch = 'aaaaaaaaa`'def getNextSliceId(self):ch = self.__chj = len(ch) - 1while j >= 0:cj = ch[j]if cj != 'z':ch = ch[:j] + chr(ord(cj) + 1) + ch[j + 1:]breakelse:ch = ch[:j] + 'a' + ch[j + 1:]j = j - 1self.__ch = chreturn self.__chclass RequestApi(object):def __init__(self, appid, secret_key, upload_file_path):self.appid = appidself.secret_key = secret_keyself.upload_file_path = upload_file_path# 根据不同的apiname生成不同的参数,本示例中未使用全部参数您可在官网(https://doc.xfyun.cn/rest_api/%E8%AF%AD%E9%9F%B3%E8%BD%AC%E5%86%99.html)查看后选择适合业务场景的进行更换def gene_params(self, apiname, taskid=None, slice_id=None):appid = self.appidsecret_key = self.secret_keyupload_file_path = self.upload_file_pathspeaker_number = 2role_type = 2ts = str(int(time.time()))m2 = hashlib.md5()m2.update((appid + ts).encode('utf-8'))md5 = m2.hexdigest()md5 = bytes(md5, encoding='utf-8')# 以secret_key为key, 上面的md5为msg, 使用hashlib.sha1加密结果为signasigna = hmac.new(secret_key.encode('utf-8'), md5, hashlib.sha1).digest()signa = base64.b64encode(signa)signa = str(signa, 'utf-8')file_len = os.path.getsize(upload_file_path)file_name = os.path.basename(upload_file_path)param_dict = {}if apiname == api_prepare:# slice_num是指分片数量,如果您使用的音频都是较短音频也可以不分片,直接将slice_num指定为1即可slice_num = int(file_len / file_piece_sice) + (0 if (file_len % file_piece_sice == 0) else 1)param_dict['app_id'] = appidparam_dict['signa'] = signaparam_dict['speaker_number'] = speaker_numberparam_dict['has_seperate'] = has_seperateparam_dict['role_type'] = role_typeparam_dict['ts'] = tsparam_dict['file_len'] = str(file_len)param_dict['file_name'] = file_nameparam_dict['slice_num'] = str(slice_num)elif apiname == api_upload:param_dict['app_id'] = appidparam_dict['signa'] = signaparam_dict['speaker_number'] = speaker_numberparam_dict['has_seperate'] = has_seperateparam_dict['role_type'] = role_typeparam_dict['ts'] = tsparam_dict['task_id'] = taskidparam_dict['slice_id'] = slice_idelif apiname == api_merge:param_dict['app_id'] = appidparam_dict['signa'] = signaparam_dict['speaker_number'] = speaker_numberparam_dict['has_seperate'] = has_seperateparam_dict['role_type'] = role_typeparam_dict['ts'] = tsparam_dict['task_id'] = taskidparam_dict['file_name'] = file_nameelif apiname == api_get_progress or apiname == api_get_result:param_dict['app_id'] = appidparam_dict['signa'] = signaparam_dict['speaker_number'] = speaker_numberparam_dict['has_seperate'] = has_seperateparam_dict['role_type'] = role_typeparam_dict['ts'] = tsparam_dict['task_id'] = taskidreturn param_dict# 请求和结果解析,结果中各个字段的含义可参考:https://doc.xfyun.cn/rest_api/%E8%AF%AD%E9%9F%B3%E8%BD%AC%E5%86%99.htmldef gene_request(self, apiname, data, files=None, headers=None):response = requests.post(lfasr_host + apiname, data=data, files=files, headers=headers)result = json.loads(response.text)if result["ok"] == 0:print("{} success:".format(apiname) + str(result))return resultelse:print("{} error:".format(apiname) + str(result))exit(0)return result# 预处理def prepare_request(self):return self.gene_request(apiname=api_prepare,data=self.gene_params(api_prepare))# 上传def upload_request(self, taskid, upload_file_path):file_object = open(upload_file_path, 'rb')try:index = 1sig = SliceIdGenerator()while True:content = file_object.read(file_piece_sice)if not content or len(content) == 0:breakfiles = {"filename": self.gene_params(api_upload).get("slice_id"),"content": content}response = self.gene_request(api_upload,data=self.gene_params(api_upload, taskid=taskid,slice_id=sig.getNextSliceId()),files=files)if response.get('ok') != 0:# 上传分片失败print('upload slice fail, response: ' + str(response))return Falseprint('upload slice ' + str(index) + ' success')index += 1finally:'file index:' + str(file_object.tell())file_object.close()return True# 合并def merge_request(self, taskid):return self.gene_request(api_merge, data=self.gene_params(api_merge, taskid=taskid))# 获取进度def get_progress_request(self, taskid):return self.gene_request(api_get_progress, data=self.gene_params(api_get_progress, taskid=taskid))# 获取结果def get_result_request(self, taskid):return self.gene_request(api_get_result, data=self.gene_params(api_get_result, taskid=taskid))def all_api_request(self):# 1. 预处理pre_result = self.prepare_request()taskid = pre_result["data"]# 2 . 分片上传self.upload_request(taskid=taskid, upload_file_path=self.upload_file_path)# 3 . 文件合并self.merge_request(taskid=taskid)# 4 . 获取任务进度while True:# 每隔20秒获取一次任务进度progress = self.get_progress_request(taskid)progress_dic = progressif progress_dic['err_no'] != 0 and progress_dic['err_no'] != 26605:print('task error: ' + progress_dic['failed'])returnelse:data = progress_dic['data']task_status = json.loads(data)if task_status['status'] == 9:print('task ' + taskid + ' finished')breakprint('The task ' + taskid + ' is in processing, task status: ' + str(data))# 每次获取进度间隔20Stime.sleep(20)# 5 . 获取结果res = self.get_result_request(taskid=taskid)# 保存到txtdata = res['data']data = eval(data)return data# 注意:如果出现requests模块报错:"NoneType" object has no attribute 'read', 请尝试将requests模块更新到2.20.0或以上版本(本demo测试版本为2.20.0)
# 输入讯飞开放平台的appid,secret_key和待转写的文件路径
if __name__ == '__main__':# 解析单条语音并保存到xlsapi = RequestApi(appid="", secret_key="",upload_file_path=r"data/record/20220715014532.mp3")xf_result = api.all_api_request()print(xf_result)

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

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

相关文章

“讯飞星火”大模型计划10月底赶超ChatGPT

文章目录 前言你使用过这种对话式AI吗?有什么看法或感受?“讯飞星火大模型将超越chatgpt?”这类型的人工智能对现在的社会有什么意义?这类型的人工智能,未来前景如何?申请体验写在最后 ✍创作者&#xff1a…

讯飞星火认知大模型内测【附申请链接与方式】

🥑 Welcome to Aedream同学 s blog! 🥑 一直发不出去,说是广告宣传,真离谱😭 直接把介绍内容全删了 原定于5月6日正式对外发布科大讯飞“星火”认知大模型 提前内测了!! 又一国内类chatgpt产品…

科大版中国版ChatGPT来啦!抢先体验

随着文心一言、通义千问等国内顶尖级ChatGPT大模型相继问世,具有语言理解和生成能力的人工智能正在引领行业创新发展。作为人工智能公司中的佼佼者,科大讯飞也开始加入到这场竞争中来。 4月20日,科大讯飞宣布即将于5月6日正式发布其最新的“…

科大讯飞的类ChatGPT今日发布开始大规模注册体验,手慢则无!

国外的ChatGPT要科学上网, 很多人无奈只能付费买个套壳, 盼星星盼月亮, 国产ChatGPT出来了, 百度的文心一言, 阿里的通义千问, 风风光光地开了发布会, 说是可以注册体验, 一访问官方…

ChatGPT与讯飞星火实测对比

文章目录 一、推理测试测试提示词1:假设树上有10只鸟,开枪打死1只,那么树上还有几只鸟?- 测试提示词2:一艘船10天可以渡过太平洋,请计算10艘船多少天可以渡过太平洋。测试提示词3:我爸妈结婚的时候为什么不…

科大讯飞星火认知大模型来了,和ChatGPT比怎么样

科技领域的巨头科大讯飞近日在安徽省合肥市召开了一场盛大的发布会,正式发布了其最新的讯飞星火认知大模型,引起了广泛的关注和热议。据科大讯飞董事长刘庆峰和研究院院长刘聪介绍,目前该大模型已经在文本生成、知识问答、数学能力等三大能力…

科大讯飞AI大模型实测——使用讯飞“星火”设计团队组织架构和工作流程-是骡子是马拉出来溜溜~对比ChatGPT实测体验来啦

讯飞星火是什么 讯飞星火是科大讯飞研发的认知智能大模型,可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。5月6日下午,科大讯飞召开的“讯飞星火认知大模型”成果发布会上,科大讯飞董事长刘庆峰表示&am…

大比拼:讯飞星火大模型将超越ChatGPT?

5月6日,讯飞星火认知大模型成果发布会于合肥举办。会上,备受业界期待的“星火”认知大模型正式发布,讯飞AI学习机、讯飞听见、讯飞智能办公本、讯飞智慧驾舱、讯飞数字员工,四大行业中的五大成果同步演示,发布会全程进…

【ChatGPT】又一款类ChatGPT工具,讯飞星火认知,不用魔法,现在申请马上就能通过

1、讯飞星火认知大模型是什么? 星火认知大模型是由科大讯飞与昨日2023年4月24日发布,类似ChatGPT,也是一款基于深度学习的人工智能模型,主要功能是生成自然语言的对话。 围绕“知识问答、代码编程、数理推算、创意联想、语言翻译…

chatGPT VS 科大讯飞星火大模型 使用初体验,到底谁更胜一筹?

下午这会有时间,正好之前申请了讯飞星火大模型的体验,这里就想着简单使用体验对比一下chatGPT和星火大模型的差异,废话不多说这里直接上图: 【诺特兰德叶黄素与纯天然蔬菜中的叶黄素有什么区别】 【今年六月份我就要参加高考了&am…

“1024 直接对标 ChatGPT!”科大讯飞星火大模型立 Flag、一手实测来了

作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 短短半年之内,在大模型赛道上,国内外 AI 头部玩家陆续带着自己的 AIGC 产品迅速就位并“开跑”。现如今,谁能打造出中国版 ChatGPT,已经不再是一个问题。…

体验了下科大讯飞版ChatGPT,厉害了!

前几天科大讯飞的星火认知大模型发布了,我刚好有朋友在科大讯飞工作,于是就第一时间体验了一波。 一番体验下来确实比我预想的效果要好,没想到国产模型的效果还不错,我试了很多方面,比如通用常识功能、写作功能、学习…

科大讯飞刘聪:由ChatGPT浪潮引发的深入思考与落地展望

近期,以“生成式人工智能”(Generative AI)为核心技术的聊天机器人ChatGPT火爆全球。百度、阿里巴巴、科大讯飞、360等国内企业纷纷抛出ChatGPT相关进展,打造中国版的ChatGPT。 科大讯飞此前在投资者互动平台表示,Cha…

科大讯飞版ChatGPT,厉害了!

前几天科大讯飞的星火认知大模型发布了,我刚好有朋友在科大讯飞工作,于是就第一时间体验了一波。 一番体验下来确实比我预想的效果要好,没想到国产模型的效果还不错,我试了很多方面,比如通用常识功能、写作功能、学习能…

重磅!讯飞版ChatGPT来了!

Datawhale发布 大模型:讯飞星火,发布:科大讯飞 倒计时1天,讯飞星火认知大模型来了! 相约合肥滨湖国际会展中心,更有用户现场开放体验! 注册体验 海报扫码直接申请体验: 一起看发布会…

【周末闲谈】超越ChatGPT?科大讯飞星火认知大模型

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言星火名字的由来科大讯飞星火落地应用演示赶超ChatGPT的底气在哪里?“硬…

讯飞版ChatGPT突然开始内测!我们连夜一手实测

明敏 萧箫 发自 凹非寺量子位 | 公众号 QbitAI 科大讯飞版ChatGPT产品,提前交卷了! 就在昨夜,讯飞骤然向开发者提供了内测通道,取名为讯飞星火认知大模型对外开启内测。 还有个神奇的英文名字Spark Desk,据说有“火花桌…

科大讯飞被曝加紧开发中国版ChatGPT,具体发布时间已确定

杨净 萧箫 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT火热,国内玩家接连爆出加紧开发中国版ChatGPT的消息。 现在又最新获悉:科大讯飞也加入此列中。 并且发布就会是直接落地场景的产品,具体时间也已经确定:5月6日。 这是ChatGPT…

ChatGPT:深度拆解(24H限时下载)

近期由 OpenAI 团队发布的聊天机器人软件 ChatGPT,凭借类人的语言理 解和表达能力,引发 AI 产业范式革命。 OpenAI 是一家世界领先的非营利性人工智能研究公司。 OpenAI 于 2015 年在旧金山成立, 是一家非营利的人工智能研究公司,…

ChatGPT 和 Excel 在一起了!

转自:机器之心 Excel 是最常见的数据统计工具,用于归纳和查询数据信息。在其之上,通常我们查询信息需要找到相关的单元格,获取其中的数据,这是合乎计算机操作逻辑的方法。 但对于很多人来说,排序、乘除、平…