1.功能描述:
将60秒内的语音快速识别为文字,适用于手机语音输入、语音搜索、人机对话等语音交互场景
2.平台接入
具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
3.调用攻略(Python3)及评测
3.1首先认证授权:
在开始调用任何API之前需要先进行认证授权,具体的说明请参考:
具体Python3代码如下:
-- coding: utf-8 --
#!/usr/bin/env python import urllib import base64 import json #client_id 为官网获取的AK, client_secret 为官网获取的SK client_id =【百度云应用的AK】 client_secret =【百度云应用的SK】 #获取token def get_token(): host = 'aip.baidubce.com/oauth/2.0/t…' + client_id + '&client_secret=' + client_secret request = urllib.request.Request(host) request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib.request.urlopen(request) token_content = response.read() #print (token_content) if token_content: token_info = json.loads(token_content) token_key = token_info['access_token'] return token_key
3.2百度语音识别分析接口调用:
详细说明请参考:ai.baidu.com/docs#/ASR-A…
说明的比较清晰,这里就不重复了。
大家需要注意的是:
格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)、m4a(AAC编码);固定16k 采样率;
系统支持语言种类 普通话
\
Python3调用代码如下:
只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式
输入参数需要识别的文件
def asr(AUDIO_FILE): # 文件格式 FORMAT = AUDIO_FILE[-3:]; # 文件后缀只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式 print(FORMAT) CUID = '123456PYTHON'; # 采样率 RATE = 16000; # 固定值 # 普通版 DEV_PID = 1537; # 1537
表示识别普通话,使用输入法模型。1536表示识别普通话,使用搜索模型。根据文档填写PID,选择语言及识别模型
ASR_URL = 'vop.baidu.com/server_api' \ token = get_token() speech_data = [] with open(AUDIO_FILE, 'rb') as speech_file: speech_data = speech_file.read() length = len(speech_data) if length == 0: print('file %s length read 0 bytes' % AUDIO_FILE) params = {'cuid': CUID, 'token': token, 'dev_pid': DEV_PID} #测试自训练平台需要打开以下信息 #params = {'cuid': CUID, 'token': token, 'dev_pid': DEV_PID, 'lm_id' : LM_ID} params_query = urlencode(params); headers = { 'Content-Type': 'audio/' + FORMAT + '; rate=' + str(RATE), 'Content-Length': length } url = ASR_URL + "?" + params_query print("url is", url); print("header is", headers) # print post_data req = Request(ASR_URL + "?" + params_query, speech_data, headers) try: begin = timer() f = urlopen(req) result_str = f.read() print("Request time cost %f" % (timer() - begin)) except URLError as err: print('asr http response http code : ' + str(err.code)) result_str = err.read() result_str = str(result_str, 'utf-8') print(result_str) with open("result.txt", "w") as of: of.write(result_str) asr('../voc/16k.wav')
4.功能评测和建议
测试下来,整体识别效果不错。百度语音识别的很准确,速度也很快,用起来非常的方便。可以应用于
语音输入
摆脱按键操作,通过语音识别直接输入文字,快速返回识别结果,可应用于游戏文字输入、社交聊天、语音指令等多个场景,提高输入效率及体验
语音搜索
搜索内容直接以语音的方式输入,响应速度更快,适用于音乐、电影、小说等内容搜索场景,让搜索内容输入更加便捷,高效
人机对话
通过极速API接口,将语音识别为文字,毫秒级响应,可用于聊天机器人、故事机等近场语音识别环境,让人机对话更加流畅自然