生活服务
百度AI 开放平台 >>> 智能语音识别
2024-12-25 03:14  浏览:130

最近在做课程设计,想用一下语音识别,于是了解到百度AI 开放平台提供这一功能,且语音识别极速版 API一共可以调用5w次,对我来说完全够用了。最重要的是,可以直接用 的 请求进行api 调用,实在是太方便了,那就选择百度吧

在正式开始之前,大家需要先注册一个百度开发者账号。

下面我会介绍两种进行语音识别的方法,分别是调用百度apipython SDK

Ⅰ 百度api

首先直接看语音识别极速版 API文档说明。

我们可提取以下关键信息点

  1. 音频文件需要在60s 内
  2. 音频格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)、m4a(压缩格式
  3. 采样率 16000 固定值。 编码16bit 位深的单声道
  4. api 调用流程鉴权认证 -> 确认请求方式 -> 填写参数
(1)鉴权认证
① 获取Access Token

Access Token 是用户身份验证和授权的凭证,语音识别采用的是Client Credentials 授权方式,即采用应用公钥Api Key)、密钥获取Access Token

使用Client Credentials 获取Access Token 需要应用在其服务端发送请求(推荐用 方法)到百度OAuth2.0授权服务的“ ” 地址上,并带上以下参数

grant_type必须参数,固定为“client_credentials”client_id必须参数,应用的 API Keyclient_secret必须参数,应用的 Secret Key

例如

响应数据包如下所示,其中 “access_token” 字段即为请求 所需的令牌, 默认情况下Access Token 有效期为一个月,开发者需要对 Access Token 的有效性进行判断,如果Access Token 过期可以重新获取。

例如
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{
“access_token”: “1.a6b7dbd428f731035f771b8d********.86400.1292922000-2346678-124328”,
“expires_in”: 86400,
“refresh_token”: “2.385d55f8615fdfd9edb7c4b********.604800.1293440400-2346678-124328”,
“scope”: “public audio_voice_assistant_get 。。。”,
“session_key”: “ANXxSNjwQDugf8615OnqeikCdlLxn",
“session_secret”: "248APxvxjCZ0VEC
aK4oZExMB”,
}

如此,我们便获得了Access Token

(2)确认请求方式
① raw

有两种请求方式json 方式和raw 方式,因为我使用的是 方式,所以 我就不展开讲解了

由于使用 方式, 采样率和文件格式需要填写在Content-Type

 
(3)填写参数

格式POST 上传本地文件 语音数据直接放在 HTTP BODY,控制参数以及相关统计信息通过 和 里参数传递

① Header 参数说明
字段名数据类型可需描述formatstring必填语音格式rateint必填采样率16k(固定值

语音数据的采样率和压缩格式在 HTTP-HEADER 里的Content-Type 表明,例

 
② url 参数说明
字段名可需描述cuid必填用户唯一标识(推荐填mac 地址,不过我填了我的英文名加数字)token必填Access Tokendev_pid选填默认80001lan选填不怎么使用

url 示例

 

最后完整的raw 请求示例

 

Ⅱ python SDK

(1)安装python SDK

如果已安装pip,执行

 

如果已安装setuptools,执行

 
(2)新建AipSpeech

百度AI 开放平台 >>> 智能语音识别

AipSpeech是语音识别的Python SDK 客户端,为使用语音识别的开发人员提供了一系列的交互方法。

 

上述APP_IDAPI_KEYSECRET_KEY 的获取在创建应用后即可获得

(3)配置AipSpeech

若大家需要配置AipSpeech 的网络请求参数(一般不需要配置),可以在构造AipSpeech 之后调用接口设置参数,目前只支持以下参数

接口说明setConnectionTimeoutInMillis建立连接的超时时间(单位:毫秒)setSocketTimeoutInMillis通过打开的连接传输数据的超时时间(单位:毫秒
(4)语音识别
 
参数类型描述是否必须speechBuffer建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写是formatString语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写。推荐pcm文件是rateint采样率,16000,固定值是cuidString用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内否dev_pidInt不填写lan参数生效,都不填写,默认1537(普通话 输入法模型,dev_pid参数见本节开头的表格否lan(已废弃)String历史兼容参数,请使用dev_pid。如果dev_pid填写,该参数会被覆盖。语种选择,输入法模型,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写否

dev_pid 参数列表

dev_pid语言模型是否有标点备注1536普通话(支持简单的英文识别)搜索模型无标点支持自定义词库1537普通话(纯中文识别)输入法模型有标点支持自定义词库1737英语无标点不支持自定义词库1637粤语有标点不支持自定义词库1837四川话有标点不支持自定义词库1936普通话远场远场模型有标点不支持

语音识别返回数据参数详情

参数类型是否一定输出描述err_noint是错误码err_msgint是错误码描述snint是语音数据唯一标识,系统内部产生,用于 debugresultint是识别结果数组,提供1-5 个候选结果,string 类型为识别的字符串, utf-8 编码

(1)音频格式

音频格式一定要正确,符合要求,包括采样率、通道数、编码等

对于音频格式转换工具,推荐sox
sox安装及常用命令
SoX — 音频处理工具里的瑞士军刀

例如将一段 格式音频转化为其要求的格式(16k 采样率、1 通道、16bit 编码

 

不过百度推荐的那个ffmpeg 应该也不错,我没有用,大家感兴趣可以尝试尝试

百度api

若出现请求错误的话,请查阅官方文档
错误码及常见原因

python SDK

    以上就是本篇文章【百度AI 开放平台 >>> 智能语音识别】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/tnews/863.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
总局收视率:《以美之名》倒数,《我的后半生》第二,第一是它
总局公布了黄金时段电视剧热度的周榜,在这份榜单中,既有老面孔,也有新作品。其中,《青山是故乡》以极高的收视率在央视一套中
哈尔滨市优化竞争生态和营商环境 营造良好市场消费环境
人民网哈尔滨4月15日电 (韩婷澎、尚城)4月15日,由哈尔滨市人民政府新闻办公室主办的“推动高质量发展 奋力谱写中国式现代化哈尔
纯白性价比新王,助你实现光追自由!电竞叛客RTX5060 Ti X2W开箱
电竞硬件领域的先锋品牌电竞叛客,今日正式发布AXRTX 5060 Ti X2W8/16GB显卡。以突破性架构设计与强悍性能表现,为全球玩家与内
青岛银行高管现场回应:信贷投放重点是什么?客户如何应对“对等关税”?
4月9日,(002948.SZ,03866.HK)举办2024年度业绩说明会。青岛银行董事长景在伦、行长吴显明、副行长陈霜、副行长刘鹏、副行长
电车指南 | 共享充电之桩主篇手机充电桩「电车指南 | 共享充电之桩主篇」
点击蓝字,关注我们 上一期我们给大家介绍了电动汽车很便捷的一种充电方式——“共享充电”,不仅电价较公共桩会便宜些,而且能
就在今晚,准备观赏!
  4月1日将迎来本年度最大的一弯蛾眉月。如果天气晴好,今天傍晚日落后至月落前,大家能看到一弯似柳叶新裁般的月亮悬挂夜空,
华为手机如何轻松连接电脑实现数据传输与管理华为手机连接电脑「华为手机如何轻松连接电脑实现数据传输与管理」
华为如何连接电脑 (How to Connect Huawei to Computer)在现代科技的推动下,手机与电脑之间的连接变得越来越重要。尤其是对于华
春风伴跑燃激情 健康同行启新程
【来源:益阳市人民政府网_部门动态】赛道终点,工作人员向市民宣传健康知识。李胜利摄 4月20日,市卫生健康委员会借市第五届乡
“群聊门”未平,美防长“裙带门”又起
美国联邦政府大规模裁员之时,美国媒体曝出,国防部长皮特·赫格塞思的弟弟菲尔·赫格塞思担任国土安全部要职,在国防部五角大楼