10行内Python代码实现语音识别

2022-07-27 09:17:12 浏览数 (1)

最近在做一个语音识别的项目,故分享一下相关内容

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;此外,对单个应用的每秒查询率也有一定限制。感兴趣的朋友可以尝试一下。

0 人点赞