1. 接口说明

调用哼唱接口得到哼唱歌曲的一组歌名和歌手。

2. 接口地址

POST http://webqbh.xfyun.cn/v1/service/v1/qbh

3. 请求参数

在 Http Request Header 中配置授权认证参数,见【接口描述-授权认证。 其中 X-Param 为各配置参数组成的 JSON 串经 BASE64 编码之后的字符串,原始 JSON 串各字段说明如下:

参数 类型 必须 说明 示例
engine_type string 引擎类型,可选值:afs(哼唱)、aas(原生),默认afs afs
aue string 音频编码,可选值:raw(pcm、wav格式)、aac,默认raw raw
sample_rate string 采样率,可选值:8000、16000,默认16000,aue是aac,sample_rate必须是8000 8000
audio_url string 哼唱音频存放地址url 示例

X-Param生成示例:

原始JSON串:
{
    "aue": "raw",
    "sample_rate":"16000"
}
BASE64编码(即X-Param):
eyJlbmdpbmVfdHlwZSI6InNtczE2ayIsImF1ZSI6InJhdyJ9

在 Http Request Body 中配置以下参数:

将音频流二进制数据写入 Http Request Body 中

注: 音频数据可以通过两种方式进行传输,一种是客户端传输一个audio_url参数,服务端根据传输的audio_url去获取哼唱音频数据;另一种是直接把哼唱音频二进制数据写入到Http Request Body中,通过http请求发送给服务端,如果有audio_url参数则根据这个参数去获取音频数据而不会从http body中去取数据,只有当没有传audio_url参数,才会从http body中去取数据。 不论是上述哪种方式,音频大小都需要控制在2M以内,否则服务会报错10109。

4. 返回值

返回值为 json 串,各字段如下:

参数 类型 说明
code string 结果码(具体见错误码)
data array 哼唱检索结果
desc string 描述
sid string 会话ID

其中 sid 字段主要用于追查问题,如果出现问题,可以提供 sid 给讯飞技术人员帮助确认问题。

示例如下:

失败:

{
    "code":"10107",
    "data":[],
    "desc":"illegal parameter|10107",
    "sid":"wbh00000003@ch25a90e5dac692a0100"
}

成功:

{
    "code":"0",
    "data":[
        {
            "song":"千里之外",
            "song_id":"6433782",
            "singer":"周杰伦",
            "singer_id":"313264",
            "start_time":245,
            "end_time":33340
        },
        {
            "song":"千里之外",
            "song_id":"5233627",
            "singer":"刘芳",
            "singer_id":"347675",
            "start_time":1200,
            "end_time":16440
        },
        {
            "song":"千里之外",
            "song_id":"5625263",
            "singer":"费玉清",
            "singer_id":"278025",
            "start_time":1350,
            "end_time":18290
        }
    ],
    "desc":"success",
    "sid":"wbh00000eff@ch676e0e61c4562a0100"
}

5. 调用示例

python脚本示例(python版本号 3.6)

说明:将脚本中 AUDIO_URL, API_KEY, APPID, 换成相应的音频URL,讯飞开放平台提供的 apiKey,讯飞开放平台应用的 appid 即可,运行脚本可打印相应结果。

import requests
import base64
import json
import time
import hashlib


def music_iat():
    url = "http://api.xfyun.cn/v1/service/v1/qbh"
    appid = "APPID"
    apikey = "API_KEY"
    curtime = str(int(time.time()))
    print(curtime)

    param = {
        'audio_url': "AUDIO_URL"
    }
    base64_param = base64.urlsafe_b64encode(json.dumps(param).encode('utf-8'))
    tt = str(base64_param,'utf-8')
    m2 = hashlib.md5()
    m2.update((apikey+ curtime+ tt).encode('utf-8'))
    checksum = m2.hexdigest()

    header = {
        "X-CurTime": curtime,
        "X-Param": base64_param,
        "X-Appid": appid,
        "X-CheckSum":checksum,
    }

    res = requests.post(url,headers= header)
    result = res.content
    print(result)


if __name__ == "__main__":
    music_iat()
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-10-19 20:53:23

results matching ""

    No results matching ""