更新时间:2022-05-16 GMT+08:00
分享

http接口

功能介绍

一句话识别接口,用于短语音的同步识别。一次性上传1min以内音频,能快速返回识别结果。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。

调试

您可以在API Explorer中调试该接口。

URI

POST /v1/{project_id}/asr/short-audio

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目编号。获取方法,请参见获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,响应消息头中X-Subject-Token的值即为Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

config

Config object

配置信息。

data

String

语音数据,Base64编码,要求Base64编码后大小不超过4M,音频时长不超过1分钟。

表4 Config

参数

是否必选

参数类型

描述

audio_format

String

支持语音的格式,请参考表 audio_format取值范围

property

String

所使用的模型特征串,通常是 “语种_采样率_领域”的形式,采样率需要与音频采样率保持一致,取值范围请参考表 property取值范围

add_punc

String

表示是否在识别结果中添加标点,取值为“yes”“no”,默认为“no”

digit_norm

String

表示是否将语音中的数字识别为阿拉伯数字,取值为“yes”“no”,默认为“yes”

vocabulary_id

String

热词表id,不使用则不填写。

创建热词表信息请参考创建热词表

need_word_info

String

表示是否在识别结果中输出分词结果信息,取值为“yes”“no”,默认为“no”

表5 audio_format取值范围

audio_format取值

描述

pcm16k16bit

16k16bit单通道录音数据。

pcm8k16bit

8k16bit单通道录音数据。

ulaw16k8bit

16k8bit ulaw单通道录音数据。

ulaw8k8bit

8k8bit ulaw单通道录音数据。

alaw16k8bit

16k8bit alaw单通道录音数据。

alaw8k8bit

8k8bit alaw单通道录音数据。

mp3

mp3格式音频。目前仅支持单通道的音频。

aac

aac格式音频。目前仅支持单通道的音频。

wav

带wav封装头的格式,从封装头中自动确定格式,目前仅支持8k/16k采样率、单通道、pcm, alaw, ulaw三种编码格式。

amr

AMR窄带(8k) 压缩录音数据。目前仅支持单通道的音频。

amrwb

AMR 宽带(16k) 压缩录音数据。目前仅支持单通道的音频。

表6 property取值范围

property取值

描述

chinese_8k_common

支持采样率为8k的中文普通话语音识别。

chinese_16k_common

支持采样率为16k的中文普通话语音识别。

chinese_16k_general

支持采样率为16k的中文普通话语音识别,同时可识别一些简单的方言。

格式仅支持pcm16k16bit、mp3、wav,区域仅支持cn-north-4。

sichuan_16k_common

支持采样率为16k的中文普通话与四川话方言识别。区域仅支持cn-north-4。

cantonese_16k_common

支持采样率为16k的粤语方言识别。区域仅支持cn-north-4。

shanghai_16k_common

支持采样率为16k的上海话方言识别,区域仅支持cn-north-4。

响应参数

状态码: 200

表7 响应Body参数

参数

是否必选

参数类型

描述

trace_id

String

服务内部的令牌,可用于在日志中追溯具体流程,调用失败无此字段。

在某些错误情况下可能没有此令牌字符串。

result

Result object

调用成功表示识别结果,调用失败时无此字段。

表8 Result

参数

是否必选

参数类型

描述

text

String

调用成功表示识别出的内容。

score

Float

调用成功表示识别出的置信度,取值范围:0~1。

word_info

Array of WordInfo objects

分词信息列表。

表9 WordInfo

参数

是否必选

参数类型

描述

start_time

Integer

起始时间

end_time

Integer

结束时间

word

String

分词

状态码: 400

表10 响应Body参数

参数

参数类型

描述

error_code

String

调用失败时的错误码。 调用成功时无此字段。

error_msg

String

调用失败时的错误信息。 调用成功时无此字段。

请求示例

“endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点

  • 请求示例(伪码)
    POST https://{endpoint}/v1/{project_id}/asr/short-audio
    
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
    
    Request body: 
    {
      "config":
      {
        "audio_format": "wav",
        "property": "chinese_8k_common",
        "add_punc": "yes",
        "need_word_info": "yes"
      },
      "data": "/+MgxAAUeHpMAUkQAANhuRAC..."
    }
  • Python3语言请求代码示例
    # -*- coding: utf-8 -*-
    # 此demo仅供测试使用,强烈建议使用sdk。需提前安装requests,执行pip install requests
    import requests
    import base64
    import json
    
    def sasr_demo():
        url = 'https://{{endpoint}}/v1/{{project_id}}/asr/short-audio'  # endpoint和project_id需替换
        token = '用户对应region的token'
        file_path = '将要识别音频的路径'
        with open(file_path, 'rb') as f:
            data = f.read()
            base64_data = str(base64.b64encode(data), 'utf-8')
        header = {
            'Content-Type': 'application/json',
            'X-Auth-Token': token
        }
        body = {
            'data': base64_data,
            'config': {
                'property': 'chinese_8k_common',
                'audio_format': 'pcm8k16bit'
            }
        }
        resp = requests.post(url, data=json.dumps(body), headers=header)
        print(resp.text)
    
    if __name__ == '__main__':
        sasr_demo()
    
  • Java语言请求代码示例
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    /**
     * 此demo仅供测试使用,强烈建议使用SDK
     */
    public class SasrDemo {
      public void sasrDemo() {
        try {
          // endpoint和projectId需要替换成实际信息。
          URL url = new URL("https://{{endpoint}}/v1/{{project_id}}/asr/short-audio");
          String token = "对应region的token";
          String audioBody = "8k wav格式audio对应base64编码";
          HttpURLConnection connection = (HttpURLConnection)url.openConnection();
          connection.setRequestMethod("POST");
          connection.setDoInput(true);
          connection.setDoOutput(true);
          connection.addRequestProperty("Content-Type", "application/json");
          connection.addRequestProperty("X-Auth-Token", token);
    
    
          OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
          String body = "{\"data\":\"" +  audioBody + "\", \"config\": { \"audio_format\": \"wav\", "
            + "\"property\":\"chinese_8k_common\"}}";
          osw.append(body);
          osw.flush();
          InputStream is = connection.getInputStream();
          BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
          while (br.ready()) {
            System.out.println(br.readLine());
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        SasrDemo sasrDemo = new SasrDemo();
        sasrDemo.sasrDemo();
      }
    }

响应示例

状态码:200

成功响应示例

{
  "trace_id": "567e8537-a89c-13c3-a882-826321939651",
  "result":{
    "text": "欢迎使用语音云服务。",
    "score": 0.9,
    "word_info": [
            {
                "start_time": 150,
                "end_time": 570,
                "word": "欢迎"
            },
            {
                "start_time": 570,
                "end_time": 990,
                "word": "使用"
            },
            {
                "start_time": 990,
                "end_time": 1380,
                "word": "语音"
            },
            {
                "start_time": 1380,
                "end_time": 1590,
                "word": "云"
            },
            {
                "start_time": 1590,
                "end_time": 2070,
                "word": "服务"
            }
        ]
  }
}

状态码:400

失败响应示例

{ 
    "error_code":"SIS.0001", 
    "error_msg":"***" 
}

状态码

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品

close