首页 版块 访问AI主站 注册 发帖
泪线111
6
积分 积分商城
0
获赞
调用rest api返回的数据不全
Ta的回复 :泪线111: 我使用的服务是:语音识别 调用的接口是:rest api 参数设置情况: 开发平台和机型:windows  python语言 SDK版本号: 代码或日志截图(上传截图能帮助您更快解决问题): # -*- coding: utf-8 -*- #Api_Key申请的api_key #Secrect_Key对应的secret_key #获取token import urllib.request import urllib import json import base64 import os Api_Key='kmRHqoqox3eqRws59uqoGePerGb3xn0z' Secrect_Key='UbinySmZx6I1pFraLezcL7Rc3pOg7GiV' url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id='+Api_Key+'&client_secret='+Secrect_Key res = urllib.request.urlopen(url).read() data = json.loads(res) token = data['access_token'] #获取的token print('token获取成功:',token) #提交数据 VOICE_RATE = 8000 #WAVE_FILE = 'temp.wav' WAVE_FILE ='test.pcm' USER_ID = '7988339' #WAVE_TYPE = 'wav' WAVE_TYPE ='pcm' #其它参数可参考sdk文档 f = open(WAVE_FILE,'rb') #在这离读取的时候用二进制形式读取 speech = bytes.decode(base64.b64encode(f.read())) print (type(speech)) size = os.path.getsize(WAVE_FILE) update = json.dumps({'format':WAVE_TYPE,'rate':VOICE_RATE,'channel':1,'cuid':USER_ID,'token':token,'speech':speech,'len':size}) r = urllib.request.urlopen(url,str.encode(update)) #处理json t = r.read() print(r.getcode())#输出200表示请求成功完成 #这里没有收到回复 result = json.loads(t) print(type(result)) print(result) 复现步骤、现象及其他描述: 结果只返回  {     "access_token": "24.7d69b22d69ed5b7f23ae0280550e3b5e.2592000.1488183879.282335-7988339",     "refresh_token": "25.fee8db1184d79ad1d9f68787a2814ed9.315360000.1800951879.282335-7988339",     "scope": "public audio_voice_assistant_get wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian wangrantest_test wangrantest_test1 bnstest_test1 bnstest_test2 ApsMisTest_Test权限",     "session_key": "9mzdDFFMdxsDqbmIWiVCZQTGAUH8XejWR+fO3EzBZy771LpeZ4PxG0bQhgigY7jdVqHH+g3oYYpYOQb8VV9WvepasT1b",     "session_secret": "6a4af8e2af5ceb70084da89a7cf433d8",     "expires_in": 2592000 } 没有返回语音识别的内容 回复泪线111:我估计是python不支持pcm文件的直接读取
5
调用rest api返回的数据不全
Ta的回复 :泪线111: 我使用的服务是:语音识别 调用的接口是:rest api 参数设置情况: 开发平台和机型:windows  python语言 SDK版本号: 代码或日志截图(上传截图能帮助您更快解决问题): # -*- coding: utf-8 -*- #Api_Key申请的api_key #Secrect_Key对应的secret_key #获取token import urllib.request import urllib import json import base64 import os Api_Key='kmRHqoqox3eqRws59uqoGePerGb3xn0z' Secrect_Key='UbinySmZx6I1pFraLezcL7Rc3pOg7GiV' url = 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id='+Api_Key+'&client_secret='+Secrect_Key res = urllib.request.urlopen(url).read() data = json.loads(res) token = data['access_token'] #获取的token print('token获取成功:',token) #提交数据 VOICE_RATE = 8000 #WAVE_FILE = 'temp.wav' WAVE_FILE ='test.pcm' USER_ID = '7988339' #WAVE_TYPE = 'wav' WAVE_TYPE ='pcm' #其它参数可参考sdk文档 f = open(WAVE_FILE,'rb') #在这离读取的时候用二进制形式读取 speech = bytes.decode(base64.b64encode(f.read())) print (type(speech)) size = os.path.getsize(WAVE_FILE) update = json.dumps({'format':WAVE_TYPE,'rate':VOICE_RATE,'channel':1,'cuid':USER_ID,'token':token,'speech':speech,'len':size}) r = urllib.request.urlopen(url,str.encode(update)) #处理json t = r.read() print(r.getcode())#输出200表示请求成功完成 #这里没有收到回复 result = json.loads(t) print(type(result)) print(result) 复现步骤、现象及其他描述: 结果只返回  {     "access_token": "24.7d69b22d69ed5b7f23ae0280550e3b5e.2592000.1488183879.282335-7988339",     "refresh_token": "25.fee8db1184d79ad1d9f68787a2814ed9.315360000.1800951879.282335-7988339",     "scope": "public audio_voice_assistant_get wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian wangrantest_test wangrantest_test1 bnstest_test1 bnstest_test2 ApsMisTest_Test权限",     "session_key": "9mzdDFFMdxsDqbmIWiVCZQTGAUH8XejWR+fO3EzBZy771LpeZ4PxG0bQhgigY7jdVqHH+g3oYYpYOQb8VV9WvepasT1b",     "session_secret": "6a4af8e2af5ceb70084da89a7cf433d8",     "expires_in": 2592000 } 没有返回语音识别的内容 回复泪线111:我估计时python不支持pcm文件的直接读取
5
调用rest api返回的数据不全
Ta的回复 :nickms: 回复泪线111: 您好,识别的地址是http://vop.baidu.com/server_api,代码中的url是获取token的url。 过程应该是先调用https://openapi.baidu.com/oauth/2.0/token获取token, 再调用调用http://vop.baidu.com/server_api获取识别的结果 回复nickms:谢谢,已经成功了,是我编写的过程没有彻底搞清楚,麻烦了
5
原帖已删除
Ta的回复 :neo788: 回复neo788: Traceback (most recent call last):   File "get_out.py", line 12, in <module>     import mp3play   File "/usr/local/lib/python3.5/dist-packages/mp3play/__init__.py", line 6, in <module>     raise Exception("mp3play can't run on your operating system.") Exception: mp3play can't run on your operating system. 回复neo788:我在windows下做的,代码报错了mp3play不能运行在ubuntu,你可以选择其他播放插件
0
原帖已删除
Ta的回复 :xujiayuxjy: 我看文档那边说要urlencode两次。我是在matlab 平台弄的,我用matlab 平台的urlencode两次会 --清---  %25E6%25B8%2585这样的编码,你这边python用来一次,是等效的么? 回复xujiayuxjy: 您好,这里的urlencode是为了将我们的数据打包成能传给百度api的数据格式 我的最原始数据是python中的dict格式,经过 date_urlencode=urllib.parse.urlencode(date) 变成了str格式,在传给百度api的时候又用了 r=urllib.request.urlopen(ServerUrl,str.encode(date_urlencode)) 其中的str.encode默认utf-8将date_urlencode编码 至于matlab中怎么写,你可以参考下我的过程,不对的话,多试几次就好了
0
原帖已删除
Ta的回复 :k1d0ne: 不懂 回复k1d0ne:你可以先看官方提供的java代码,我就是根据Java代码修改
0
切换版块
智能客服