語音審核增強版支持SDK方式調用和HTTPS原生方式調用。推薦您使用SDK接入,可免去簽名驗證以及Body格式構建等細節步驟。本文介紹語音審核增強版接入的方式。
步驟一:開通服務
訪問開通服務頁面,開通內容(語音)審核增強版服務。接口接入使用后系統會按使用量自動出賬,具體信息,請參見計費說明。您也可以購買按量抵扣資源包,資源包相較于后付費存在一定階梯折扣,適合使用量級可預期和較大的用戶。
開通內容(語音)審核增強版服務后,默認付費方式是按量后付費,且按照實際用量結算當日費用,不調用服務不收費。
步驟二:為RAM用戶授權
在接入SDK或者API之前,您需要為RAM用戶授權。您可以為阿里云賬號和RAM用戶創建一個訪問密鑰(AccessKey)。在調用阿里云API時您需要使用AccessKey完成身份驗證。獲取方式,請參見獲取AccessKey。
步驟三:安裝并接入語音審核服務
目前支持的接入地域如下:
地域 | 外網接入地址 | 內網接入地址 |
華東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_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
環境變量來創建默認的訪問憑證。調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。您在接入SDK代碼示例之前,請先配置環境變量。具體操作,請參見身份驗證配置。
Java SDK
支持Java 1.8及以上版本。
原始代碼,請參見Java SDK源碼或者Java SDK源碼(OSS路徑)。
在pom.xml中加入相應依賴,就可以在Maven工程中使用SDK。
在dependencies中添加如下依賴:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.7</version> </dependency>
接入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及以上版本。
執行如下命令引入相關依賴。
pip install alibabacloud_green20220302==2.2.7
接入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及以上版本。
執行如下命令引入相關依賴。
composer require alibabacloud/green-20220302
接入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
執行如下命令引入相關依賴。
go get github.com/alibabacloud-go/green-20220302
接入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
執行如下命令引入相關依賴。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.7
接入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
執行如下命令引入相關依賴。
npm install @alicloud/pop-core
接入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是用于加密簽名字符串和服務器端驗證簽名字符串的密鑰,必須嚴格保密,只有阿里云和用戶知道。
用戶在訪問時,按照下面的方法對請求進行簽名處理:
使用請求參數構造規范化的請求字符串(Canonicalized Query String)。
按照參數名稱的字典順序對請求中所有的請求參數(包括公共請求參數和給定了的請求接口的自定義參數,但不能包括公共請求參數中提到的Signature參數本身)進行排序。
對相關請求參數的名稱和值進行編碼。名稱和值要使用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
,而不是加號(+)。
對編碼后的參數名稱和值使用英文等號(=)進行連接。
將英文等號連接得到字符串按參數名稱的字典順序依次使用&符號連接,即得到規范化請求字符串。
使用 a.i 構造的規范化字符串按照下面的規則構造用于計算簽名的字符串:
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)
說明其中HTTPMethod是提交請求用的HTTP方法,比如POST。percentEncode(/)是按照 a.ii 中描述的URL編碼規則對字符(/)進行編碼得到的值,即
%2F
。percentEncode(CanonicalQueryString)是對 a.i 中構造的規范化請求字符串按 a.ii 中描述的URL編碼規則編碼后得到的字符串。按照RFC2104的定義,使用上面的用于簽名的字符串計算簽名HMAC值。
說明注意計算簽名時使用的Key就是用戶持有的AccessKey Secret并加上一個
&
字符(ASCII:38),使用的哈希算法是SHA1。按照Base64編碼規則把上面的HMAC值編碼成字符串,即得到簽名值(Signature)。
將得到的簽名值作為Signature參數添加到請求參數中,即完成對請求簽名的過程。
說明得到的簽名值在作為最后的請求參數值提交給內容安全服務器時,要和其他參數一樣,按照RFC3986的規則進行URL編碼。
如果您在使用過程中出現問題,請加入釘群(釘群號:35573806),聯系產品技術專家進行咨詢。