语音反垃圾检测

本文介绍了如何使用PHP SDK语音反垃圾接口,检测实时语音流或语音文件中的垃圾内容。

功能描述

语音流检测和语音文件检测均为异步检测,检测结果需要您以轮询或者回调的方式获取。关于调用请求中的检测场景参数scenes,返回结果中的分类参数label,以及操作建议参数suggestion的说明,请参见语音异步检测

语音检测按照检测的语音文件、语音流的时间长度进行计费,计费粒度为分钟,每天累计检测总时长进行计量统计,每天检测总时长不足一分钟的按照一分钟进行计费。

前提条件

已安装PHP依赖。关于安装PHP依赖的具体操作,请参见安装PHP依赖

说明

请一定按照安装PHP依赖页面中的版本安装,否则会导致调用失败。

提交语音异步检测任务

接口

描述

支持的地域

VoiceAsyncScanRequest

异步检测语音流或语音文件中是否包含违规内容。

  • 支持的语音流协议:HTTP、RTMP、RTSP

  • 支持的语音流格式:M3U8、FLV

cn-shanghai:华东2(上海)

示例代码

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $task1 = array('dataId' => '业务数据ID', 'url' => '待检测音频链接地址');

    /**
     * 语音垃圾内容检测: antispam。
     * 如果是语音流检测,则live参数修改为true。
     * callback、seed:用于回调通知,可选参数。
     **/
    $result = Green::v20180509()->voiceAsyncScan()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->body(json_encode(array('tasks' => array($task1),
            'scenes' => array('antispam'),
            'bizType' => '业务场景',
            'callback' => '回调地址',
            'seed' => '随机字符串')))
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}

查询语音异步检测结果

接口

描述

支持的地域

VoiceAsyncScanResultsRequest

查询异步语音检测结果。

cn-shanghai:华东2(上海)

示例代码

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
    /**
     * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
     * 常见获取环境变量方式:
     * 获取RAM用户AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 获取RAM用户AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建议从环境变量中获取RAM用户AccessKey ID', '建议从环境变量中获取RAM用户AccessKey Secret')
        ->timeout(10) // 超时10秒,使用该客户端且没有单独设置的请求都使用此设置
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,使用该客户端且没有单独设置的请求都使用此设置
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    $result = Green::v20180509()->voiceAsyncScanResults()
        ->timeout(10) // 超时10秒,request超时设置,仅对当前请求有效
        ->connectTimeout(3) // 连接超时3秒,当单位小于1,则自动转换为毫秒,request超时设置,仅对当前请求有效
        ->body(json_encode(array('异步音频检测任务ID')))
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}