5 Minute Access Guide

本文档旨在帮助用户在完成前置开通动作,准备好相关输入参数后,在很短的时间内完成 TMP 服务的注册,并生成可以直接运行的 python 版本 demo,尽量将用户的开发量降到最低

前置准备

在正式注册之前,请执行以下开通动作,准备相关参数

开通动作:

  1. 创建腾讯云账号 https://cloud.tencent.com ,并进行实名认证(如已有请忽略),确保账号有 200 元余额
  2. 到购买页进行音乐服务开通。https://buy.cloud.tencent.com/imusic
  3. 在 CAM( https://console.cloud.tencent.com/cam ),创建一个 AK/SK 密钥对(即一个访问方式为编程访问用户,不需要登录和任何用户权限),
  4. 创建 COS 桶,创建一个 COS(对象存储)桶( https://console.cloud.tencent.com/cos/bucket ),并在 COS 桶管理界面给已创建的仅编程用户授权 COS 桶的读写权限

准备参数

  • operateUin: 腾讯云子用户的账号 ID
  • cosConfig: 对象存储相关参数
    • secretId: 存储桶的 secretId
    • secretKey: 存储桶的 secretKey
    • bucket: 存储桶的名称
    • region: 存储桶的地区,例如"ap-guangzhou"

激活注册

在完成前置准备后,通过发起请求的方式,进行注册激活,预计等待 2 分钟左右

发起请求:

curl -X POST \
  http://service-mqk0mc83-1257411467.bj.apigw.tencentcs.com/release/register \
  -H 'Content-Type: application/json' \
  -H 'Cache-control: no-cache' \
  -d '{
    "requestId": "test-regisiter-service",
    "action": "Register",
    "registerRequest": {
      "operateUin": <operateUin>,
      "userName": <customedName>,
      "cosConfig": {
        "secretId": <CosConfig.secretId>,
        "secretKey": <CosConfig.secretKey>,
        "bucket": <CosConfig.bucket>,
        "region": <CosConfig.region>
      }
    }
  }'

请求结果:

发起请求后,预计在 2 分钟之后返回响应

{
    "requestId": "test-regisiter-service",
    "registerInfo": {
        "tmpContentId": <tmpContentId>,
        "tmpSecretId": <tmpSecretId>,
        "tmpSecretKey": <tmpSecretKey>,
        "apiGateSecretId": <apiGateSecretId>,
        "apiGateSecretKey": <apiGateSecretKey>,
        "demoCosPath": "UIN_demo/run_musicBeat.py",
        "usageDescription": "请从COS桶[CosConfig.bucket]中下载python版本demo文件[UIN_demo/run_musicBeat.py], 替换demo中的输入文件后,执行python run_musicBeat.py",
        "message": "注册成功,感谢注册",
        "createdAt": <createdAt>,
        "updatedAt": <updatedAt>
    }
}

参数说明

Request 参数说明

参数名称 是否必选 类型 说明
action string 公共参数,此处为 Register
userName string 用户名称,必须为字母或数字,小于等于 19 位字符,不支持特殊符号
operateUin string 腾讯云账号ID, 填写开通音乐服务时使用的腾讯云账号ID。若使用主账号开通,则填主账号ID;若使用子账号开通,则填子账号ID
- secretId string 用户 SecretId
- secretKey string 用户 secretKey
- bucket string 用户 cos 桶名称
- region string 用户 cos 桶地域
- domain string 用户 cos 桶域名

Response 参数说明

参数名称 类型 说明
tmpContentId string cosConfig 在智能音乐平台中的注册 ID
tmpSecretId string 智能音乐平台的身份识别 ID
tmpSecretKey string 智能音乐平台的身份密钥
apiGateSecretId string API 网关的身份识别 ID
apiGateSecretKey string API 网关的身份密钥
demoCosPath string 注册请求完成后,会将 python-demo 存在输入 Cos 上的该路径下
usageDescription string 使用描述
message string 提示性消息

运行验证

完成上述激活注册服务后,会在demoCosPath目录下生成一个以音乐鼓点识别能力为例的 python 版本的可执行 demo,请在有网络的环境下,执行命令python run_musicBeat.py

python-demo 模版:

import requests
import datetime
import hashlib
import hmac
import base64

GMT_FORMAT = "%a, %d %b %Y %H:%M:%S GMT"
API_GATE_SOURCE = "uin_userName"
API_GATE_SECRET_ID = "apiSecretId"
API_GATE_SECRET_KEY = "apiSecretKey"
URL = "http://service-mqk0mc83-1257411467.bj.apigw.tencentcs.com/release/job"
TMP_CONTENT_ID = "tmpContentId"
TMP_SECRET_ID = "tmpSecretId"
TMP_SECRET_KEY = "tmpSecretKey"


def get_api_gate_signature(source, secret_id, secret_key):
    date_time = datetime.datetime.utcnow().strftime(GMT_FORMAT)
    auth = (
        'hmac id="'
        + secret_id
        + '", algorithm="hmac-sha1", headers="date source", signature="'
    )
    signStr = "date: " + date_time + "\n" + "source: " + source
    sign = hmac.new(secret_key.encode(), signStr.encode(), hashlib.sha1).digest()
    sign = base64.b64encode(sign).decode()
    sign = auth + sign + '"'
    return sign, date_time, source


if __name__ == "__main__":
    sign, date_time, source = get_api_gate_signature(
        API_GATE_SOURCE, API_GATE_SECRET_ID, API_GATE_SECRET_KEY
    )
    headers = {
        "Content-Type": "application/json",
        "Authorization": sign,
        "Date": date_time,
        "Source": source,
    }

    request = {
        "action": "CreateJob",
        "secretId": TMP_SECRET_ID,
        "secretKey": TMP_SECRET_KEY,
        "createJobRequest": {
            "customId": "musicBeat",
            "inputs": [
              {
                "source": {
                    "contentId": TMP_CONTENT_ID,
                    "path": "file_path_to_root"
                }
              }
            ],
            "outputs": [
                {
                    "contentId": TMP_CONTENT_ID,
                    "destination": "/output/musicBeat",
                    "inputSelectors": [0],
                    "smartContentDescriptor": {
                        "musicBeat": {
                            "outputType": 4,
                            "drumType": 2,
                            "enlargeLevel": 3,
                            "splitNum": 3,
                        },
                    },
                }
            ],
        },
    }
    resp = requests.post(
        url=URL,
        headers=headers,
        json=request,
    )
    print(resp.text)

获取任务信息

请参考对应 API 文档中的"获取任务信息"章节,查询任务执行状态

Tencent Media Lab
/
We would like to use performance and analytics cookies (“Cookies”) to help us recognize whether you are a returning visitor and to track the number of website views and visits. For more information about the Cookies we use and your options (including how to change your preferences) see our Cookies Policy.