这几天想要用Python来体验一下语音识别技术,虽然我知道有很多开源免费的语音识别库,例如,CMU Sphinx,好像以前玩过,但只为了愉快地体验,这次选择百度AI平台来简单实践一下,后期再深入研究开源免费的语音识别库。
1 基础知识
打开百度智能云–>产品–>人工智能–>选择短语音识别–>立即使用–>创建应用。得到
创建完毕应用后,平台将会分配给开发者此应用的相关凭证,主要为AppID、API Key、Secret Key。以上三个信息是在应用实际开发的主要凭证。
说明:百度短语音识别支持将 60 秒以下的音频识别为文字。适用于语音对话、语音控制、语音输入等场景。
支持音频格式:pcm、wav、amr、m4a音频编码要求:采样率 16000、8000,16 bit 位深,单声道(音频格式查看及转换)
2 安装语音识别 Python SDK
进入百度智能云-管理中心,sdk下载:SDK下载_文字识别SDK_语音识别SDK-百度AI开放平台进入百度智能云-管理中心,sdk下载:
https://ai.baidu.com/sdk#asr
安装使用Python SDK有如下方式:
如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。
SDK装好以后即可开始愉快地编程喽!
3 编程体验
(1)新建AipSpeech
AipSpeech是语音识别的Python SDK客户端,它为我们提供了一系列语音识别的交互方法,在编程时需要import 导入 AipSpeech模块,这样就可以调用该模块中的方法啦。
from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
这里将创建应用时得到的3个字符串对应复制进去就ok了,用于标识用户,为访问做签名验证,防止别人使用你账号的权限功能,可在AI服务控制台中的应用列表中查看。
(2)语音识别
这里的语音识别的流程要理解,它是将本地语音文件整段上传到远程服务进行语音识别,举例上代码。
# 读取文件
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 识别本地文件
client.asr(get_file_content('audio.pcm'), 'pcm', 16000, {
'dev_pid': 1537,
})
(3)完整实例
from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 读取文件
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 识别本地文件
res = client.asr(get_file_content('16k.pcm'), 'pcm', 16000, {
'dev_pid': 1537, # 默认1537(普通话 输入法模型)
})
print(res.get("result")[0])
需要特别注意:语音识别对测试的音频文件是有要求的,我自己录的音搞了半天没识别出来,后来还是乖乖去官网下载了测试音频16k.pcm。https://cloud.baidu.com/doc/SPEECH/s/Vk38lxily
相关参考:
https://cloud.baidu.com/doc/SPEECH/s/Bk4o0bmt3
https://www.cnblogs.com/DragonFire/p/9208195.html