资讯 社区 文档 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

请求说明

调用审核接口

如果您是第一次使用百度AI服务,请先参照新手指南完成账号创建、应用创建、获取密钥
如果您对内容审核平台的功能、如何配置策略等还不了解,请先查阅接口简介

在线调试

您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。

短音频同步审核

接口地址: https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined
请求方式:POST

注意事项

请求体格式化
Content-Type为application/x-www-form-urlencoded,然后通过urlencode格式化请求体
音频文件说明(同步检测)
音频文件大小:小于10MB
音频文件时长:小于1分钟
推荐格式:pcm,采样率 :16000 固定值,编码:16bit 位深的单声道
其他格式:mp3、wav(不压缩,pcm编码)、aac、amr、m4a
注意:若采用以上所列的其他格式,百度服务端会将其转为pcm格式,因此会存在额外的转换耗时,并且有可能会出现格式转换失败的情况,故强烈建议采用pcm格式

参数说明

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 数据类型 是否必须 备注 样例
url String N 音频文件的url地址 www.asd.com/asd.acc
base64 String N 音频文件的base64编码,与url二选一,若都有按base64调用
fmt String Y 音频文件的格式,pcm、wav、amr、m4a,推荐pcm格式
rate Integer Y 音频采样率[16000] ]
rawText boolean N 是否返回音频识别结果 true:是;false:否 默认为true true
split boolean N rawText是否拆句,true:拆句;false:不拆句返回整段文本 默认为true true
account String N 用户信息标识,限长64位字符长度
audioId String N 音频信息标识,限长128位字符长度

示例代码

提示一:使用示例代码前,请记得替换其中的示例Token、文件地址等信息

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址

音频审核接口
curl -i -k 'https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined?access_token=【调用鉴权接口获取的token】' --data 'base64=【音频Base64编码,需UrlEncode】&fmt=音频文件格式' -H 'Content-Type:application/x-www-form-urlencoded'
package com.baidu.ai.aip;

import com.baidu.ai.aip.utils.Base64Util;
import com.baidu.ai.aip.utils.FileUtil;
import com.baidu.ai.aip.utils.HttpUtil;

import java.net.URLEncoder;

/**
* 音频审核接口
*/
public class VoiceCensor {

    /**
    * 重要提示代码中所需工具类
    * FileUtil,Base64Util,HttpUtil,GsonUtils请从
    * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
    * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
    * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
    * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
    * 下载
    */
    public static String VoiceCensor() {
        // 请求url
        String url = "https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined";
        try {
            // 本地文件路径
            String filePath = "[本地文件路径]";
            byte[] data = FileUtil.readFileByBytes(filePath);
            String str = Base64Util.encode(data);
            String voiceParam = URLEncoder.encode(str, "UTF-8");

            String param = "base64=" + voiceParam + "&fmt=" + "音频格式";

            // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
            String accessToken = "[调用鉴权接口获取的token]";

            String result = HttpUtil.post(url, accessToken, param);
            System.out.println(result);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        VoiceCensor.VoiceCensor();
    }
}
# encoding:utf-8

import requests
import base64

'''
音频审核接口
'''

request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined"
# 二进制方式打开音频文件
f = open('[本地文件]', 'rb')
data = base64.b64encode(f.read())

params = {"base64":data,"fmt":"音频格式"}
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())
<?PHP
/**
 * 发起http post请求(REST API), 并获取REST请求的结果
 * @param string $url
 * @param string $param
 * @return - http response body if succeeds, else false.
 */
function request_post($url = '', $param = '')
{
    if (empty($url) || empty($param)) {
        return false;
    }

    $postUrl = $url;
    $curlPost = $param;
    // 初始化curl
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $postUrl);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    // post提交方式
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
    // 运行curl
    $data = curl_exec($curl);
    curl_close($curl);

    return $data;
}

$token = '[调用鉴权接口获取的token]';
$url = 'https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined?access_token=' . $token;
$img = file_get_contents('[本地文件路径]');
$img = base64_encode($img);
$bodys = array(
    'base64' => $img,
    'fmt' => "音频格式"
);
$res = request_post($url, $bodys);

var_dump($res);
#include <iostream>
#include <curl/curl.h>

// libcurl库下载链接:https://curl.haxx.se/download.html
// jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/
const static std::string request_url = "https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v2/user_defined";
static std::string VoiceCensor_result;
/**
 * curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在全局的静态变量当中
 * @param 参数定义见libcurl文档
 * @return 返回值定义见libcurl文档
 */
static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
    // 获取到的body存放在ptr中,先将其转换为string格式
    VoiceCensor_result = std::string((char *) ptr, size * nmemb);
    return size * nmemb;
}
/**
 * 音频审核接口
 * @return 调用成功返回0,发生错误返回其他错误码
 */
int VoiceCensor(std::string &json_result, const std::string &access_token) {
    std::string url = request_url + "?access_token=" + access_token;
    CURL *curl = NULL;
    CURLcode result_code;
    int is_success;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.data());
        curl_easy_setopt(curl, CURLOPT_POST, 1);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_httppost *post = NULL;
        curl_httppost *last = NULL;
        curl_formadd(&post, &last, CURLFORM_COPYNAME, "base64", CURLFORM_COPYCONTENTS, "【base64_img】".c_str(), CURLFORM_END);
        curl_formadd(&post, &last, CURLFORM_COPYNAME, "fmt", CURLFORM_COPYCONTENTS, "音频格式", CURLFORM_END);

        curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
        result_code = curl_easy_perform(curl);
        if (result_code != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                    curl_easy_strerror(result_code));
            is_success = 1;
            return is_success;
        }
        json_result = VoiceCensor_result;
        curl_easy_cleanup(curl);
        is_success = 0;
    } else {
        fprintf(stderr, "curl_easy_init() failed.");
        is_success = 1;
    }
    return is_success;
}
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;

namespace com.baidu.ai
{
    public class VoiceCensor
    {
        // 音频审核接口
        public static string VoiceCensor()
        {
            string token = "[调用鉴权接口获取的token]";
            string host = "https://aip.baidubce.com/rest/2.0/solution/v1/voice_censor/v3/user_defined?access_token=" + token;
            Encoding encoding = Encoding.Default;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
            request.Method = "post";
            request.KeepAlive = true;
            // 音频文件的base64编码
            string base64 = getFileBase64("[本地音频文件]");
            String str = "base64=" + HttpUtility.UrlEncode(base64) + "&fmt=" + "音频格式";
            byte[] buffer = encoding.GetBytes(str);
            request.ContentLength = buffer.Length;
            request.GetRequestStream().Write(buffer, 0, buffer.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
            string result = reader.ReadToEnd();
            Console.WriteLine("音频审核接口:");
            Console.WriteLine(result);
            return result;
        }

        public static String getFileBase64(String fileName) {
            FileStream filestream = new FileStream(fileName, FileMode.Open);
            byte[] arr = new byte[filestream.Length];
            filestream.Read(arr, 0, (int)filestream.Length);
            string baser64 = Convert.ToBase64String(arr);
            filestream.Close();
            return baser64;
        }
    }
}
上一篇
高级功能
下一篇
响应说明