栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

人机交互课设(1)-百度api调用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

人机交互课设(1)-百度api调用

文章目录
        • 1. 创建应用,获取Access Token
        • 2. 创建识别请求,发送音频文件,并获得返回结果
        • 3. 其他

1. 创建应用,获取Access Token
  1. 应用介绍中的短文本生成就是语音合成,我还怀疑好久,傻逼了。
  2. 获取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详解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657581.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号