本文采用百度云语音识别API接口,实现低于60s音频的语音识别,并将其写入文档txt
一、百度语音识别平台搭建(树莓派操作系统)
1、申请属于自己的百度AI开发者账号
APP_ID 、API_KEY 、SECRET_KEY
2、下载并安装SDK
采用python开发,下载python-SDK
二、关于音频转换的知识(官网介绍:语音技术 (baidu.com))
1、音频格式与编码要求:
- 支持音频格式:pcm、wav、amr、m4a
- 音频编码要求:采样率 16000、8000(仅支持普通话模型),16 bit 位深,单声道
语音技术 (baidu.com) <--有关知识参考
2、格式转换具体实操
在树莓派系统终端进行操作:(手机录音格式.m4a)
ffmpeg -y -i aidemo.m4a -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm
// -acodec pcm_s16le pcm_s16le 16bits 编码器
// -f s16le 保存为16bits pcm格式
// -ac 1 单声道
// -ar 16000 16000采样率
三、测试
结果展示图:
代码:
from aip import AipSpeech
import os
#申请百度语音识别 自行填写
APP_ID = ''
API_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()
path='/home/pi/test' #音频所在位置信息(根据实际修改)
test1 = client.asr(get_file_content(path+'/25.pcm'), 'pcm', 16000, {'dev_pid': 1536, })
print(test1)
#生成文档将识别文字写入
if test1['err_msg']=='success.':
s=str(test1['result'])[2:-2] #字符化并输出文字内容
with open('test.txt','w') as file0:
print('%s' % s,file=file0)
else:
print ("错误")