最近在做一个语音识别的项目,故分享一下相关内容
Python在语音识别方面功能很强大,程序语言简单高效,下面编程实现一下如何实现语音识别。本文分享如何调用百度AI开放平台实现语音识别技术。
要调用百度AI开放平台的API,首先需要一个百度账号。
登录https://ai.baidu.com/,注册用户,然后创建应用。
创建应用完成后,进入管理页面,可以看到应用对应的 “AppID”、“API Key”与“Secret Key”,这些信息在调用语音识别需要提供。
创建了应用,我们便可以调用接口实现语音识别了。相关的文档在这个网址:
https://ai.baidu.com/ai-doc
文档中对于使用不同编程语言的调用方法做了详细说明。
使用Python调用该接口之前,需要安装一个外部库,
代码语言:javascript复制pip install baidu-aip -i https://pypi.tuna.tsinghua.edu.cn/simple
接下来进行进行客户端的创建,在Python编辑器中输入以下语句:
代码语言:javascript复制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)
其中,“AppID”、“API Key”与“Secret Key”都可以从我们刚刚创建的应用中得到。这几行代码便实现了一个可以与百度AI开放平台交互的客户端。
接下来进行文件的读取,这部分使用Python的IO操作:
代码语言:javascript复制# 读取文件
def get_file_content(filePath):
with open(filePath, 'rb') as audio:
return audio.read()
接下来,便是惊心动魄的语音识别过程了:
代码语言:javascript复制# 识别本地文件
res= client.asr(get_file_content('test.wav'), 'wav', 16000, {'dev_pid': 1536, })
print(res['result'][0])
在这里,我们提前录制了一个语音文件“test.wav”并放在当前Python文件的同一目录下。
代码语言:javascript复制client.asr(get_file_content('test.wav'), 'wav', 16000, {'dev_pid': 1536, })
这一行代码实现了具体的语音识别过程,其中,get_file_content('test.wav')表示“test.wav”中的内容,'wav'表示文件类型,16000表示采样率,{'dev_pid': 1536, }表示识别类型为普通话。下面的print(res['result'][0])可以实现识别结果的输出。
所有的代码展示如下:
代码语言:javascript复制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 audio:
return audio.read()
# 识别本地文件
res = client.asr(get_file_content('test.wav'), 'wav', 16000, {'dev_pid': 1536, })
print(res['result'][0])
除去注释一共十行,可以说非常方便耐用了。但是这个API也有一些缺点,比如待识别的录音需要上传完整的录音文件,并且录音文件时长不超过60s;此外,对单个应用的每秒查询率也有一定限制。感兴趣的朋友可以尝试一下。