
# http接口 - RecognizeShortAudio
#### 功能介绍
一句话识别接口，用于短语音的同步识别。一次性上传1min以内音频，能快速返回识别结果。该接口的使用限制请参见[约束与限制](https://support.huaweicloud.com/productdesc-sis/sis_01_0011.html)，详细使用指导请参见[SIS服务使用简介](https://support.huaweicloud.com/qs-sis/sis_07_0001.html)章节。
[SIS服务控制台](https://console.huaweicloud.com/sis)提供了一句话识别的在线使用页面，用户无需编程即可使用服务功能。
图1在线使用   
![](https://support.huaweicloud.com/api-sis/zh-cn_image_0000002380713857.png "点击放大")
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SIS/doc?api=RecognizeShortAudio)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/usermanual-sis/sis_09_0016.html)。
#### URI
POST /v1/{project_id}/asr/short-audio
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                               |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-sis/sis_03_0008.html)。 |
   
#### 请求参数
表2请求Header参数 
| 参数                    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token          | 是    | String | 用户Token。 用于获取操作API的权限。获取方法请参见[认证鉴权](https://support.huaweicloud.com/api-sis/sis_03_0058.html)。响应消息头中X-Subject-Token的值即为Token。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Enterprise-Project-Id | 否    | String | 企业项目ID。SIS支持通过企业项目管理（EPS）对不同用户组和用户的资源使用，进行分账。 获取方法：进入"[企业项目管理](https://console.huaweicloud.com/eps/?#/eps/manager/projects)"页面，单击企业项目名称，在企业项目详情页获取Enterprise-Project-Id（企业项目ID）。 ![](https://support.huaweicloud.com/api-sis/zh-cn_image_0000001902247945.png "点击放大") 企业项目创建步骤请参见用户指南。 说明： 账户创建企业项目后，在传参时，有以下三类场景。 - 携带正确的ID，正常使用SIS服务，账单归到企业ID对应的企业项目中。  - 携带错误的ID，正常使用SIS服务，账单的企业项目会被分类为"default"。  - 不携带ID，正常使用SIS服务，账单的企业项目会被分类为"default"。   |
   
表3请求Body参数 
| 参数     | 是否必选 | 参数类型                                              | 描述                                                                                                                      |
|:---|:---|:---|:---|
| config | 是    | [Config] Object | 配置信息。                                                                                                                   |
| data   | 是    | String                                            | 语音数据，Base64编码，要求Base64编码后大小不超过4M，音频时长不超过1分钟。Base64编码示例如/+MgxAAUeHpMAUkQAANhuRAC...，如果携带data:audio/mp3;base64,类前缀，会产生报错。 |
   
 表4Config 
| 参数                   | 是否必选 | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|:---|
| audio_format         | 是    | String | 支持语音的格式，请参考[表 audio_format取值范围]。                                                                                       |
| property             | 是    | String | 所使用的模型特征串，通常是 "语种_采样率_领域"的形式，采样率需要与音频采样率保持一致，取值范围请参考[表 property取值范围]。                                                                  |
| add_punc             | 否    | String | 表示是否在识别结果中添加标点，取值为"yes"和"no"，默认为"no"。                                                                                                                                      |
| digit_norm           | 否    | String | 表示是否将语音中的数字识别为阿拉伯数字，取值为"yes" 和 "no"，默认为"yes"。                                                                                                                              |
| vocabulary_id        | 否    | String | 热词表id，不使用则不填写。创建热词表信息请参考[创建热词表 - CreateVocabulary](https://support.huaweicloud.com/api-sis/sis_03_0071.html)。                                                              |
| need_word_info       | 否    | String | 表示是否在识别结果中输出分词结果信息，取值为"yes"和"no"，默认为"no"。                                                                                                                                  |
| auto_language_detect | 否    | String | 表示是否开启中文、英文、上海方言、四川方言和广东方言自动识别，取值为"yes"和"no"，默认为"no"。如果开启此开关，且传入音频时长不低于1.5秒，后端服务会依据用户的输入音频自动选择对应语种的模型（property）进行识别。注意，当用户的语音过于嘈杂时，语种的判定可能会不准确，所以用户如果已经明确所属语种/方言，不建议打开此开关。 |
   
 表5audio_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) 压缩录音数据。目前仅支持单通道的音频。                                                |
| auto           | 由引擎自动判断音频数据的格式并解码，支持自动判断amr，flac，m4a，mp3，ogg，webm，wav，aac，ac3，mov，wma、amrwb格式。 |
   
 表6property取值范围 
| property取值           | 描述                                                                                                        |
|:---|:---|
| chinese_16k_general  | 支持采样率为8k/16k的中文普通话语音识别，采用新一代端到端识别算法，识别准确率更高。 区域支持cn-east-3和cn-north-4。      |
| chinese_16k_travel   | 支持采样率为16k的中文普通话语音识别，对噪声场景进行了优化。若所处环境噪声较大，建议采用该参数。 区域支持cn-east-3和cn-north-4。 |
| sichuan_16k_common   | 支持采样率为8k/16k的四川话方言识别，区域仅支持cn-north-4。                                                                     |
| cantonese_16k_common | 支持采样率为8k/16k的粤语方言识别，区域仅支持cn-north-4。                                                                      |
| shanghai_16k_common  | 支持采样率为8k/16k的上海话方言识别，区域仅支持cn-north-4。                                                                     |
| chinese_8k_common    | 支持采样率为8k的中文普通话语音识别，当明确输入音频为电话信道8k数据时，建议采用该参数。                                                             |
| chinese_16k_common   | 支持采样率为16k的中文普通话语音快速识别，采用蒸馏剪枝算法，显著提升识别速度。如果更侧重识别速度，建议采用该参数。                                                |
| english_16k_common   | 支持采样率为8k/16k的英文语音识别，区域仅支持cn-east-3。暂不支持digit_norm参数。                                                      |
| english_8k_common    | 支持采样率为8k的英文语音识别，此为旧版模型，后期不再维护，建议使用english_16k_common。                                                     |
   
#### 响应参数
**状态码： 200**
表7响应Body参数 
| 参数       | 是否必选 | 参数类型                                             | 描述                                                                                                 |
|:---|:---|:---|:---|
| trace_id | 是    | String                                           | 服务内部的令牌，可用于在日志中追溯具体流程，调用失败无此字段。 在某些错误情况下可能没有此令牌字符串。 |
| result   | 是    | [Result] Object | 调用成功表示识别结果，调用失败时无此字段。                                                                              |
   
 表8Result 
| 参数        | 是否必选 | 参数类型                                                            | 描述                                                           |
|:---|:---|:---|:---|
| text      | 是    | String                                                          | 调用成功表示识别出的内容。                                                |
| score     | 是    | Float                                                           | 调用成功表示识别出的置信度，取值范围：0\~1。                                     |
| word_info | 否    | Array of [WordInfo] Objects | 分词信息列表。 分词是指将识别出的文本进一步拆分成单独的词语。 |
   
 表9WordInfo 
| 参数         | 是否必选 | 参数类型    | 描述    |
|:---|:---|:---|:---|
| start_time | 否    | Integer | 起始时间。 |
| end_time   | 否    | Integer | 结束时间。 |
| word       | 否    | String  | 分词。   |
   
**状态码： 400**
表10响应Body参数 
| 参数         | 参数类型   | 描述                     |
|:---|:---|:---|
| error_code | String | 调用失败时的错误码。 调用成功时无此字段。  |
| error_msg  | String | 调用失败时的错误信息。 调用成功时无此字段。 |
   
#### 请求示例
![](https://support.huaweicloud.com/api-sis/public_sys-resources/note_3.0-zh-cn.png)
"endpoint"即调用API的请求地址，不同接口不同区域的"endpoint"不同，具体请参见[终端节点](https://support.huaweicloud.com/api-sis/sis_03_0004.html)。
- 上传短音频，快速返回识别结果
  ```
  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_16k_general",
      "add_punc": "yes",
      "need_word_info": "yes",
      "auto_language_detect": "no"
    },
    "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_16k_general',
              'audio_format': 'pcm16k16bit'
          }
      }
      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_16k_general\"}}";
        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":"***" 
}
```
#### 状态码
状态码请参见[状态码](https://support.huaweicloud.com/api-sis/sis_03_0044.html)。
#### 错误码
错误码请参见[错误码](https://support.huaweicloud.com/api-sis/sis_03_0045.html)。
