
# 哼唱识别
#### 功能介绍
分析并识别用户上传的音频文件中哼唱音乐与原唱的相似度，并返回该值。
#### URI
URI格式
POST /v1.0/audio/humming-recognition
#### 请求消息
请求参数请参见[表1]。
 表1请求参数说明 
| 名称        | 是否必选     | 类型     | 说明                                             |
|:---|:---|:---|:---|
| url       | 与data二选一 | String | 音频的URL路径，目前支持华为云上OBS提供的临时授权方位的URL，或匿名公开授权的URL。 |
| data      | 与url二选一  | String | 音频数据的base64编码，要求base64编码后大小不超过10MB。            |
| song_name | 必选       | String | 哼唱音乐对应原唱歌曲的名字，英文歌名不区分大小写。                      |
| singer    | 必选       | String | 原唱歌曲的歌手名字，只支持歌手全名，英文不区分大小写。                    |
   
#### 响应消息
响应参数请参见[表2]。
 表2响应参数说明 
| 名称         | 类型     | 说明                                                                                                                                                   |
|:---|:---|:---|
| result     | JSON   | 调用成功时为图像标签内容。 调用失败时无此字段。                                                                      |
| similarity | Float  | 返回的哼唱音乐与原唱音乐的相似度，取值范围0-1。                                                                                                                            |
| error_code | String | 调用失败时的错误码，具体请参见[错误码](https://support.huaweicloud.com/api-image/image_03_0010.html)。 调用成功时无此字段。 |
| error_msg  | String | 调用失败时的错误信息。 调用成功时无此字段。                                                                         |
   
#### 示例
- 请求示例（方式一：使用音频数据的BASE64编码）
  ```
  POST https://image.cn-north-1.myhuaweicloud.com/v1.0/audio/humming-recognition
     
  Request Header:  
  Content-Type:application/json
  X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
  Request Body:
  {
    "data":"cmV0OiAwICAgICAgICAgc3Q6IDAgZmxhZ3M6MSBkdHM6LTIuMDAwMDAwIHB0czogMC4wMDAwMDAgcG9z...",
    "song_name":"夜来香",
    "singer":"邓丽君"
  }
  ```
  
- 请求示例（方式二：使用音频数据的URL）
  ```
  POST https://image.cn-north-1.myhuaweicloud.com/v1.0/audio/humming-recognition
     
  Request Header:  
  Content-Type:application/json
  X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
  Request Body:
  {
    "url":"https://BucketName.obs.myhuaweicloud.com/ObjectName",
    "song_name":"夜来香",
    "singer":"邓丽君"
  }
  ```
  
- 成功响应示例
  ```
  {
    "result": {
      "similarity": 0.72,
    }
  }
  ```
  
- 失败响应示例
  ```
  {
      "error_code": "AIS.0105",
      "error_msg": "Recognize Failed"
  }
  ```
  
 
#### 返回值
- 正常 200
  
- 失败
  
  | 返回值 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  |:---|:---|
  | 400 | - 语义有误，当前请求无法被服务器解析。除非进行修改，否则客户端不应重复提交这个请求。  - 请求参数有误。   |
  | 401 | 当前请求需要用户验证。                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | 403 | 没有操作权限。                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | 404 | 请求失败，在服务器上未找到请求所希望得到的资源。                                                                                                                                                                                                                                                                                                                                                                                                                   |
  | 500 | 服务器遇到了一个未曾预料的状况，导致无法完成对请求的处理。                                                                                                                                                                                                                                                                                                                                                                                                              |
     
  
 
