# coding=utf-8 import sys import json import base64 import time #判断python版本 初始化库 IS_PY3 = sys.version_info.major == 3 if IS_PY3: from urllib.request import urlopen from urllib.request import Request from urllib.error import URLError from urllib.parse import urlencode timer = time.perf_counter else: from urllib2 import urlopen from urllib2 import Request from urllib2 import URLError from urllib import urlencode if sys.platform == "win32": timer = time.clock else: # On most other platforms the best timer is time.time() timer = time.time #百度设备API信息 API_KEY = 'kVcnfD9iW2XVZSMaLMrtLYIz' SECRET_KEY = 'O9o1O213UgG5LFn0bDGNtoRN3VWl2du6' # 需要识别的文件 AUDIO_FILE = './pcm/16k.pcm' # 只支持 pcm/wav/amr # 文件格式 FORMAT = AUDIO_FILE[-3:] # 文件后缀只支持 pcm/wav/amr #用户唯一标识,用来区分用户,计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内。 CUID = '123456PYTHON' # 采样率 RATE = 16000 # 固定值 # 免费版 DEV_PID = 1536 # 1537 表示识别普通话,使用输入法模型。1536表示识别普通话,使用搜索模型。根据文档填写PID,选择语言及识别模型 ASR_URL = 'http://vop.baidu.com/server_api' SCOPE = 'audio_voice_assistant_get' # 有此scope表示有asr能力,没有请在网页里勾选,非常旧的应用可能没有 # 收费极速版 打开注释的话请填写自己申请的appkey appSecret ,并在网页中开通极速版 # DEV_PID = 80001 # ASR_URL = 'https://vop.baidu.com/pro_api' # SCOPE = 'brain_enhanced_asr' # 有此scope表示有收费极速版能力,没有请在网页里开通极速版 # 忽略scope检查,非常旧的应用可能没有 # SCOPE = False class DemoError(Exception): pass """ TOKEN start """ #请求URL TOKEN_URL = 'http://openapi.baidu.com/oauth/2.0/token' def fetch_token(): params = {'grant_type': 'client_credentials', 'client_id': API_KEY, 'client_secret': SECRET_KEY} post_data = urlencode(params) if (IS_PY3): post_data = post_data.encode( 'utf-8') req = Request(TOKEN_URL, post_data) try: f = urlopen(req) result_str = f.read() except URLError as err: print('token http response http code : ' + str(err.code)) result_str = err.read() if (IS_PY3): result_str = result_str.decode() print(result_str) result = json.loads(result_str) print(result) if ('access_token' in result.keys() and 'scope' in result.keys()): print(SCOPE) if SCOPE and (not SCOPE in result['scope'].split(' ')): # SCOPE = False 忽略检查 raise DemoError('scope is not correct') print('SUCCESS WITH TOKEN: %s EXPIRES IN SECONDS: %s' % (result['access_token'], result['expires_in'])) return result['access_token'] else: raise DemoError('MAYBE API_KEY or SECRET_KEY not correct: access_token or scope not found in token response') """ TOKEN end """ if __name__ == '__main__': ##f获取令牌开始 具体见百度语音合成tty https://blog.csdn.net/qq_25205045/article/details/90454082 token = fetch_token() speech_data = [] #打开识别的文件到定义的语音文件数据中 with open(AUDIO_FILE, 'rb') as speech_file: speech_data = speech_file.read()#读取打开文件数据长度并对其进行判断处理 length = len(speech_data) if length == 0: raise DemoError('file %s length read 0 bytes' % AUDIO_FILE) #对数据进行转码 speech = base64.b64encode(speech_data) if (IS_PY3): speech = str(speech, 'utf-8') params = {'dev_pid': DEV_PID, 'format': FORMAT, 'rate': RATE, 'token': token, 'cuid': CUID, 'channel': 1, 'speech': speech, 'len': length } post_data = json.dumps(params, sort_keys=False) # print post_data req = Request(ASR_URL, post_data.encode('utf-8')) req.add_header('Content-Type', 'application/json') 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() if (IS_PY3): result_str = str(result_str, 'utf-8') print(result_str) with open("result.txt","w") as of: of.write(result_str)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138百度语音识别
发布时间:2024-11-25 14:35
使用语音识别软件纠正发音 #生活技巧# #学习技巧# #英语口语训练#
百度语音识别
最新推荐文章于 2024-09-27 14:32:03 发布
zyf方 于 2019-06-01 10:08:01 发布
网址:百度语音识别 https://www.yuejiaxmz.com/news/view/263537
下一篇:语音识别语言模型介绍
相关内容
百度语音识别 pythonpython 语音识别(百度api)
Python实现语音识别:百度baidu
Android百度语音识别/语音助手
百度语音识别功能以及优势
使用百度ai进行文字识别、语音合成
语音识别与语音合成
百度语音助手下载
百度语音助手 v2.41安卓版
语音识别方案