日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

語音審核增強版SDK及接入指南

語音審核增強版支持SDK方式調用和HTTPS原生方式調用。推薦您使用SDK接入,可免去簽名驗證以及Body格式構建等細節步驟。本文介紹語音審核增強版接入的方式。

步驟一:開通服務

訪問開通服務頁面,開通內容(語音)審核增強版服務。接口接入使用后系統會按使用量自動出賬,具體信息,請參見計費說明。您也可以購買按量抵扣資源包,資源包相較于后付費存在一定階梯折扣,適合使用量級可預期和較大的用戶。

開通內容(語音)審核增強版服務后,默認付費方式是按量后付費,且按照實際用量結算當日費用,不調用服務不收費。

步驟二:為RAM用戶授權

在接入SDK或者API之前,您需要為RAM用戶授權。您可以為阿里云賬號和RAM用戶創建一個訪問密鑰(AccessKey)。在調用阿里云API時您需要使用AccessKey完成身份驗證。獲取方式,請參見獲取AccessKey

  1. 使用RAM管理員登錄RAM控制臺

  2. 創建RAM用戶。

    具體操作,請參見創建RAM用戶

  3. 向RAM用戶授權系統策略權限:AliyunYundunGreenWebFullAccess

    具體操作,請參見為RAM用戶授權

    完成以上配置后,您可以使用RAM用戶調用內容安全API。

步驟三:安裝并接入語音審核服務

目前支持的接入地域如下:

地域

外網接入地址

內網接入地址

華東2(上海)

green-cip.cn-shanghai.aliyuncs.com

green-cip-vpc.cn-shanghai.aliyuncs.com

華北2(北京)

green-cip.cn-beijing.aliyuncs.com

green-cip-vpc.cn-beijing.aliyuncs.com

華東1(杭州)

green-cip.cn-hangzhou.aliyuncs.com

green-cip-vpc.cn-hangzhou.aliyuncs.com

華南1(深圳)

https://green-cip.cn-shenzhen.aliyuncs.com

green-cip-vpc.cn-shenzhen.aliyuncs.com

新加坡

green-cip.ap-southeast-1.aliyuncs.com

green-cip-vpc.ap-southeast-1.aliyuncs.com

說明

如果需要其他語言的SDK示例代碼,您可以通過OpenAPI 開發者門戶在線調試工具調試API接口,該工具會自動生成相應API的SDK調用示例代碼。在線調試API接口如下:

阿里云SDK代碼通過定義ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET環境變量來創建默認的訪問憑證。調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。您在接入SDK代碼示例之前,請先配置環境變量。具體操作,請參見身份驗證配置

Java SDK

支持Java 1.8及以上版本。

原始代碼,請參見Java SDK源碼或者Java SDK源碼(OSS路徑)

在pom.xml中加入相應依賴,就可以在Maven工程中使用SDK。

  1. dependencies中添加如下依賴:

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>green20220302</artifactId>
      <version>2.2.7</version>
    </dependency>
  2. 接入Java SDK。

    • 提交語音檢測任務代碼示例

      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONObject;
      import com.aliyun.green20220302.Client;
      import com.aliyun.green20220302.models.VoiceModerationRequest;
      import com.aliyun.green20220302.models.VoiceModerationResponse;
      import com.aliyun.green20220302.models.VoiceModerationResponseBody;
      import com.aliyun.teaopenapi.models.Config;
      
      
      public class VoiceModerationDemo {
      
          public static void main(String[] args) throws Exception {
              Config config = new Config();
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 常見獲取環境變量方式:
               * 方式一:
               *     獲取RAM用戶AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               * 方式二:
               *     獲取RAM用戶AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               */
              config.setAccessKeyId("建議從環境變量中獲取RAM用戶AccessKey ID");
              config.setAccessKeySecret("建議從環境變量中獲取RAM用戶AccessKey Secret");
              // 接入區域和地址請根據實際情況修改。
              config.setRegionId("cn-shanghai");
              config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
              // 連接時超時時間,單位毫秒(ms)。
              config.setReadTimeout(6000);
              // 讀取時超時時間,單位毫秒(ms)。
              config.setConnectTimeout(3000);
         
              // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
              Client client = new Client(config);
      
              JSONObject serviceParameters = new JSONObject();
              serviceParameters.put("url", "https://xxxx/xxx/sample.wav");
      
              VoiceModerationRequest voiceModerationRequest = new VoiceModerationRequest();
              // 檢測類型:audio_media_detection表示語音文件檢測,live_stream_detection表示語音直播流檢測。
              voiceModerationRequest.setService("audio_media_detection");
              voiceModerationRequest.setServiceParameters(serviceParameters.toJSONString());
      
              try {
                  VoiceModerationResponse response = client.voiceModeration(voiceModerationRequest);
                  if (response.getStatusCode() == 200) {
                      VoiceModerationResponseBody result = response.getBody();
                      System.out.println(JSON.toJSONString(result));
                      System.out.println("requestId = " + result.getRequestId());
                      System.out.println("code = " + result.getCode());
                      System.out.println("msg = " + result.getMessage());
                      Integer code = result.getCode();
                      if (200 == code) {
                          VoiceModerationResponseBody.VoiceModerationResponseBodyData data = result.getData();
                          System.out.println("taskId = [" + data.getTaskId() + "]");
                      } else {
                          System.out.println("voice moderation not success. code:" + code);
                      }
                  } else {
                      System.out.println("response not success. status:" + response.getStatusCode());
                  }
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
    • 獲取語音檢測任務代碼示例

      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONObject;
      import com.aliyun.green20220302.Client;
      import com.aliyun.green20220302.models.VoiceModerationResultRequest;
      import com.aliyun.green20220302.models.VoiceModerationResultResponse;
      import com.aliyun.green20220302.models.VoiceModerationResultResponseBody;
      import com.aliyun.teaopenapi.models.Config;
      
      
      public class VoiceModerationResultDemo {
      
          public static void main(String[] args) throws Exception {
              Config config = new Config();
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 常見獲取環境變量方式:
               * 方式一:
               *     獲取RAM用戶AccessKeyID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKeySecret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               * 方式二:
               *     獲取RAM用戶AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               */
              config.setAccessKeyId("建議從環境變量中獲取RAM用戶AccessKey ID");
              config.setAccessKeySecret("建議從環境變量中獲取RAM用戶AccessKey Secret");
              // 接入區域和地址請根據實際情況修改。
              config.setRegionId("cn-shanghai");
              config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
              // 連接時超時時間,單位毫秒(ms)。
              config.setReadTimeout(6000);
              // 讀取時超時時間,單位毫秒(ms)。
              config.setConnectTimeout(3000);
      
              // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
              Client client = new Client(config);
      
              JSONObject serviceParameters = new JSONObject();
              // 提交任務時返回的taskId。
              serviceParameters.put("taskId", "檢測任務返回的taskID");
      
      
              VoiceModerationResultRequest voiceModerationResultRequest = new VoiceModerationResultRequest();
              // 檢測類型:audio_media_detection表示語音文件檢測,live_stream_detection表示語音直播流檢測。
              voiceModerationResultRequest.setService("audio_media_detection");
              voiceModerationResultRequest.setServiceParameters(serviceParameters.toJSONString());
      
              try {
                  VoiceModerationResultResponse response = client.voiceModerationResult(voiceModerationResultRequest);
                  if (response.getStatusCode() == 200) {
                      VoiceModerationResultResponseBody result = response.getBody();
                      System.out.println("requestId=" + result.getRequestId());
                      System.out.println("code=" + result.getCode());
                      System.out.println("msg=" + result.getMessage());
                      if (200 == result.getCode()) {
                          VoiceModerationResultResponseBody.VoiceModerationResultResponseBodyData data = result.getData();
                          System.out.println("sliceDetails = " + JSON.toJSONString(data.getSliceDetails()));
                          System.out.println("taskId = " + data.getTaskId());
                          System.out.println("url = " + data.getUrl());
                      } else {
                          System.out.println("voice moderation result not success. code:" + result.getCode());
                      }
                  } else {
                      System.out.println("response not success. status:" + response.getStatusCode());
                  }
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
    • 取消直播流檢測任務

      import com.alibaba.fastjson.JSONObject;
      import com.aliyun.green20220302.Client;
      import com.aliyun.green20220302.models.VoiceModerationCancelRequest;
      import com.aliyun.green20220302.models.VoiceModerationCancelResponse;
      import com.aliyun.green20220302.models.VoiceModerationCancelResponseBody;
      import com.aliyun.teaopenapi.models.Config;
      
      
      public class VoiceModerationCancelDemo {
      
          public static void main(String[] args) throws Exception {
              Config config = new Config();
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 常見獲取環境變量方式:
               * 方式一:
               *     獲取RAM用戶AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               * 方式二:
               *     獲取RAM用戶AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
               *     獲取RAM用戶AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
               */
              config.setAccessKeyId("建議從環境變量中獲取RAM用戶AccessKey ID");
              config.setAccessKeySecret("建議從環境變量中獲取RAM用戶AccessKey Secret");
              // 接入區域和地址請根據實際情況修改。
              config.setRegionId("cn-shanghai");
              config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
              // 連接時超時時間,單位毫秒(ms)。
              config.setReadTimeout(6000);
              // 讀取時超時時間,單位毫秒(ms)。
              config.setConnectTimeout(3000);
      
              // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
              Client client = new Client(config);
      
              JSONObject serviceParameters = new JSONObject();
              // 提交任務時返回的taskId。
              serviceParameters.put("taskId", "檢測任務返回的taskId");
      
              VoiceModerationCancelRequest voiceModerationCancelRequest = new VoiceModerationCancelRequest();
              // 檢測類型:audio_media_detection表示語音文件檢測,live_stream_detection表示語音直播流檢測。
              voiceModerationCancelRequest.setService("live_stream_detection");
              voiceModerationCancelRequest.setServiceParameters(serviceParameters.toJSONString());
      
              try {
                  VoiceModerationCancelResponse response = client.voiceModerationCancel(voiceModerationCancelRequest);
                  if (response.getStatusCode() == 200) {
                      VoiceModerationCancelResponseBody result = response.getBody();
                      System.out.println("requestId=" + result.getRequestId());
                      System.out.println("code=" + result.getCode());
                      System.out.println("msg=" + result.getMessage());
                      if (200 != result.getCode()) {
                          System.out.println("voice moderation cancel not success. code:" + result.getCode());
                      }
                  } else {
                      System.out.println("response not success. status:" + response.getStatusCode());
                  }
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }

Python SDK

支持Python 3.6及以上版本。

原始代碼,請參見Python SDK源碼

支持Python 3.6及以上版本。

  1. 執行如下命令引入相關依賴。

    pip install alibabacloud_green20220302==2.2.7
  2. 接入Python SDK。

    • 提交語音檢測任務代碼示例

      # coding=utf-8
      # python version >= 3.6
      from alibabacloud_green20220302.client import Client
      from alibabacloud_green20220302 import models
      from alibabacloud_tea_openapi.models import Config
      import json
      
      config = Config(
          # 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
          # 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
          # 常見獲取環境變量方式:
          # 獲取RAM用戶AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
          # 獲取RAM用戶AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
          access_key_id='建議從環境變量中獲取RAM用戶AccessKey ID',
          access_key_secret='建議從環境變量中獲取RAM用戶AccessKey Secret',
          # 連接超時時間,單位毫秒(ms)。
          connect_timeout=10000,
          # 讀超時時間,單位毫秒(ms)。
          read_timeout=3000,
          region_id='cn-shanghai',
          endpoint='green-cip.cn-shanghai.aliyuncs.com'
      )
      
      # 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      clt = Client(config)
      
      serviceParameters = {
          'url': 'https://xxxx/xxx/sample.wav',
      }
      voiceModerationRequest = models.VoiceModerationRequest(
          # 檢測類型:audio_media_detection表示語音文件檢測,live_stream_detection表示語音直播流檢測。
          service='audio_media_detection',
          service_parameters=json.dumps(serviceParameters)
      )
      
      try:
          response = clt.voice_moderation(voiceModerationRequest)
          if response.status_code == 200:
              # 調用成功。
              # 獲取審核結果。
              result = response.body
              print('response success. result:{}'.format(result))
          else:
              print('response not success. status:{} ,result:{}'.format(response.status_code, response))
      except Exception as err:
          print(err)
    • 獲取語音檢測任務結果

      # coding=utf-8
      # python version >= 3.6
      from alibabacloud_green20220302.client import Client
      from alibabacloud_green20220302 import models
      from alibabacloud_tea_openapi.models import Config
      import json
      
      config = Config(
          # 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
          # 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
          # 常見獲取環境變量方式:
          # 獲取RAM用戶AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
          # 獲取RAM用戶AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
          access_key_id='建議從環境變量中獲取RAM用戶AccessKey ID',
          access_key_secret='建議從環境變量中獲取RAM用戶AccessKey Secret',
          # 連接超時時間,單位毫秒(ms)。
          connect_timeout=10000,
          # 讀超時時間,單位毫秒(ms)。
          read_timeout=3000,
          region_id='cn-shanghai',
          endpoint='green-cip.cn-shanghai.aliyuncs.com'
      )
      
      # 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      clt = Client(config)
      
      # 提交任務時返回的taskId。
      serviceParameters = {
          "taskId": '檢測任務返回的taskId'
      }
      voiceModerationResultRequest = models.VoiceModerationResultRequest(
          # 檢測類型。
          service='audio_media_detection',
          service_parameters=json.dumps(serviceParameters)
      )
      
      try:
          response = clt.voice_moderation_result(voiceModerationResultRequest)
          if response.status_code == 200:
              # 調用成功。
              # 獲取審核結果。
              result = response.body
              print('response success. result:{}'.format(result))
          else:
              print('response not success. status:{} ,result:{}'.format(response.status_code, response))
      except Exception as err:
          print(err)
    • 取消直播流檢測任務

      # coding=utf-8
      # python version >= 3.6
      from alibabacloud_green20220302.client import Client
      from alibabacloud_green20220302 import models
      from alibabacloud_tea_openapi.models import Config
      import json
      
      config = Config(
          # 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
          # 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
          # 常見獲取環境變量方式:
          # 獲取RAM用戶AccessKey ID:os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
          # 獲取RAM用戶AccessKey Secret:os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
          access_key_id='建議從環境變量中獲取RAM用戶AccessKey ID',
          access_key_secret='建議從環境變量中獲取RAM用戶AccessKey Secret',
          # 連接超時時間,單位毫秒(ms)。
          connect_timeout=10000,
          # 讀超時時間,單位毫秒(ms)。
          read_timeout=3000,
          region_id='cn-shanghai',
          endpoint='green-cip.cn-shanghai.aliyuncs.com'
      )
      
      # 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      clt = Client(config)
      
      # 提交任務時返回的taskId。
      serviceParameters = {
          "taskId": '檢測任務返回的taskId'
      }
      voiceModerationCancelRequest = models.VoiceModerationCancelRequest(
          # 檢測類型。
          service='live_stream_detection',
          service_parameters=json.dumps(serviceParameters)
      )
      
      try:
          response = clt.voice_moderation_cancel(voiceModerationCancelRequest)
          if response.status_code == 200:
              # 調用成功。
              # 獲取審核結果。
              result = response.body
              print('response success. result:{}'.format(result))
          else:
              print('response not success. status:{} ,result:{}'.format(response.status_code, response))
      except Exception as err:
          print(err)

PHP SDK

支持PHP 5.6及以上版本。

原始代碼,請參見PHP SDK源碼

PHP SDK

支持PHP 5.6及以上版本。

  1. 執行如下命令引入相關依賴。

    composer require alibabacloud/green-20220302
  2. 接入PHP SDK。

    • 提交語音檢測任務代碼示例

      <?php
        require('vendor/autoload.php');
      
      use AlibabaCloud\SDK\Green\V20220302\Models\VoiceModerationRequest;
      use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
      use Darabonba\OpenApi\Models\Config;
      use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
      use AlibabaCloud\SDK\Green\V20220302\Green;
      
      $config = new Config([]);
      /**
       * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
       * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
       * 常見獲取環境變量方式:
       * 獲取RAM用戶AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
       * 獲取RAM用戶AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
       */
      $config->accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID";
      $config->accessKeySecret = "建議從環境變量中獲取RAM用戶AccessKey Secret";
      // 接入區域和地址請根據實際情況修改。
      $config->regionId = "cn-shanghai";
      $config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
      // 設置http代理。
      // $config->httpProxy = "http://10.10.xx.xx:xxxx";
      // 設置https代理。
      // $config->httpsProxy = "http://10.10.xx.xx:xxxx";
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      $client = new Green($config);
      
      $request = new VoiceModerationRequest();
      // 檢測類型:audio_media_detection語音文件檢測;live_stream_detection語音直播流檢測。
      $request->service = "audio_media_detection";
      $serviceParameters = array('url' => 'https://xxxx/xxx/sample.wav');
      
      $request->serviceParameters = json_encode($serviceParameters);
      
      $runtime = new RuntimeOptions();
      $runtime->readTimeout = 6000;
      $runtime->connectTimeout = 3000;
      
      try {
        $response = $client->voiceModeration($request, $runtime);
        print_r($response->body);
        if (200 == $response->statusCode) {
          $body = $response->body;
          print_r("requestId = " . $body->requestId);
          print_r("code = " . $body->code);
          print_r("message = " . $body->message);
          if (200 == $body->code) {
            $data = $body->data;
            print_r("taskId = " . $data->taskId);
          } else {
            print_r("voice moderation not success. code:" . $body->code);
          }
        } else {
          print_r("response not success. code:" . $response->statusCode);
        }
      } catch (TeaUnableRetryError $e) {
        var_dump($e->getMessage());
        var_dump($e->getErrorInfo());
        var_dump($e->getLastException());
        var_dump($e->getLastRequest());
      }
    • 獲取語音檢測任務結果代碼示例

      <?php
      require('vendor/autoload.php');
      
      use AlibabaCloud\SDK\Green\V20220302\Models\VoiceModerationResultRequest;
      use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
      use Darabonba\OpenApi\Models\Config;
      use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
      use AlibabaCloud\SDK\Green\V20220302\Green;
      
      $config = new Config([]);
      /**
       * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
       * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
       * 常見獲取環境變量方式:
       * 獲取RAM用戶AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
       * 獲取RAM用戶AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
       */
      $config->accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID";
      $config->accessKeySecret = "建議從環境變量中獲取RAM用戶AccessKey Secret";
      // 接入區域和地址請根據實際情況修改。
      $config->regionId = "cn-shanghai";
      $config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
      // 設置http代理。
      // $config->httpProxy = "http://10.10.xx.xx:xxxx";
      // 設置https代理。
      // $config->httpsProxy = "http://10.10.xx.xx:xxxx";
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      $client = new Green($config);
      
      $request = new VoiceModerationResultRequest();
      // 檢測類型:audio_media_detection語音文件檢測;live_stream_detection語音直播流檢測。
      $request->service = "audio_media_detection";
      // 提交任務時返回的taskId。
      $serviceParameters = array('taskId' => 'au_f_O5z5iaIis3iI0X2oNYj7qa-1x****');
      
      $request->serviceParameters = json_encode($serviceParameters);
      
      $runtime = new RuntimeOptions();
      $runtime->readTimeout = 6000;
      $runtime->connectTimeout = 3000;
      
      try {
          $response = $client->voiceModerationResult($request, $runtime);
          print_r($response->body);
          if (200 == $response->statusCode) {
              $body = $response->body;
              print_r("requestId = " . $body->requestId);
              print_r("code = " . $body->code);
              print_r("message = " . $body->message);
              if (200 == $body->code) {
                  $data = $body->data;
                  print_r("liveId = " . $data->liveId);
                  print_r("sliceDetails = " . $data->sliceDetails);
                  print_r("taskId = " . $data->taskId);
                  print_r("url = " . $data->url);
              } else {
                  print_r("voice moderation result not success. code:" . $body->code);
              }
          } else {
              print_r("response not success. code:" . $response->statusCode);
          }
      } catch (TeaUnableRetryError $e) {
          var_dump($e->getMessage());
          var_dump($e->getErrorInfo());
          var_dump($e->getLastException());
          var_dump($e->getLastRequest());
      }
    • 取消直播流檢測任務代碼示例

      <?php
      require('vendor/autoload.php');
      
      use AlibabaCloud\SDK\Green\V20220302\Models\VoiceModerationCancelRequest;
      use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
      use Darabonba\OpenApi\Models\Config;
      use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
      use AlibabaCloud\SDK\Green\V20220302\Green;
      
      $config = new Config([]);
      /**
       * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
       * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
       * 常見獲取環境變量方式:
       * 獲取RAM用戶AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
       * 獲取RAM用戶AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
       */
      $config->accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID";
      $config->accessKeySecret = "建議從環境變量中獲取RAM用戶AccessKey Secret";
      // 接入區域和地址請根據實際情況修改。
      $config->regionId = "cn-shanghai";
      $config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
      // 設置http代理。
      // $config->httpProxy = "http://10.10.xx.xx:xxxx";
      // 設置https代理。
      // $config->httpsProxy = "http://10.10.xx.xx:xxxx";
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      $client = new Green($config);
      
      $request = new VoiceModerationCancelRequest();
      // 檢測類型:audio_media_detection語音文件檢測;live_stream_detection語音直播流檢測。
      $request->service = "audio_media_detection";
      // 提交任務時返回的taskId。
      $serviceParameters = array('taskId' => 'au_f_O5z5iaIis3iI0X2oNYj7qa-1x****');
      
      $request->serviceParameters = json_encode($serviceParameters);
      
      $runtime = new RuntimeOptions();
      $runtime->readTimeout = 6000;
      $runtime->connectTimeout = 3000;
      
      try {
          $response = $client->voiceModerationCancel($request, $runtime);
          print_r($response->body);
          if (200 == $response->statusCode) {
              $body = $response->body;
              print_r("requestId = " . $body->requestId);
              print_r("code = " . $body->code);
              print_r("message = " . $body->message);
              if (200 != $body->code) {
                  print_r("voice moderation cancel not success. code:" . $body->code);
              }
          } else {
              print_r("response not success. code:" . $response->statusCode);
          }
      } catch (TeaUnableRetryError $e) {
          var_dump($e->getMessage());
          var_dump($e->getErrorInfo());
          var_dump($e->getLastException());
          var_dump($e->getLastRequest());
      }

Go SDK

Go SDK

  1. 執行如下命令引入相關依賴。

    go get github.com/alibabacloud-go/green-20220302
  2. 接入Go SDK。

    • 提交語音檢測任務代碼示例

      package main
      
      import (
          "encoding/json"
          "fmt"
          openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
          green "github.com/alibabacloud-go/green-20220302/client"
          "github.com/alibabacloud-go/tea/tea"
          "net/http"
      )
      
      func main() {
          config := &openapi.Config{
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
               * 常見獲取環境變量方式:
               * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
               * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
               */
              AccessKeyId: tea.String("建議從環境變量中獲取RAM用戶AccessKey ID"),
              AccessKeySecret: tea.String("建議從環境變量中獲取RAM用戶AccessKey Secret"),
              // 填寫您的接入地域。
              RegionId: tea.String("cn-shanghai"),
              Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
              // 設置http代理。
              //HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
              // 設置https代理。
              //HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
              /**
               * 請設置超時時間。服務端全鏈路處理超時時間為10秒,請做相應設置。
               * 如果您設置的ReadTimeout小于服務端處理的時間,程序中會獲得一個ReadTimeout異常。
               */
              ConnectTimeout: tea.Int(3000),
              ReadTimeout:    tea.Int(6000),
          }
          // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
          client, _err := green.NewClient(config)
          if _err != nil {
              panic(_err)
          }
          // 待檢測語音URL。
          serviceParameters, _ := json.Marshal(
              map[string]interface{}{
                  "url": "https://xxxx/xxx/sample.wav",
              },
          )
          request := green.VoiceModerationRequest{
              // 語音檢測service。
              Service:           tea.String("audio_media_detection"),
              ServiceParameters: tea.String(string(serviceParameters)),
          }
          result, _err := client.VoiceModeration(&request)
          if _err != nil {
              panic(_err)
          }
          statusCode := tea.IntValue(tea.ToInt(result.StatusCode))
          if statusCode == http.StatusOK {
              voiceModerationResponse := result.Body
              fmt.Println("response success. response:" + voiceModerationResponse.String())
              if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
                  voiceModerationResponseData := voiceModerationResponse.Data
                  fmt.Println("response taskId:" + tea.StringValue(voiceModerationResponseData.TaskId))
              } else {
                  fmt.Println("voice moderation not success. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
              }
          } else {
              fmt.Println("response not success. status:" + tea.ToString(statusCode))
          }
      }
    • 獲取語音檢測任務結果代碼示例

      package main
      
      import (
          "encoding/json"
          "fmt"
          openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
          green "github.com/alibabacloud-go/green-20220302/client"
          "github.com/alibabacloud-go/tea/tea"
          "net/http"
      )
      
      func main() {
          config := &openapi.Config{
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
               * 常見獲取環境變量方式:
               * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
               * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
               */
              AccessKeyId: tea.String("建議從環境變量中獲取RAM用戶AccessKey ID"),
              AccessKeySecret: tea.String("建議從環境變量中獲取RAM用戶AccessKey Secret"),
              // 填寫您的接入地域。
              RegionId: tea.String("cn-shanghai"),
              Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
              // 設置http代理。
              // HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
              // 設置https代理。
              // HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
              /**
               * 請設置超時時間。服務端全鏈路處理超時時間為10秒,請做相應設置。
               * 如果您設置的ReadTimeout小于服務端處理的時間,程序中會獲得一個ReadTimeout異常。
               */
              ConnectTimeout: tea.Int(3000),
              ReadTimeout:    tea.Int(6000),
          }
          // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
          client, _err := green.NewClient(config)
          if _err != nil {
              panic(_err)
          }
      
          serviceParameters, _ := json.Marshal(
              map[string]interface{}{
                  "taskId": "<任務ID>",
              },
          )
          request := green.VoiceModerationResultRequest{
              // 語音檢測service。
              Service:           tea.String("audio_media_detection"),
              ServiceParameters: tea.String(string(serviceParameters)),
          }
          result, _err := client.VoiceModerationResult(&request)
          if _err != nil {
              panic(_err)
          }
          statusCode := tea.IntValue(tea.ToInt(result.StatusCode))
          if statusCode == http.StatusOK {
              voiceModerationResponse := result.Body
              fmt.Println("response success. response:" + voiceModerationResponse.String())
              if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
                  resultResponseBodyData := voiceModerationResponse.Data
                  fmt.Println("response liveId:" + tea.StringValue(resultResponseBodyData.LiveId))
                  fmt.Println("response sliceDetails:" + tea.ToString(resultResponseBodyData.SliceDetails))
              } else {
                  fmt.Println("get voice moderation result not success. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
              }
          } else {
              fmt.Println("response not success. status:" + tea.ToString(statusCode))
          }
      }
                                      
    • 取消直播流檢測任務代碼示例

      package main
      
      import (
          "encoding/json"
          "fmt"
          openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
          green "github.com/alibabacloud-go/green-20220302/client"
          "github.com/alibabacloud-go/tea/tea"
          "net/http"
      )
      
      func main() {
          config := &openapi.Config{
              /**
               * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
               * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
               * 常見獲取環境變量方式:
               * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
               * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
               */
              AccessKeyId: tea.String("建議從環境變量中獲取RAM用戶AccessKey ID"),
              AccessKeySecret: tea.String("建議從環境變量中獲取RAM用戶AccessKey Secret"),
              // 填寫您的接入地域。
              RegionId: tea.String("cn-shanghai"),
              Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
              // 設置http代理。
              // HttpProxy: tea.String("http://10.10.xx.xx:xxxx"),
              // 設置https代理。
              // HttpsProxy: tea.String("https://10.10.xx.xx:xxxx"),
              /**
               * 請設置超時時間。服務端全鏈路處理超時時間為10秒,請做相應設置。
               * 如果您設置的ReadTimeout小于服務端處理的時間,程序中會獲得一個ReadTimeout異常。
               */
              ConnectTimeout: tea.Int(3000),
              ReadTimeout:    tea.Int(6000),
          }
          // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
          client, _err := green.NewClient(config)
          if _err != nil {
              panic(_err)
          }
      
          serviceParameters, _ := json.Marshal(
              map[string]interface{}{
                  "taskId": "<待取消任務ID>",
              },
          )
          request := green.VoiceModerationCancelRequest{
              // 語音檢測service。
              Service:           tea.String("audio_media_detection"),
              ServiceParameters: tea.String(string(serviceParameters)),
          }
          result, _err := client.VoiceModerationCancel(&request)
          if _err != nil {
              panic(_err)
          }
          statusCode := tea.IntValue(tea.ToInt(result.StatusCode))
          if statusCode == http.StatusOK {
              cancelResponseBody := result.Body
              fmt.Println("response success. response:" + cancelResponseBody.String())
              if tea.IntValue(tea.ToInt(cancelResponseBody.Code)) != 200 {
                  fmt.Println("voice moderation cancel not success. code:" + tea.ToString(tea.Int32Value(cancelResponseBody.Code)))
              }
          } else {
              fmt.Println("response not success. status:" + tea.ToString(statusCode))
          }
      }

C# SDK

  1. 執行如下命令引入相關依賴。

    dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.7
  2. 接入C# SDK。

    • 提交語音檢測任務代碼示例

      using Newtonsoft.Json;
      using Tea;
      
      namespace AlibabaCloud.SDK.Sample
      {
          public class Sample
          {
      
              /**
               * 使用AK&SK初始化賬號Client
               * @param accessKeyId
               * @param accessKeySecret
               * @return Client
               * @throws Exception
               */
              public static AlibabaCloud.SDK.Green20220302.Client CreateClient(string accessKeyId, string accessKeySecret)
              {
                  AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                  {
                      AccessKeyId = accessKeyId,
                      AccessKeySecret = accessKeySecret,
                  };
                  // 訪問的域名。
                  config.Endpoint = "green-cip.cn-shanghai.aliyuncs.com";
                  return new AlibabaCloud.SDK.Green20220302.Client(config);
              }
      
              public static void Main(string[] args)
              {
                  // 工程代碼泄露可能會導致AccessKey泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考,建議使用更安全的STS方式。
                  /**
                  * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
                  * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
                  * 常見獲取環境變量方式:
                  * 獲取RAM用戶AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
                  * 獲取RAM用戶AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
                  */
                  string accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID",
                  string accessKeySecret = '建議從環境變量中獲取RAM用戶AccessKey Secret',
                  // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
                  AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
                  // 構建語音檢測請求。
                  AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest voiceModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest();
                  // 語音檢測service。
                  voiceModerationRequest.Service="audio_media_detection";
                  Dictionary<String,Object> task=new Dictionary<string, object>();
                  // 待檢測語音鏈接,公網可訪問的URL。
                  task.Add("url","https://xxxx/xxx/sample.wav");
                  voiceModerationRequest.ServiceParameters=JsonConvert.SerializeObject(task);
                  // 創建RuntimeObject實例并設置運行參數。
                  AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                  runtime.ReadTimeout = 10000;
                  runtime.ConnectTimeout = 10000;
                  try
                  {
                      // 提交語音檢測任務。
                    AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResponse response= client.VoiceModerationWithOptions(voiceModerationRequest, runtime);
                  if(response is not null){
                      Console.WriteLine("response statusCode : "+response.StatusCode);
                      if (response.Body is not null){
                      Console.WriteLine("requestId : " + response.Body.RequestId);
                      Console.WriteLine("code : " + response.Body.Code);
                      Console.WriteLine("message : " + response.Body.Message);
                          if(response.Body.Data is not null){
                              Console.WriteLine("taskId : " + response.Body.Data.TaskId);
                          }
                      }
                  }
                  }
                  catch (TeaException error)
                  {
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
                  catch (Exception _error)
                  {
                      TeaException error = new TeaException(new Dictionary<string, object>
                      {
                          { "message", _error.Message }
                      });
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
              }
          }
      }
    • 獲取語音檢測任務結果代碼示例

      using Newtonsoft.Json;
      using Tea;
      
      namespace AlibabaCloud.SDK.Sample
      {
          public class Sample
          {
      
              /**
               * 使用AK&SK初始化賬號Client
               * @param accessKeyId
               * @param accessKeySecret
               * @return Client
               * @throws Exception
               */
              public static AlibabaCloud.SDK.Green20220302.Client CreateClient(string accessKeyId, string accessKeySecret)
              {
                  AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                  {
                      AccessKeyId = accessKeyId,
                      AccessKeySecret = accessKeySecret,
                  };
                  // 訪問的域名。
                  config.Endpoint = "green-cip.cn-shanghai.aliyuncs.com";
                  return new AlibabaCloud.SDK.Green20220302.Client(config);
              }
      
              public static void Main(string[] args)
              {
                  // 工程代碼泄露可能會導致AccessKey泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考,建議使用更安全的STS方式。
                  /**
                  * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
                  * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
                  * 常見獲取環境變量方式:
                  * 獲取RAM用戶AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
                  * 獲取RAM用戶AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
                  */
                  string accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID",
                  string accessKeySecret = '建議從環境變量中獲取RAM用戶AccessKey Secret',
                  // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
                  AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
                  // 構建語音檢測請求。
                  AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest();
                  // 語音檢測service。
                  voiceModerationResultRequest.Service="audio_media_detection";
                  Dictionary<String,Object> task=new Dictionary<string, object>();
                  // 待查詢結果的任務ID。
                  task.Add("taskId","<待查詢結果的任務ID>");
                  voiceModerationResultRequest.ServiceParameters=JsonConvert.SerializeObject(task);
                  // 創建RuntimeObject實例并設置運行參數。
                  AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                  runtime.ReadTimeout = 10000;
                  runtime.ConnectTimeout = 10000;
                  try
                  {
                      // 提交語音檢測任務。
                    AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultResponse response= client.VoiceModerationResultWithOptions(voiceModerationResultRequest, runtime);
                  if(response is not null){
                      Console.WriteLine("response statusCode : "+response.StatusCode);
                      if (response.Body is not null){
                      Console.WriteLine("requestId : " + response.Body.RequestId);
                      Console.WriteLine("code : " + response.Body.Code);
                      Console.WriteLine("message : " + response.Body.Message);
                          if(response.Body.Data is not null){
                              Console.WriteLine("taskId : " + response.Body.Data.TaskId);
                              Console.WriteLine("liveId : " + response.Body.Data.LiveId);
                              Console.WriteLine("url : " + response.Body.Data.Url);
                              Console.WriteLine("sliceDetails : " + JsonConvert.SerializeObject(response.Body.Data.SliceDetails));
                          }
                      }
                  }
                  }
                  catch (TeaException error)
                  {
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
                  catch (Exception _error)
                  {
                      TeaException error = new TeaException(new Dictionary<string, object>
                      {
                          { "message", _error.Message }
                      });
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
              }
          }
      }
    • 取消直播流檢測任務代碼示例

      using Tea;
      using Newtonsoft.Json;
      
      namespace AlibabaCloud.SDK.Sample
      {
          public class Sampless
          {
      
              /**
               * 使用AK&SK初始化賬號Client
               * @param accessKeyId
               * @param accessKeySecret
               * @return Client
               * @throws Exception
               */
              public static AlibabaCloud.SDK.Green20220302.Client CreateClient(string accessKeyId, string accessKeySecret)
              {
                  AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                  {
                      AccessKeyId = accessKeyId,
                      AccessKeySecret = accessKeySecret,
                  };
                  // 訪問的域名。
                  config.Endpoint = "green-cip.cn-shanghai.aliyuncs.com";
                  return new AlibabaCloud.SDK.Green20220302.Client(config);
              }
      
              public static void Main(string[] args)
              {
                  // 工程代碼泄露可能會導致AccessKey泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考,建議使用更安全的STS方式。
                  /**
                  * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
                  * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
                  * 常見獲取環境變量方式:
                  * 獲取RAM用戶AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
                  * 獲取RAM用戶AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
                  */
                  string accessKeyId = "建議從環境變量中獲取RAM用戶AccessKey ID",
                  string accessKeySecret = '建議從環境變量中獲取RAM用戶AccessKey Secret',   
                	// 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
                  AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
                  // 構建取消直播流任務檢測請求。
                  AlibabaCloud.SDK.Green20220302.Models.VoiceModerationCancelRequest voiceModerationCancelRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationCancelRequest();
                  // 語音檢測service。
                  voiceModerationCancelRequest.Service="audio_media_detection";
                  Dictionary<String,Object> task=new Dictionary<string, object>();
                  // 待取消直播流檢測任務ID。
                  task.Add("taskId","<待取消直播流檢測任務ID>");
                  voiceModerationCancelRequest.ServiceParameters=JsonConvert.SerializeObject(task);
                  // 創建RuntimeObject實例并設置運行參數。
                  AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
                  runtime.ReadTimeout = 10000;
                  runtime.ConnectTimeout = 10000;
                  try
                  {
                      // 提交取消語音檢測任務請求。
                      AlibabaCloud.SDK.Green20220302.Models.VoiceModerationCancelResponse response = client.VoiceModerationCancelWithOptions(voiceModerationCancelRequest, runtime);
                      if(response is not null){
                      Console.WriteLine("response statusCode : "+response.StatusCode);
                          if (response.Body is not null){
                          Console.WriteLine("requestId : " + response.Body.RequestId);
                          Console.WriteLine("code : " + response.Body.Code);
                          Console.WriteLine("message : " + response.Body.Message);
                          }
                      }
                  }
                  catch (TeaException error)
                  {
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
                  catch (Exception _error)
                  {
                      TeaException error = new TeaException(new Dictionary<string, object>
                      {
                          { "message", _error.Message }
                      });
                      // 如有需要,請打印error。
                      AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
                      Console.WriteLine("error : " + error);
                  }
              }
          }
      }

Node.js SDK

  1. 執行如下命令引入相關依賴。

    npm install @alicloud/pop-core
  2. 接入Node.js SDK。

    • 提交語音檢測任務代碼示例

      const RPCClient = require('@alicloud/pop-core').RPCClient;
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      var client = new RPCClient({
          /**
           * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
           * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
           * 常見獲取環境變量方式:
           * 獲取RAM用戶AccessKey ID:process.env['ALIBABA_CLOUD_ACCESS_KEY_ID']
           * 獲取RAM用戶AccessKey Secret:process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
           */
          accessKeyId: '建議從環境變量中獲取RAM用戶AccessKey ID',
          accessKeySecret: '建議從環境變量中獲取RAM用戶AccessKey Secret',
          endpoint: 'https://green-cip.cn-shanghai.aliyuncs.com',
          apiVersion: '2022-03-02'
      });
      
      var params = {
          // 語音檢測service。
          "Service": "audio_media_detection",
          // 待檢測語音鏈接。
          "ServiceParameters":JSON.stringify({
              "url": "<待檢測語音url>",
          })
      }
      
      var requestOption = {
          method: 'POST',
          formatParams: false,
      };
      
      client.request('VoiceModeration', params, requestOption).then((result) => {
          console.log(JSON.stringify(result));
      }, (ex) => {
          console.log(ex);
      })
    • 獲取語音檢測任務結果代碼示例

      const RPCClient = require('@alicloud/pop-core').RPCClient;
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      var client = new RPCClient({
          /**
           * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
           * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
           * 常見獲取環境變量方式:
           * 獲取RAM用戶AccessKey ID:process.env['ALIBABA_CLOUD_ACCESS_KEY_ID']
           * 獲取RAM用戶AccessKey Secret:process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
           */
          accessKeyId: '建議從環境變量中獲取RAM用戶AccessKey ID',
          accessKeySecret: '建議從環境變量中獲取RAM用戶AccessKey Secret',
          endpoint: 'https://green-cip.cn-shanghai.aliyuncs.com',
          apiVersion: '2022-03-02'
      });
      
      var params = {
          // 語音檢測service。
          "Service": "audio_media_detection",
          "ServiceParameters":JSON.stringify({
              "taskId": "<待獲取語音檢測結果的任務ID>",
          })
      }
      
      var requestOption = {
          method: 'POST',
          formatParams: false,
      };
      
      client.request('VoiceModerationResult', params, requestOption).then((result) => {
          console.log(JSON.stringify(result));
      }, (ex) => {
          console.log(ex);
      })
    • 取消直播流檢測任務代碼示例

      const RPCClient = require('@alicloud/pop-core').RPCClient;
      // 注意:此處實例化的client盡可能重復使用,提升檢測性能。避免重復建立連接。
      var client = new RPCClient({
          /**
           * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
           * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
           * 常見獲取環境變量方式:
           * 獲取RAM用戶AccessKey ID:process.env['ALIBABA_CLOUD_ACCESS_KEY_ID']
           * 獲取RAM用戶AccessKey Secret:process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
           */
          accessKeyId: '建議從環境變量中獲取RAM用戶AccessKey ID',
          accessKeySecret: '建議從環境變量中獲取RAM用戶AccessKey Secret',
          endpoint: 'https://green-cip.cn-shanghai.aliyuncs.com',
          apiVersion: '2022-03-02'
      });
      
      var params = {
          // 語音檢測service。
          "Service": "audio_media_detection",
          // 待取消直播流檢測任務ID。
          "ServiceParameters":JSON.stringify({
              "taskId": "<待取消直播流檢測任務ID>",
          })
      }
      
      var requestOption = {
          method: 'POST',
          formatParams: false,
      };
      
      client.request('VoiceModerationCancel', params, requestOption).then((result) => {
          console.log(JSON.stringify(result));
      }, (ex) => {
          console.log(ex);
      })

HTTPS原生調用

  • 調用方式

    服務請求地址:https://green-cip.{region}.aliyuncs.com

    協議:HTTPS

    方式:POST

  • 公共請求參數

    語音審核增強版API接口的入參數包含公共請求參數和具體接口請求參數,公共請求參數是指每一個接口都需要使用到的參數,以下表格是公共請求參數的詳細介紹。

    名稱

    類型

    是否必須

    描述

    Format

    String

    返回消息的格式。取值:

    • JSON(默認值)

    • XML

    Version

    String

    API版本號,使用YYYY-MM-DD日期格式,本版本為2022-03-02。

    AccessKeyId

    String

    阿里云頒發給用戶的訪問服務所用的密鑰ID。

    Signature

    String

    簽名結果串,關于簽名的計算方法,請參見下方簽名方式。

    SignatureMethod

    String

    簽名方式,目前支持HMAC-SHA1。

    Timestamp

    String

    請求的時間戳。日期格式按照ISO8601標準表示,并需要使用UTC時間。

    格式為:yyyy-MM-ddTHH:mm:ssZ。

    例如,北京時間2022年12月12日09點13分14秒表示為2022-12-12T01:13:14Z。

    SignatureVersion

    String

    簽名算法版本,取值為1.0。

    SignatureNonce

    String

    唯一隨機數,用于防止網絡重放攻擊。不同請求要使用不同的隨機數值。

    Action

    String

    取值:

    • VoiceModeration

    • VoiceModerationResult

    • VoiceModerationCancel

  • 公共返回參數

    您發送的每次接口調用請求,無論成功與否,系統都會返回唯一識別碼(RequestId)。其他返回參數會根據您調用的服務不同而返回不同的參數。

    {
        "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2",
        "Message":"SUCCESS",
        "Data":{
            "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1****"
        },
        "Code":200
    }
  • 代碼示例

    以下返回示例為了便于閱讀,做了格式化處理,實際返回結果沒有進行換行、縮進等格式化處理。

    • 審核任務代碼示例

      請求示例

      http://green-cip.cn-shanghai.aliyuncs.com/
      ?Format=JSON
      &Version=2022-03-02
      &Signature=vpEEL0zFHfxXYzSFV0n7%2FZiFL9o%3D
      &SignatureMethod=Hmac-SHA1
      &SignatureNonce=15215528852396
      &SignatureVersion=1.0
      &Action=VoiceModeration
      &AccessKeyId=123****cip
      &Timestamp=2023-02-03T12:00:00Z
      &Service=audio_media_detection
      &ServiceParameters={"url": "https://xxxxxx.aliyuncs.com/sample/****.wav"}

      正常返回示例

      {
          "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2",
          "Message":"SUCCESS",
          "Data":{
              "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1x****"
          },
          "Code":200
      }
    • 查詢任務代碼示例

      請求示例

      http://green-cip.cn-shanghai.aliyuncs.com/
      ?Format=JSON
      &Version=2022-03-02
      &Signature=vpEEL0zFHfxXYzSFV0n7%2FZiFL9o%3D
      &SignatureMethod=Hmac-SHA1
      &SignatureNonce=15215528852396
      &SignatureVersion=1.0
      &Action=VoiceModerationResult
      &AccessKeyId=123****cip
      &Timestamp=2023-02-03T12:00:00Z
      &Service=audio_media_detection
      &ServiceParameters={"taskId": "au_f_O5zxxxxxxxxxxxxxxxx-1x****"}

      正常返回示例

      {
          "RequestId":"926AD581-XXXXXXXXXXXXXX-7902AE",
          "Message":"success finished",
          "Data":{
              "SliceDetails":[
                  {
                      "EndTime":6,
                      "StartTime":0,
                      "Text":"今天天氣還不錯。",
                      "Labels":"",
                      "Url":"http://xxxx.aliyuncs.com/cip-media/voice/****.wav"
                  }
              ]
          },
          "Code":200
      }
  • 簽名方式

    語音審核增強版服務會對每個訪問的請求進行身份驗證,因此,需要在請求中包含簽名(Signature)信息。語音審核增強版服務通過使用AccessKey ID和AccessKey Secret進行對稱加密的方法來驗證請求的發送者身份。

    AccessKey ID和AccessKey Secret由阿里云官方頒發給訪問者(可以通過阿里云官方網站申請和管理),其中AccessKey ID用于標識訪問者身份;AccessKey Secret是用于加密簽名字符串和服務器端驗證簽名字符串的密鑰,必須嚴格保密,只有阿里云和用戶知道。

    用戶在訪問時,按照下面的方法對請求進行簽名處理:

    1. 使用請求參數構造規范化的請求字符串(Canonicalized Query String)。

      1. 按照參數名稱的字典順序對請求中所有的請求參數(包括公共請求參數和給定了的請求接口的自定義參數,但不能包括公共請求參數中提到的Signature參數本身)進行排序。

      2. 對相關請求參數的名稱和值進行編碼。名稱和值要使用UTF-8字符集進行URL編碼。

        說明

        一般支持URL編碼的庫(比如Java中的java.net.URLEncoder)都是按照application/x-www-form-urlencoded的MIME類型的規則進行編碼的。實現時可以直接使用這類方式進行編碼,把編碼后的字符串中加號(+)替換成%20、星號(*)替換成%2A、%7E替換回波浪號(~),即可得到上述規則描述的編碼字符串。

        URL編碼的編碼規則如下:

        • 對于字符A-Z、a-z、0-9以及字符中劃線(-)、下劃線(_)、半角句號(.)、波浪線(~)不編碼。

        • 對于其它字符編碼成%XY的格式,其中XY是字符對應ASCII碼的16進制表示。比如英文的雙引號(")對應的編碼就是%22

        • 對于擴展的UTF-8字符,編碼成%XY%ZA…的格式。

        • 需要說明的是英文空格( )要被編碼是%20,而不是加號(+)。

      3. 對編碼后的參數名稱和值使用英文等號(=)進行連接。

      4. 將英文等號連接得到字符串按參數名稱的字典順序依次使用&符號連接,即得到規范化請求字符串。

    2. 使用 a.i 構造的規范化字符串按照下面的規則構造用于計算簽名的字符串:

      StringToSign=
      HTTPMethod + "&" +
      percentEncode("/") + "&" +
      percentEncode(CanonicalizedQueryString)
      說明

      其中HTTPMethod是提交請求用的HTTP方法,比如POST。percentEncode(/)是按照 a.ii 中描述的URL編碼規則對字符(/)進行編碼得到的值,即%2F。percentEncode(CanonicalQueryString)是對 a.i 中構造的規范化請求字符串按 a.ii 中描述的URL編碼規則編碼后得到的字符串。

    3. 按照RFC2104的定義,使用上面的用于簽名的字符串計算簽名HMAC值。

      說明

      注意計算簽名時使用的Key就是用戶持有的AccessKey Secret并加上一個&字符(ASCII:38),使用的哈希算法是SHA1。

    4. 按照Base64編碼規則把上面的HMAC值編碼成字符串,即得到簽名值(Signature)。

    5. 將得到的簽名值作為Signature參數添加到請求參數中,即完成對請求簽名的過程。

      說明

      得到的簽名值在作為最后的請求參數值提交給內容安全服務器時,要和其他參數一樣,按照RFC3986的規則進行URL編碼。

如果您在使用過程中出現問題,請加入釘群(釘群號:35573806),聯系產品技術專家進行咨詢。