python构建聊天机器人之语音文件识别为文本

在上一篇文章中我们成功利用pyaudio和wave库函数成功实现了录音并将音频保存为wav文件,有了音频文件之后我们需要实现的是将音频文件转换为文本,因为现有的第三方机器人接口无法直接对音频文件进行直接反馈,所以我们需要将语音文件转换为文本。

在网上一番查找资料之后我发现百度AI的语音识别SDK(Software development kit,软件开发工具包)对Python比较友好并且支持提供API(Application Program Interface,提供应用与其他应用的接口)接口,同时对于业余开发的个人用户也有很多免费资源可以领取(比如15w此的短语音调用量)。

在使用百度AI语音识别接口之前需要登录百度AI语音识别界面短语音识别标准版_短语音识别-百度AI开放平台 (baidu.com),点击立即使用,接着创建一个应用(需要好好填写应用概览,否则有可能不给通过^_^),在我们成功创建应用之后我们会获得app id,app key,secret key(需要记下,后期调用API接口会用到)。

 

 

创建好百度AI语音识别应用之后就需要在我们的python界面安装百度接口库函数,名称为baidu-aip(不是baidu-api!)

安装好之后就可以从aip库中导入Aipspeech(导入之后我们此时运行可能会提示Modoulenotfounderror,chardet未被找到,这时我们去下载chardet库就好了),然后就可以设置自己的接口信息,涉及到刚才记下的app id,app key,secret key。之后配置接口数据,打开并得到音频文件(注意百度AI短语音识别只能识别单声道,采样率建议16000)。最后就可以调用SDK(asr函数)进行语音识别了(最后参数option中,参数dev_pid:1536普通话(支持简单的英文识别)、1537普通话(纯中文识别)、1737英语、1637粤语、1837四川话、1936普通话远场))。最后得到结果(识别准确率还挺高)。

源代码如下(亲测可用哦~)

#对于将音频文件识别为文本我们采用百度语音识别api链接语音识别python-sdk

from aip import AipSpeech#导入调用接口库

#设置自己的接口应用信息
app_id='******'
app_key='******'
secret_key='******'

#调用接口
baidu_api=AipSpeech(app_id,app_key,secret_key)
path='voice.wav'#录音文件存储路径

#打开文件得到wav音频文件
with open(path,'rb') as fp:
    voices=fp.read()

#调用SDK进行语音识别
get_text=baidu_api.asr(voices,'wav',16000,{'dev_pid':1537,})
result=get_text['result'][0]#将最终得到的列表结果转换未字符串结果
print(result)

后续的开发仍在进行,欢迎大家关注哦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值