# 音频合规 API 文档

# 接口说明

基于智能特色语义分析及多语种识别技术,依托海量的样本数据,精准高效识别敏感、色情、辱骂等风险音频内容。

购买请点击API套餐购买 (opens new window)、APPID获取请点击API使用控制台 (opens new window)、快速体验请点击音频合规SaaS (opens new window)、交流讨论请点击讯飞开放平台社区 (opens new window)

# 接口Demo

部分开发语言Demo如下,其他开发语言请参照文档进行开发,欢迎大家到讯飞开放平台社区 (opens new window)交流集成经验。

音频合规API Demo java语言 (opens new window)
音频合规API Demo python语言 (opens new window)

# 接口要求

内容 说明
传输方式 http[s] (为提高安全性,强烈推荐https)
请求地址 https://audit.iflyaisol.com/audit/v2/audio
https://audit.iflyaisol.com/audit/v2/query
注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用
Content-Type application/json;charset=UTF-8
接口鉴权 签名机制,详情请参照下方接口鉴权
字符编码 UTF-8
响应格式 统一采用JSON格式
开发语言 任意,只要可以向讯飞云服务发起HTTP请求的均可
适用范围 任意操作系统,但因不支持跨域不适用于浏览器
音频要求 音频格式支持mp3、alaw、ulaw、pcm、aac、wav格式,通过URL外链的音频时长建议限制在1小时内。

# 接口鉴权

# 1、鉴权参数列表

所有鉴权参数均放在url地址栏。

参数名 类型 必传 描述
accessKeyId String 即为控制台获取的APIKey
accessKeySecret String 即为控制台获取的APISecret
utc String 当前时间,格式:"yyyy-MM-dd'T'HH:mm:ssZ",
服务端会校验传入的时间与服务器时间之间的误差,超过 30 分钟即为非法。
signature String 签名串,详细获取步骤234中有signature的获取参考
appId String 即为控制台获取的APPID
uuid String 请求随机字符串, uuid有防重放的功能,如果调试,请注意更换uuid的值

# 2、第一步baseString获取

假设请求 url 中的查询参数为一个集合,将集合内满足条件的参数按照参数名 ASCII 码从小到大排序(字典序),使用键值对的格式(即 key1=value1&key2=value2…注意 value 需要 URLEncoder)拼接成字符串,得到baseString。示例如下:

特别注意以下3个规则:(1)参数值为空的不参与签名;(2)signature 参数本身不参与签名;(3)参数名区分大小写。

accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&appId=simpleAPPID&utc=2023-02-23T06%3A40%3A54%2B0000&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:在实际使用时,simpleXXX需替换控制台的真实值。utc、signature、uuid的值请求时需要UrlEncode。以上utc示例时间UrlEncode前为2023-02-23T06:40:54+0000。randomStr用UUID.randomUUID()函数获得的值替换。

# 3、第二步根据baseString与accessKeySecret获取signature的值

根据得到的baseString和控制台获取的accessKeySecret(即APISecret),利用HMAC运算(HmacSHA1)生成签名byte[],然后使用base64编码得到signature,示例如下:

mH2xDQ5f+mO/Pi6DbrxXrzYQxF0=
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:调试阶段可以与以上结果比对,需要保持baseString与第一步完全一致。

# 4、第三步拼接放到url地址栏

根据第二步获得的signature值,与url地址拼接得到最终地址栏结果,示例如下:

https://audit.iflyaisol.com//audit/v2/syncText?accessKeyId=simpleAPIKey&accessKeySecret=simpleAPISecret&utc=2023-02-23T06%3A40%3A54%2B0000&signature=mH2xDQ5f+mO/Pi6DbrxXrzYQxF0=&appId=simpleAPPID&uuid=44dfa903-adb2-45d3-a1fe-fd8a53f86b2a
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
注意:黑白名单使用鉴权与文本合规鉴权完全一致,只是url地址有变动。具体业务参数通过json以post的形式发送给服务端。

# 请求与返回示例

在调用业务接口时,均在 Http RequestBody中配置以下参数,请求与返回数据均为json字符串,示例如下。

# 1、请求json示例

{
  "audio_list": [
    {
      "audio_type": "mp3",
      "file_url": "https://xfyun-doc.xfyun.cn/static%2F16793792882352753%2F1.mp3",
      "name": "xxx%2F1.mp3"
    }
  ],
  "notify_url": "http://wdfgdzx.top:8000/user/audio_video_callback" //替换为自己的回调地址
}

# 2、返回json示例

{
  "code": "000000",
  "desc": "请求成功",
  "data": {
    "request_id": "T20230321155903016bba833f177a000",
    "audit_status": 2,
    "result_list": [
      {
        "name": "xxx%2F1.mp3",
        "suggest": "block",
        "detail": {
          "audios": [
            {
              "duration": 10,
              "category_list": [
                {
                  "category_description": "辱骂_人身攻击_重度人身攻击",
                  "word_list": [
                    
                  ],
                  "suggest": "block",
                  "category": "uncivilizedLanguage"
                }
              ],
              "offsetTime": "0",
              "audio_url": "http://xxx",
              "suggest": "block",
              "content": "xxx"
            },
            {
              "duration": 10,
              "category_list": [
                {
                  "category_description": "辱骂_人身攻击_重度人身攻击",
                  "word_list": [
                    
                  ],
                  "suggest": "block",
                  "category": "uncivilizedLanguage"
                }
              ],
              "offsetTime": "10",
              "audio_url": "http://xxx",
              "suggest": "block",
              "content": "xxx"
            }
          ]
        }
      }
    ]
  },
  "sid": "d7c868febced455399b373a976d3c3b8"
}

# 参数说明

# 1、请求参数说明

参数名 类型 必传 描述
audio_list List 待识别音频列表,单次数量不能超过10个
audio_list.audio_type String 音频类型,如果不传,取 url 后缀名作为格式
支持类型:mp3、alaw、ulaw、pcm、aac、wav
audio_list.file_url String 音频地址,长度限制 500字符以内
audio_list.name String 音频名称
notify_url String 回调地址,未传不进行回调

# 2、返回参数说明

参数名 类型 描述
sid String 本次会话唯一id标识,用于排查接口调用问题
code String 会话调用成功标记:
000000 表示调用成功
其他数字 表示会话调用异常
desc String 对会话调用是否成功的描述
data Object 审核结果
data.request_id String 请求唯一标识
data.audit_status Integer 内容识别状态。
0:待审核
1:审核中
2:审核完成
4:审核异常
data.result_list List 内容识别结果
data.result_list[n].name String 待识别内容名称
data.result_list[n].suggest String pass:通过
review:疑似,建议人工复审
block:内容识别未通过
data.result_list[n].detail Object 内容识别详情,包含具体审核细节
data.result_list[n].detail.audios List 音频片段识别明细
data.result_list[n].detail.audios[n].suggest String pass:通过
review:疑似,建议人工复审
block:内容识别未通过
data.result_list[n].detail.audios[n].content String 音频中识别出来的文本内容
data.result_list[n].detail.audios[n].offsetTime Integer 该片段开始时间,单位秒
data.result_list[n].detail.audios[n].duration Integer 该片段持续时长,单位秒
data.result_list[n].detail.audios[n].audio_url String 音频片段地址
data.result_list[n].detail.audios[n].category_list[n].word_list String 关键词列表

# 常见问题

# 音频合规支持哪些音频格式的请求,音频大小限制是多少?

答:支持mp3、alaw、ulaw、pcm、aac、wav格式,通过URL外链的音频时长建议限制在1小时内。

# 音频合规对敏感词发音审核的同时,会有语义层面的审核吗?

答:会的。音频合规不仅对音频中敏感词发音进行审核,而且会结合音频语义进行审核,包括不限于国歌歪唱识别、违禁语音检测、辱骂语音检测、垃圾广告检测等。

# 支持对违规音频片段的定位吗?

答:支持。返回违规音频片段的同时,会返回违规的开始时间与持续时长,能够轻松定位违规发音在原音频中的位置。

在线
咨询
建议
反馈
体验
中心