python调用接口获取数据失败_python调用识别API返回参数错误

在尝试使用Python调用百度语音识别API获取数据时遇到错误,返回err_no为3300。已确认access_token获取成功,但将读取的wav文件数据base64编码后作为参数发送可能存在问题。文章探讨了这个问题并寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests

import json

import base64

import wave

import numpy as np

if __name__ == "__main__":

#Step1: get the Access Token

auth_url = "https://openapi.baidu.com/oauth/2.0/token"

grant_type = "client_credentials"

apiKey = "************"

secretKey = "*******************"

data = {"grant_type":grant_type, "client_id":apiKey, "client_secret": secretKey}

result = requests.post(url = auth_url, data = data)

ret = json.loads(result.text)

#Step2:

asr_url = "http://vop.baidu.com/server_api"

formattype = "wav"

cuid = "baidu_workshop"

token = ret["access_token"]

filename = "test.wav"

f = wave.open(filename, "rb")

params = f.getparams()

nchannels, sampwidth, framerate, nframes = params[:4]

str_data = f.readframes(nframes)

f.close()

wave_data = np.fromstring(str_data, dtype = np.short)

wave_data = wave_data

speech = base64.b64encode(wave_data)

asr_data = {"format":formattype, "rate":framerate, "channel":nchannels, "cuid":cuid, "token":token, "speech":speech, "len":nframes}

result = requests.post(url = asr_url, data = data)

ret = json.loads(result.text)

返回err_no : 3300

access_token返回是OK的,python读取wav数据后是数组,直接做base64的编码后作为speech参数上传,这个是不是会有问题呢?base64编码后,数据变成以下的格式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值