Python调用科大讯飞语音听写的SDK包

article/2025/8/20 17:37:40

一、如何下载科大讯飞语音听写的SDK包

1.1、注册下载语音听写SDK包

**第一步:**登录讯飞开放平台,找到产品服务——“语音听写”,点击“立即开通”
这里写图片描述
**第二步:**创建新应用
这里写图片描述
**第三步:**创建应用,填写信息,应用平台选择windows
这里写图片描述
**第四步:**完成创建后,点击右上角控制台旁边你的登录名,点击我的应用,进入后就可以看到你注册的应用
这里写图片描述
**第五步:**注意你的APPID号,这个后来有用处,请注意,然后点击SDK下载
这里写图片描述
**第六步:**选择你的AL能力,勾选语音听写后,点击SDK下载
这里写图片描述
**第七步:**这时候你会从网上得到一个压缩包,为方便查看,你新建一个和这个SDK压缩包名字一样的文件夹(这个文件名后面有用处),再将包内的所有文件拖入新建的文件夹中,得到如下文件夹,到这里,语音听写的SDK包就下载完成了。
这里写图片描述

二、调用科大讯飞语音听写的SDK包

新建keda_API.py文件,将如下代码写入,并将你的APPID号、文件夹名,在21行、23行位置进行修改
还有特别说明在代码后,不看你会出错的,一定要看
还有特别说明在代码后,不看你会出错的,一定要看

# -*- coding:utf-8 -*-
# -*- author:zzZ_CMing  CSDN address:https://blog.csdn.net/zzZ_CMing
# -*- 2018/08/11; 10:19
# -*- python3.5
"""
参考代码地址:https://blog.csdn.net/fang_yang_wa/article/details/78791137
"""
from ctypes import *
import time
import win32com.clientFRAME_LEN = 640  # Byte
MSP_SUCCESS = 0
# 返回结果状态
MSP_AUDIO_SAMPLE_FIRST = 1
MSP_AUDIO_SAMPLE_CONTINUE = 2
MSP_AUDIO_SAMPLE_LAST = 4
MSP_REC_STATUS_COMPLETE = 5# 调用动态链接库
dll = cdll.LoadLibrary("../SDK文件名/bin/msc_x64.dll")
# 登录参数,apppid一定要和你的下载SDK对应
login_params = b"appid = 你的APPID号, work_dir = SDK文件名."class Msp:def __init__(self):passdef login(self):ret = dll.MSPLogin(None, None, login_params)# print('MSPLogin =>', ret)def logout(self):ret = dll.MSPLogout()# print('MSPLogout =>', ret)def isr(self, audiofile, session_begin_params):ret = c_int()sessionID = c_voidp()dll.QISRSessionBegin.restype = c_char_psessionID = dll.QISRSessionBegin(None, session_begin_params, byref(ret))#print('QISRSessionBegin => sessionID:', sessionID, '\nret:', ret.value)# 每秒【1000ms】  16000 次 * 16 bit 【20B】 ,每毫秒:1.6 * 16bit 【1.6*2B】 = 32Byte# 1帧音频20ms【640B】 每次写入 10帧=200ms 【6400B】# piceLne = FRAME_LEN * 20piceLne = 1638 * 2epStatus = c_int(0)recogStatus = c_int(0)wavFile = open(audiofile, 'rb')wavData = wavFile.read(piceLne)ret = dll.QISRAudioWrite(sessionID, wavData, len(wavData), MSP_AUDIO_SAMPLE_FIRST, byref(epStatus),byref(recogStatus))#print('len(wavData):', len(wavData), '\nQISRAudioWrite ret:', ret,'\nepStatus:', epStatus.value, '\nrecogStatus:', recogStatus.value)time.sleep(0.1)while wavData:wavData = wavFile.read(piceLne)if len(wavData) == 0:breakret = dll.QISRAudioWrite(sessionID, wavData, len(wavData), MSP_AUDIO_SAMPLE_CONTINUE, byref(epStatus),byref(recogStatus))# print('len(wavData):', len(wavData), 'QISRAudioWrite ret:', ret, 'epStatus:', epStatus.value, 'recogStatus:', recogStatus.value)time.sleep(0.1)wavFile.close()ret = dll.QISRAudioWrite(sessionID, None, 0, MSP_AUDIO_SAMPLE_LAST, byref(epStatus), byref(recogStatus))# print('len(wavData):', len(wavData), 'QISRAudioWrite ret:', ret, 'epStatus:', epStatus.value, 'recogStatus:', recogStatus.value)#print("\n所有待识别音频已全部发送完毕\n获取的识别结果:")# -- 获取音频laststr = ''counter = 0while recogStatus.value != MSP_REC_STATUS_COMPLETE:ret = c_int()dll.QISRGetResult.restype = c_char_pretstr = dll.QISRGetResult(sessionID, byref(recogStatus), 0, byref(ret))if retstr is not None:laststr += retstr.decode()#print('333',laststr)# print('ret:', ret.value, 'recogStatus:', recogStatus.value)counter += 1time.sleep(0.2)counter += 1"""if counter == 50:laststr += '讯飞语音识别失败'break"""#print(laststr)# 不知道为什么注解了?#ret = dll.QISRSessionEnd(sessionID, '\0')# print('end ret: ', ret)return laststrdef XF_text(filepath, audio_rate):msp = Msp()#print("登录科大讯飞")msp.login()#print("科大讯飞登录成功")session_begin_params = b"sub = iat, ptt = 0, result_encoding = utf8, result_type = plain, domain = iat"if 16000 == audio_rate:session_begin_params = b"sub = iat, domain = iat, language = zh_cn, accent = mandarin, sample_rate = 16000, result_type = plain, result_encoding = utf8"text = msp.isr(filepath, session_begin_params)msp.logout()print(text)# 文本转语音speaker = win32com.client.Dispatch("SAPI.SpVoice")speaker.Speak(text)return text# 如果代码作为外置包被其他程序调用,请注释掉下两行;单独使用时保留
path = "你音频存储位置"
XF_text(path,16000)

特别说明:
1、我对这个代码做了一定的修改(源码可以在科大讯飞官网中找到:源码在这里)。这段代码单独使用时——可以将你的音频翻译成文本输出;而被其他主程序调用使用的时候,要先注释掉本篇代码的最后两行,还要在你的主程序代码中导入这个.py文件,怎么导入!!!—— 就像你导入其他外置包一样——import keda_API

2、调用这个.py文件也和其他外置包一样,它的接口只有def XF_text(filepath, audio_rate):函数,这个函数包含两个参数:参数filepath是一个文件夹地址,这个地址下保存你录制好的音频(请存放一个音频,若有多个音频,你可以做个循环挨个输入文件名),audio_rate是音频率,一般都是16000;

3、如果你显示缺少ffmpeg文件,我也有——ffmpeg文件下载地址, 密码:xl2z,下载后放到你程序主目录下;

4、如果你导入的地址都已经正确,音频也能放出声,代码也能跑通,但就是语音听写得不到输出文本——可能是你的音频不合要求——右击你的音频文件,点开属性,查看详细信息,找到音频比特率——一般超过300kbps的音频,科大的音频听写就翻译不出来给不出结果,怎么办?——格式工厂啊,转为wav文件,配置降到最低——采用率:11025,声道数:1,用转化后的音频再试一试——还不行?那就关注我的下一篇博客——Python调用麦克风录音生成wav文件,我帮你写一个录音Python脚本。
这里写图片描述


http://chatgpt.dhexx.cn/article/7GY18HMG.shtml

相关文章

C# 实现语音听写

本文系原创,禁止转载。 分享如何使用c#对接科大讯飞语音听写服务,简单高效地实现语音听写。 实现语音听写主要分为录音和语音识别两部分;录音是指获取设备声卡端口的音频数据并将之保存为音频文件,语音识别就是将刚才所述的音频文…

讯飞语音听写

第一步:将下载好的Sdk解压,将压缩文件中的libs下的jar文件放到项目中的libs包下,将压缩文件中的lisb下除jar文件放到main下的jniLibs包中 第二步:Sdk初始化,建议选择在自定义的application中初始化。 //初始化讯飞语音SpeechUtil…

讯飞语音——带你简单实现语音听写

语音听写 de 简单实现 一、前言 如果你没有在讯飞语音平台上创建应用,请先参考讯飞语音的详细配置使用 二、功能描述 语音听写和语音合成都是较为基础也是最常使用的两个基本功能。 语音合成是将文本转化为语音说出来,就是读文章。 语音听写是什么呢&a…

使用讯飞实现语音听写与语音合成功能

一、准备工作 1、首先你需要去科大讯飞的官网去注册一个账号,怎么注册我就不说了,然后去控制台,创建新应用。 2、下载对应的sdk,点击sdk下载,记住这里的APPID码,sdk初始化要用。 3、下载语音听写和在线语…

科大讯飞语音听写在vue2中的使用

安装 worker-loader版本是2.0.0 vue.config.js的配置如下chainWebpack:(config)=>{config.output.globalObject("this"); }, configureWebpack: (config) => {config.module.rules.push({test: /\.worker.js$/,use: {loader: "worker-loader",option…

vue+科大讯飞语音听写功能(解决针对vue new Worker报错问题)

参考1:vue科大讯飞语音听写功能(解决针对vue new Worker报错问题)_Other world的博客-CSDN博客 参考2:vue中使用web worker - Gerryli - 博客园 参考3:将PC浏览器、ZOOM等软件正在播放的音频实时转成文字!讯飞语音输入法的妙用 -…

Unity2021接入讯飞语音听写(Android)

使用的引擎工具: Unity2021.3.19 android-studio-2021.1.21 第一步: 新建一个Android项目(工程名字随便啦) 然后新建一个library (同上,库名自己命名吧) Android环境目前就算是初步建立好了。 …

vue2中接入讯飞语音听写

首先先登录https://www.xfyun.cn/,在控制台中创建自己的app,并且拿到APPID。 下载crypto-js 与线程worker npm install crypto-js npm install worker-loader 官网中有示例文件,稍微改造一下,封装成组件就能使用了。 transco…

Java 接入讯飞语音听写Speech to Text(STT)功能

标题 讯飞认证配置封装监听器客户端工具 Speech2TextClient.java 对外开放接口对外开放接口实现结果参考 根据官方提供的 WebIATWS 工具扩展修改,接入了讯飞的语音听写(STT)服务 讯飞认证配置 public class XFAuthorityConfig {public static final String hostUr…

html5语音听写流式,iOS 讯飞语音听写(流式版)

最近项目中用到了讯飞的语音识别,然后稍微看了一下,里面有几个值得注意的点,记录一下,先说语音听写(流式版),实时语音转写后期会附上 ,文末有 demo //语音听写(流式版) 语音听写流式版其实没设么好说的,因为直接有 SDK,导入项目就可以了,需要注意的点就是每个创建的 APP 和 SDK…

科大讯飞语音听写(Android)

前面就不废话了,像申请应用,获取SDK等等,我相信大家应该都会的,科大讯飞采用的是两种语音听写功能,一种带有UI,一种没有UI,本人还是比较笨的,所以就写了较为简单的不带UI的语音听写,…

语音转写和语音听写_如何在Windows 10上使用语音听写

语音转写和语音听写 Windows 10’s Fall Creators Update makes voice dictation much easier to use. Now, you can immediately begin dictation by pressing a key WindowsH on your keyboard. You don’t have to dig through the Control Panel and set anything up first…

【超简单】之基于PaddleSpeech搭建个人语音听写服务

一、【超简单】之基于PaddleSpeech搭建个人语音听写服务 1.需求分析 亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛? 当您面对成吨的会议录音,着急写会议纪要而…

遥感技术及高分遥感影像在地震中的应用及高分二号获取

长期以来,地震预报监测、灾害调查、灾情信息获取主要依靠实地勘测手段,其获取的数据精度和置信度虽然较高,但存在工作量大、效率低、费用高和信息不直观等缺点。遥感技术手段可在一定程度上克服传统实地勘测手段的缺点,并具有其他…

高分一号(GF-1)-中国高分辨率对地观测系统的第一颗卫星

2013年4月26日12时13分04秒由长征二号丁运载火箭成功发射,开启了中国对地观测的新时代。卫星全色分辨率是2米,多光谱分辨率为8米。高分一号卫星的宽幅多光谱相机幅宽达到了800公里。 “高分一号”的特点是增加了高分辨率多光谱相机,该相机的性…

历年(2017-2022)国产陆地观测卫星(高分1号2号6号等)外场绝对辐射定标系数

国产卫星绝对辐射定标系数(2008——2022) 2017年 参考博文:高分一号/二号/六号定标系数_desertsTsung的博客-CSDN博客

第059篇:高分二号遥感影像预处理流程(ENVI5.3.1平台+ENVI App Store中最新的中国国产卫星支持工具)

今天被袁老的新闻刷屏,湖南衡水县水稻基地传出好消息: 袁隆平团队第三代杂交水稻测产,测得晚稻平均亩产为911.7公斤 早稻晚稻实现亩产3061斤 伟大,除了伟大,不知道还能用什么词概括袁老的不凡成就! 说到这…

envi5.3处理高分二号影像数据详细过程记录

目录 一、多光谱影像处理 1. 辐射定标 2.大气校正 1. 需要准备一些数据: 2.大气校正过程 3、正射校正 二、全色影像处理 1. 辐射定标 2. 正射校正 三、图像融合 1.几何配准 2.图像融合 高分二号处理流程 envi5.3的安装教程: ENVI5.3安装 安装完ENVI5.3后…

我国高分系列卫星遥感影像介绍

继上一篇介绍《遥感图像处理》的文章之后,本篇文章对我国的高分系列卫星遥感影像进行简单的整理。 高分系列卫星是在高分专项的支持下,也就是高分辨率对地观测系统重大专项,由国防科技工业局牵头,组织实施建设的一系列高分辨率对…

高分辨率遥感卫星影像在交通方面的应用及高分二号影像获取

高分辨率遥感影像在城市交通领域具有广泛的应用前景:如遥感交通调查、遥感影像地图与电子地图制作、道路工程地质遥感解译、交通安全与知道抗灾救灾、交通事故现场快速勘察、交通需求预测、车辆与车牌视频识别等等。高分辨率影像比如高分二号卫星、高分一号卫星&…