一、腾讯AI开放平台

https://ai.qq.com/

二、腾讯AI平台支持的功能

三、签名机制

1.计算步骤

用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤。1.将<key, value>请求参数对按key进行字典升序排序,得到有序的参数对列表N2.将列表N中的参数对按URL键值对的格式拼接成字符串,得到字符串T(如:key1=value1&key2=value2),URL键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8,而不是小写%e83.将应用密钥以app_key为键名,组成URL键值拼接到字符串T末尾,得到字符串S(如:key1=value1&key2=value2&app_key=密钥)4.对字符串S进行MD5运算,将得到的MD5值所有字符转换成大写,得到接口请求签名

2.注意事项

1.不同接口要求的参数对不一样,计算签名使用的参数对也不一样2.参数名区分大小写,参数值为空不参与签名3.URL键值拼接过程value部分需要URL编码4.签名有效期5分钟,需要请求接口时刻实时计算签名信息

3.参考代码

import time
import random
import string
import base64
import hashlib
import requests
from urllib.parse import urlencode
from collections import OrderedDictclass Sign:def __init__(self):self.app_id = 12345    # APP_IDself.app_key = '12345'   # APP_KEY
@propertydef time_stamp(self):t = time.time()return int(t)def random_string(self, num=16):s = string.ascii_lowercase + string.digitsr = random.sample(s, num)return ''.join(r)def add_field(self, dic):dic['app_id'] = self.app_id# 生成时间戳dic['time_stamp'] = self.time_stamp# 生成随机字符串dic['nonce_str'] = self.random_string()return dicdef add_sign(self, dic):d = OrderedDict()# 将字典进行排序for k in sorted(dic):d[k] = dic[k]# 将排序后的字典进行urlencode编码,得到字符串s = urlencode(d, encoding='utf-8')# 把app_key拼接到字符串s += '&app_key={}'.format(self.app_key)md = hashlib.md5()md.update(s.encode('utf-8'))# 将字符串进行md5运算得到签名m = md.hexdigest().upper()dic['sign'] = mreturn dic

四、语音合成功能的使用

import time
import random
import string
import base64
import hashlib
import requests
from urllib.parse import urlencode
from collections import OrderedDictclass Sound:def __init__(self):self.app_id = 12345  # APP_IDself.app_key = '12345'  # APP_KEY
@propertydef time_stamp(self):t = time.time()return int(t)def random_string(self, num=16):s = string.ascii_lowercase + string.digitsr = random.sample(s, num)return ''.join(r)def add_field(self, dic):dic['app_id'] = self.app_iddic['time_stamp'] = self.time_stampdic['nonce_str'] = self.random_string()return dicdef add_sign(self, dic):d = OrderedDict()for k in sorted(dic):d[k] = dic[k]s = urlencode(d, encoding='utf-8')s += '&app_key={}'.format(self.app_key)md = hashlib.md5()md.update(s.encode('utf-8'))m = md.hexdigest().upper()dic['sign'] = mreturn dic# 合成语音def speech_synthesis(self, file_name=None, speaker=6, format=3, volume=0, speed=100, text=None, aht=0, apc=58):if text == None:text = '请输入想要转换的文字!'if file_name == None:file_name = 'test.mp3'dic = {'aht': aht,'apc': apc,'text': text,'speed': speed,'format': format,'volume': volume,'speaker': speaker,}# 生成字典dic = self.add_field(dic)# 获得签名后的字典dic = self.add_sign(dic)# 发post请求,把获得签名后的字典作为dataret = requests.post(url='https://api.ai.qq.com/fcgi-bin/aai/aai_tts', data=dic).json()# 将请求结果中的音频数据进行base64解码,然后写入文件with open(file_name, 'wb') as f:audio = base64.b64decode(ret['data']['speech'])f.write(audio)if __name__ == '__main__':s = Sound()s.speech_synthesis(file_name='001.mp3', text='我爱你,中国!')

转载于:https://www.cnblogs.com/Coufusion/p/10069385.html

腾讯AI开放平台的使用相关推荐

  1. python3调用腾讯AI开放平台

    CSDN上偶遇一文说明如何调用腾讯AI开放平台API,因为喜欢python3,所以用python3实现了下. 用qq登录获取自己的id和key. 参考点击打开链接. 首先获取请求参数.新建了个文件md ...

  2. 腾讯AI开放平台的接口调用指南

    最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的.只需要用QQ号登录即可.这么好的东西,作为一个程序员,当然要试试了! 从上图可以看出腾讯AI开放平台提供的人工智能服务主 ...

  3. 腾讯ai开放平台 手册_创建手册以实现大规模开放

    腾讯ai开放平台 手册 "是的,但是你实际上是怎么做到的呢?" 在Opensource.com以及无数的会议和研讨会上,这是我们社区领域最常见的问题. 人们倾向于理解为什么在工作场 ...

  4. 腾讯AI开放平台使用尝试:代理后的文本翻译API使用方式

    这篇文章介绍一下如何结合代理服务器使用腾讯AI开放平台提供的文本翻译API. 目录 事前准备 请求参数 返回格式 示例代码 使用示例 常见问题 结果确认 总结 参考内容 事前准备 实现需要申请申请账号 ...

  5. 腾讯AI开放平台使用尝试:账号开通/应用创建/能力开通

    这篇文章记录一下使用腾讯AI开放平台的使用:如何进行账号开通.应用创建和能力开通. 目录 文档中心地址 注册成为开发者 步骤1:点击控制台 步骤2: 通过QQ账号关联 创建应用并开通能力 步骤1: 创 ...

  6. 腾讯开发平台php,腾讯AI开放平台 Tencent AI open platform

    腾讯AI开放平台 SDK Tencent AI open platform sdk Special thanks to the generous sponsorship by: Requirement ...

  7. 腾讯AI开放平台 SDK

    腾讯AI开放平台 SDK Tencent AI open platform sdk Special thanks to the generous sponsorship by: Requirement ...

  8. php图像识别api,使用腾讯AI开放平台api进行图片OCR文字识别

    重要:本文最后更新于2019-05-20 08:46:46,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 其实图片的文字识别其实还算简单,一般是根据特定字体制作出字码文件,然后分割 ...

  9. 腾讯AI开放平台的签名算法(Python)

    最近接到一个任务,要求使用python进行语音合成,实现班级点名的功能.后来使用了pyttsx库,发现这个库合成的语音听起来不清晰,于是果断抛弃.然后就想起了使用腾讯的语音合成api,发现腾讯优图的语 ...

最新文章

  1. Lintcode27-Reverse 3-digit Integer
  2. Docker源码分析(一):Docker架构
  3. python使用函数的优点-Python用了这么多年,总结出超实用的功能和特点
  4. java 使用servlet做学生管理系统(无框架)
  5. Linux常用初级指令介绍
  6. .net core高性能通讯开源组件BeetleX
  7. java编程思想学习(3):Java中的private、protected、public和default的区别
  8. 【深度学习系列】用PaddlePaddle和Tensorflow实现GoogLeNet InceptionV2/V3/V4
  9. Attention!神经网络中的注意机制到底是什么?
  10. 公式推导 11-14
  11. python作函数图像_如何使用python的matplotlib模块画余切函数图像
  12. windows server测评 等保2.0
  13. python中类对象和实例对象_python基础之类和对象、对象之间的交互、类名称空间与对象/实例名称空间...
  14. 收藏:更换手机号必做的9件事
  15. 魅族官方刷机教程地址(免费)
  16. Java基础 常见数据结构与算法 项目总结
  17. 免费报名 | 2016中国信息无障碍专题沙龙
  18. 深度学习——Noisier2Noise
  19. 编译安装redis6.2.6
  20. LOGO的主要作用是什么?logo设计都有着哪些设计规则?

热门文章

  1. Echarts_1:水平柱体
  2. 【多模态】CLIP模型
  3. 图的邻接矩阵存储及遍历
  4. webpack之entry
  5. 函数声明与函数表达式的提升问题
  6. http://39.98.219.132 题库标准答案(题库序号:179)之判断素数
  7. python菜鸟教程python机器学习工具库
  8. 海皇戟3黑成功,刚入门黑苹果,用5个软件搞定,菜鸟级双系统安装
  9. 振动开关和水银开关的区别
  10. Floyd (弗洛伊德)算法简述