接口说明

语音听写接口可将语音(≤60秒)转换成对应的文字信息。

接口地址

POST http://api.xfyun.cn/v1/service/v1/iat HTTP/1.1
Content-Type:application/x-www-form-urlencoded; charset=utf-8

请求参数

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

参数 类型 必须 说明 示例
engine_type string 引擎类型,可选值:sms16k(16k采样率普通话音频)、sms8k(8k采样率普通话音频)等,其他参见引擎类型说明 sms8k
aue string 音频编码,可选值:raw(未压缩的pcm或wav格式)、speex(speex格式)、speex-wb(宽频speex格式) raw
speex_size string speex音频帧率,speex音频必传 60
scene string 情景模式。如需使用热词功能,必须指定scene=main。 main
vad_eos string 后端点检测(单位:ms),默认1800 2000

X-Param生成示例:

原始JSON串:
{
    "engine_type": "sms16k",
    "aue": "raw"
}
BASE64编码(即X-Param):
eyJlbmdpbmVfdHlwZSI6ICJzbXMxNmsiLCJhdWUiOiAicmF3In0=

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

参数 类型 必须 说明 示例
audio string 音频数据,base64 编码后进行 urlencode,要求 base64 编码和 urlencode 后大小不超过2M,原始音频时长不超过60s exSI6ICJlbiIsCgkgICAgInBvc2l0aW9uIjogImZhbHNlIgoJf...

注: base64 编码后大小会增加约1/3

返回值

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

参数 类型 说明
code string 结果码(具体见错误码)
data string 语音识别后文本结果
desc string 描述
sid string 会话ID

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

示例如下:

失败:

{
    "code": "10106",
    "desc": "invalid parameter|invalid X-Appid",
    "data": "",
    "sid": "zat0000bb3f@ch3d5c059d83b3477200"
}

成功:

{
    "code":"0",
    "data":"科大讯飞作为中国最大的智能语音技术提供商",
    "sid":"zat00000009@ch0fc40d9e4cdf000100",
    "desc":"success"
}

调用示例

python脚本示例

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib2
import time
import urllib
import json
import hashlib
import base64


def main():
    f = open("AUDIO_PATH", 'rb')
    file_content = f.read()
    base64_audio = base64.b64encode(file_content)
    body = urllib.urlencode({'audio': base64_audio})

    url = 'http://api.xfyun.cn/v1/service/v1/iat'
    api_key = 'API_KEY'
    param = {"engine_type": "sms16k", "aue": "raw"}

    x_appid = 'APPID'
    x_param = base64.b64encode(json.dumps(param).replace(' ', ''))
    x_time = int(int(round(time.time() * 1000)) / 1000)
    x_checksum = hashlib.md5(api_key + str(x_time) + x_param).hexdigest()
    x_header = {'X-Appid': x_appid,
                'X-CurTime': x_time,
                'X-Param': x_param,
                'X-CheckSum': x_checksum}
    req = urllib2.Request(url, body, x_header)
    result = urllib2.urlopen(req)
    result = result.read()
    print result
    return

if __name__ == '__main__':
    main() 
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-07-13 09:08:20

results matching ""

    No results matching ""