腾讯ai开放平台使用(代码片段)

coufusion coufusion     2023-01-30     636

关键词:

一、腾讯AI开放平台

https://ai.qq.com/

 

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

技术分享图片

 

三、签名机制

1.计算步骤

用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤。

1.将<key, value>请求参数对按key进行字典升序排序,得到有序的参数对列表N

2.将列表N中的参数对按URL键值对的格式拼接成字符串,得到字符串T(如:key1=value1&key2=value2),URL键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8,而不是小写%e8

3.将应用密钥以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 OrderedDict


class Sign:
    def __init__(self):
        self.app_id = 12345    # APP_ID
        self.app_key = 12345   # APP_KEY

    @property
    def time_stamp(self):
        t = time.time()
        return int(t)

    def random_string(self, num=16):
        s = string.ascii_lowercase + string.digits
        r = 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 dic

    def 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] = m
        return dic

 

四、语音合成功能的使用

import time
import random
import string
import base64
import hashlib
import requests
from urllib.parse import urlencode
from collections import OrderedDict


class Sound:
    def __init__(self):
        self.app_id = 12345  # APP_ID
        self.app_key = 12345  # APP_KEY

    @property
    def time_stamp(self):
        t = time.time()
        return int(t)

    def random_string(self, num=16):
        s = string.ascii_lowercase + string.digits
        r = 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 dic

    def 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] = m
        return 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请求,把获得签名后的字典作为data
        ret = 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=我爱你,中国!)

 

java对接腾讯教育开放平台,idea完整项目(代码片段)

Java对接腾讯教育开放平台,开放平台地址https://open.edu.tencent.com/document/apiDoc,对接心得分享给大家。腾讯官方的demo地址为:https://work.weixin.qq.com/api/doc/90001/90145/90446腾讯官方的demo,写的比较零散,不是修改一... 查看详情

java对接腾讯智慧校园开放平台,idea完整项目(代码片段)

Java对接腾讯智慧校园开放平台,直接上代码。关键代码如下:publicclassSignprivatestaticfinalchar[]HEXES='0','1','2','3','4','5','6','7','8 查看详情

ai实战篇|基于ai开放平台实现货币识别功能,彻底解决货币盲区(代码片段)

🎬博客主页:https://xiaoy.blog.csdn.net🎥本文由呆呆敲代码的小Y原创,首发于CSDN🙉🎄学习专栏推荐:Unity系统学习专栏🌲游戏制作专栏推荐:游戏制作🌲Unity实战100例专栏推荐:Unity实战... 查看详情

ai实战篇|基于ai开放平台实现人脸识别对比功能,超详细教程附带源码(代码片段)

🎬博客主页:https://xiaoy.blog.csdn.net🎥本文由呆呆敲代码的小Y原创,首发于CSDN🙉🎄学习专栏推荐:Unity系统学习专栏🌲游戏制作专栏推荐:游戏制作🌲Unity实战100例专栏推荐:Unity实战... 查看详情

百度ai开放平台unit平台开发在线客服借助百度的人工智能如何开发一个在线客服系统(代码片段)

   这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次。后来就找到了百度的AI,大家也知道... 查看详情

移动app接入qq登录/分享流程

移动App接入QQ登录/分享流程这里先要提两个平台,腾讯开放平台和QQ互联平台:(一)腾讯开放平台官网地址:https://open.tencent.com/介绍:腾讯开放平台是腾讯对开发者公开的一个服务平台,腾讯号称是一个覆盖10亿账户的热门服... 查看详情

开放平台之安全(代码片段)

什么是开放平台开放平台就是将企业中的业务的核心部分经过抽象和提取,形成面向企业或者面向用户的增值系统,为企业带来新的业务增涨点。因为是企业的核心业务能力,所以平台的安全性就成为重中之重。安全方案普通的... 查看详情

高德地图开放平台的使用(代码片段)

...地图上标注企业的位置,找了一些资料发现高德地图开放平台可以。访问地址:https://lbs.amap.com/注册开发者用户直接在页面上注册就好了,使用手机号,个人开发者认证的话需要支付宝扫码认证。创建应用登录控... 查看详情

百度「文心一言」阿里「通义千问」腾讯的ai将会叫什么呢(代码片段)

...蛮像的: BAT三巨头,百度、阿里都上线了,腾讯肯定也紧锣密鼓地准备中。百度的叫文心一言,阿里的叫通义千问,大家来猜猜腾讯版的AI会起什么名字呢? 常规问答 闲着无聊,向ERNIEBot提问,... 查看详情

伏龙ai平台(电池ai开放平台,来注册啊小伙伴们)

...能源伏龙AI平台  伏龙官方文档|伏龙官方文档伏龙电池AI开放平台,简称「伏龙平台」。「伏龙平台」作为国内首个电池AI开放平台,于2021年12月8日正式上线,目标是成为全球最大的电池AI开发者平台。平台简介​「... 查看详情

开放平台readme.md(代码片段)

FAQ:1、Swagger页面访问路径http://localhost:8080/swagger-ui.html2、Mybatis自动生成的映射文件查询text类型的字段信息时,使用主键查询,或者单独使用withBlobs查询插入和更新都包含3、测试环境服务启动:nohupjava-jaropenplatform-0.0.1-SNAPSHOT.jar&a... 查看详情

秦俊:开放devops敏捷开发套件,助力开发者驰骋云端

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~DevOps可以让人工智能(AI)、大数据(Bigdata)、云计算(Cloud)更加高效地落地,越来越多的企业和团队在践行DevOps。腾讯云DevOps产品总监秦俊表示,腾讯云将陆... 查看详情

[wechat]微信开放平台下绑定微信公众号并创建网站应用的操作指南(代码片段)

...以企业为例填写发票信息,并支付款项这里的支付费用是腾讯公司直接收到,与其他公司无任何关系【 查看详情

ai学习吧(代码片段)

...;项目需求公司开发AI学习吧,由于公司需要一款线上学习平台,要开发具有线上视频学习、支付等功能的平台,并整合用户支付和微信消息的推送和提醒。使用Git进行协同开发。 项目结构项目主要有三大模块:项目三大模块... 查看详情

ai实战篇|基于ai开放平台实现货币识别功能,彻底解决货币盲区

查看详情

ai实战篇|基于ai开放平台实现货币识别功能,彻底解决货币盲区

查看详情

微软开源!世界首个ai量化投资平台qlib基本使用教程(代码片段)

2020年9月,微软开源了AI量化投资平台Qlib的源代码,随后得到了不少的关注,Qlib的主要优势在于:1.Python覆盖量化投资全过程,用户无需切换语言;内置许多深度学习算法模型,降低AI算法使用的门槛。... 查看详情

仿京东开放平台框架,开发自己的开放平台(包含需求,服务端代码,sdk代码)(代码片段)

 目录 1开放平台需求1.1调用参数1.2签名算法2服务端代码,Java举例2.1接口入口代码2.2业务逻辑层2.3基础工具类3.SDK代码,Java举例4.集成SDK,代码举例现在开放平台越来越多了,下面针对仿京东开放平台框架,... 查看详情