- 1. 创建应用,获取Access Token
- 2. 创建识别请求,发送音频文件,并获得返回结果
- 3. 其他
- 应用介绍中的短文本生成就是语音合成,我还怀疑好久,傻逼了。
- 获取Access Token代码:
#获取Access Token 进入许可
base_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"
APIKey = "hdFfKTDfSZPp8Z0WLjBCaT7F"
SecretKey = "nKZCWSuGI4jR96C4CWlGDPKCimpqfA3G"
HOST = base_url % (APIKey, SecretKey)
response = requests.get(HOST)
if response:
print(response.json())
还有一些其他的请求方法,见参考文章1
2. 创建识别请求,发送音频文件,并获得返回结果#json方式上传音频并识别
def speech2text(speech_data, token, dev_pid=1537):
FORMAT = 'wav'
RATE = '16000'
CHANNEL = 1
CUID = '98-FA-9B-1F-2D-CE'
SPEECH = base64.b64encode(speech_data).decode('utf-8')
data = {
'format': FORMAT,
'rate': RATE,
'channel': CHANNEL,
'cuid': CUID,
'len': len(speech_data), #音频文件数据
'speech': SPEECH,
'token': token,
'dev_pid': dev_pid
}
url = 'https://vop.baidu.com/server_api'
headers = {'Content-Type': 'application/json'}
r = requests.post(url, json=data, headers=headers)
Result = r.json() #result内置json()解码器
if 'result' in Result: #字典类型
return Result['result'][0]
else:
return Result
有关request.get(),request.post()方法的使用,见参考文章2,参考文章3
3. 其他在百度官方给的代码Github中,使用resquest.Resquest,urlopen()来实现信息传递.
TOKEN_URL = 'http://aip.baidubce.com/oauth/2.0/token'
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)
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() #byte
Resquest的使用见参考文章4
参考文章1:Python爬虫—requests库get和post方法使用
参考文章2:requests中get和post传参
参考文章3:requests.post() 方法的使用
参考文章4:Python爬虫入门:urllib.request.Request详解



