Voice Moderation 2.0 mendukung dua metode integrasi: SDK dan HTTPS native. SDK merupakan pendekatan yang direkomendasikan karena secara otomatis menangani verifikasi signature dan konstruksi request body.
Wilayah yang didukung
Wilayah | Titik akhir publik | Titik akhir VPC | Kode layanan yang didukung |
China (Shanghai) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com |
|
China (Shenzhen) | green-cip.cn-shenzhen.aliyuncs.com | green-cip-vpc.cn-shenzhen.aliyuncs.com |
|
China (Hangzhou) | green-cip.cn-hangzhou.aliyuncs.com | green-cip-vpc.cn-hangzhou.aliyuncs.com |
|
China (Beijing) | green-cip.cn-beijing.aliyuncs.com | green-cip-vpc.cn-beijing.aliyuncs.com |
|
Singapura |
|
|
|
AS (Virginia) |
|
|
|
Saat mengatur parameter service dalam permintaan VoiceModeration, gunakan kode layanan yang didukung di wilayah yang Anda pilih. Penggunaan kode layanan yang tidak didukung akan mengembalikan error.
Bahasa SDK yang didukung
Java 1.8 atau lebih baru
Python 3.6 atau lebih baru
PHP 5.6 atau lebih baru
Go
C#
Cara kerja
Voice Moderation 2.0 menggunakan pola asinkron submit-and-poll:
Kirimkan tugas moderasi dengan
VoiceModeration. API mengembalikantaskId.Kirimkan tugas moderasi suaraPoll hasilnya dengan
VoiceModerationResult, dengan menyertakantaskId.Uraikan hasilnya — periksa
riskLeveldansliceDetailsuntuk menentukan hasil moderasi.
Untuk file audio lokal tanpa URL publik, unggah terlebih dahulu ke bucket OSS Content Moderation menggunakan token sementara dari DescribeUploadToken, lalu kirimkan tugas moderasi menggunakan path objek OSS.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan layanan Voice Moderation 2.0. Metode penagihan default adalah pay-as-you-go. Anda dikenai biaya harian berdasarkan penggunaan aktual. Jika Anda tidak memanggil layanan ini, tidak ada biaya yang dikenakan.
Memiliki Pengguna Resource Access Management (RAM) dengan kebijakan sistem
AliyunYundunGreenWebFullAccessyang diberikan. Lihat Buat Pengguna RAM dan Berikan izin kepada Pengguna RAM.Memiliki Pasangan Kunci Akses untuk Pengguna RAM tersebut. Lihat Buat Pasangan Kunci Akses.
Mengatur variabel lingkungan
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRETdengan ID AccessKey dan Rahasia AccessKey Pengguna RAM Anda.
SDK Alibaba Cloud membuat kredensial default dengan membaca variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET. Saat memanggil operasi API, program membaca AccessKey Anda dari variabel ini dan secara otomatis menyelesaikan autentikasi. Sebelum menggunakan contoh kode SDK, Anda harus mengonfigurasi variabel lingkungan terlebih dahulu. Untuk informasi selengkapnya, lihat Konfigurasi kredensial autentikasi.
Java SDK
Kode sumber: GitHub | Maven Central
SDK mendukung tiga skenario moderasi audio. Semua contoh menggunakan VoiceModeration untuk mengirimkan tugas dan VoiceModerationResult untuk mengambil hasilnya.
Deteksi audio yang dapat diakses publik
Gunakan skenario ini ketika file audio dapat diakses melalui URL publik.
Instal dependensi
Tambahkan berikut ini ke pom.xml Maven Anda:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>3.3.3</version>
</dependency>Kirimkan tugas moderasi
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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationResultRequest voiceModerationResultRequest = new VoiceModerationResultRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
voiceModerationResultRequest.setService("audio_multilingual_global");
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("kode=" + 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());
System.out.println("riskLevel = " + data.getRiskLevel());
} else {
System.out.println("hasil moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. 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.VoiceModerationRequest;
import com.aliyun.green20220302.models.VoiceModerationResponse;
import com.aliyun.green20220302.models.VoiceModerationResponseBody;
import com.aliyun.teaopenapi.models.Config;
public class OssVoiceModerationDemo {
public static void main(String[] args) throws Exception {
Config config = new Config();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
serviceParameters.put("ossBucketName", "bucket_01");
serviceParameters.put("ossObjectName", "test/test.flv");
serviceParameters.put("ossRegionId", "ap-southeast-1");
VoiceModerationRequest voiceModerationRequest = new VoiceModerationRequest();
// Jenis moderasi. audio_media_detection menunjukkan moderasi file audio, dan live_stream_detection menunjukkan moderasi stream audio langsung.
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("kode = " + 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("moderasi suara tidak berhasil. kode:" + code);
}
} else {
System.out.println("respons tidak berhasil. 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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationResultRequest voiceModerationResultRequest = new VoiceModerationResultRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
voiceModerationResultRequest.setService("audio_multilingual_global");
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("kode=" + 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());
System.out.println("riskLevel = " + data.getRiskLevel());
} else {
System.out.println("hasil moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. status:" + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}import com.alibaba.fastjson.JSON;
import com.aliyun.green20220302.Client;
import com.aliyun.green20220302.models.DescribeUploadTokenResponse;
import com.aliyun.green20220302.models.DescribeUploadTokenResponseBody;
import com.aliyun.green20220302.models.VoiceModerationRequest;
import com.aliyun.green20220302.models.VoiceModerationResponse;
import com.aliyun.green20220302.models.VoiceModerationResponseBody;
import com.aliyun.green20220302.models.VoiceModerationResponseBody.VoiceModerationResponseBodyData;
import com.aliyun.green20220302.models.VoiceModerationResponseBody.VoiceModerationResponseBodyDataResult;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class LocalVoiceModerationDemo {
/**Menentukan apakah layanan dideploy di VPC.*/
public static boolean isVPC = false;
/**Token yang digunakan untuk mengunggah file. Kunci adalah titik akhir dan nilai adalah token.*/
public static Map<String, DescribeUploadTokenResponseBody.DescribeUploadTokenResponseBodyData> tokenMap = new HashMap<>();
/**Client yang digunakan untuk mengunggah file.*/
public static OSS ossClient = null;
/**
* Buat client.
*
* @param accessKeyId
* @param accessKeySecret
* @param endpoint
* @return
* @throws Exception
*/
public static Client createClient(String accessKeyId, String accessKeySecret, String endpoint) throws Exception {
Config config = new Config();
config.setAccessKeyId(accessKeyId);
config.setAccessKeySecret(accessKeySecret);
// Ubah titik akhir sesuai kebutuhan.
config.setEndpoint(endpoint);
return new Client(config);
}
/**
* Buat client untuk mengunggah file.
*
* @param tokenData
* @param isVPC
*/
public static void getOssClient(DescribeUploadTokenResponseBody.DescribeUploadTokenResponseBodyData tokenData, boolean isVPC) {
//Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
if (isVPC) {
ossClient = new OSSClientBuilder().build(tokenData.ossInternalEndPoint, tokenData.getAccessKeyId(), tokenData.getAccessKeySecret(), tokenData.getSecurityToken());
} else {
ossClient = new OSSClientBuilder().build(tokenData.ossInternetEndPoint, tokenData.getAccessKeyId(), tokenData.getAccessKeySecret(), tokenData.getSecurityToken());
}
}
/**
* Unggah file.
*
* @param filePath
* @param tokenData
* @return
* @throws Exception
*/
public static String uploadFile(String filePath, DescribeUploadTokenResponseBody.DescribeUploadTokenResponseBodyData tokenData) throws Exception {
String[] split = filePath.split("\\.");
String objectName;
if (split.length > 1) {
objectName = tokenData.getFileNamePrefix() + UUID.randomUUID() + "." + split[split.length - 1];
} else {
objectName = tokenData.getFileNamePrefix() + UUID.randomUUID();
}
PutObjectRequest putObjectRequest = new PutObjectRequest(tokenData.getBucketName(), objectName, new File(filePath));
ossClient.putObject(putObjectRequest);
return objectName;
}
public static VoiceModerationResponse invokeFunction(String accessKeyId, String accessKeySecret, String endpoint) throws Exception {
//Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = createClient(accessKeyId, accessKeySecret, endpoint);
RuntimeOptions runtime = new RuntimeOptions();
//Path lengkap file lokal. Contoh: D:/localPath/exampleFile.mp3.
String filePath = "D:/localPath/exampleFile.mp3";
//Dapatkan token sementara untuk mengunggah file.
if (tokenMap.get(endpoint) == null || tokenMap.get(endpoint).expiration <= System.currentTimeMillis() / 1000) {
DescribeUploadTokenResponse tokenResponse = client.describeUploadToken();
tokenMap.put(endpoint, tokenResponse.getBody().getData());
}
//Buat client untuk mengunggah file.
getOssClient(tokenMap.get(endpoint), isVPC);
//Unggah file.
String objectName = uploadFile(filePath, tokenMap.get(endpoint));
// Konstruksi parameter moderasi.
Map<String, String> serviceParameters = new HashMap<>();
//Informasi tentang pengunggahan file.
serviceParameters.put("ossBucketName", tokenMap.get(endpoint).getBucketName());
serviceParameters.put("ossObjectName", objectName);
serviceParameters.put("dataId", UUID.randomUUID().toString());
VoiceModerationRequest request = new VoiceModerationRequest();
// Jenis moderasi. audio_media_detection menunjukkan moderasi file audio.
request.setService("audio_multilingual_global");
request.setServiceParameters(JSON.toJSONString(serviceParameters));
VoiceModerationResponse response = null;
try {
response = client.voiceModerationWithOptions(request, runtime);
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
public static void main(String[] args) throws Exception {
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
String accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
String accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
VoiceModerationResponse response = invokeFunction(accessKeyId, accessKeySecret, "green-cip.ap-southeast-1.aliyuncs.com");
try {
// Cetak hasil moderasi.
if (response != null) {
if (response.getStatusCode() == 200) {
VoiceModerationResponseBody body = response.getBody();
System.out.println(JSON.toJSONString(body));
System.out.println("requestId = " + body.getRequestId());
System.out.println("kode = " + body.getCode());
System.out.println("msg = " + body.getMessage());
Integer code = body.getCode();
if (200 == code) {
VoiceModerationResponseBody.VoiceModerationResponseBodyData data = body.getData();
System.out.println("taskId = [" + data.getTaskId() + "]");
} else {
System.out.println("moderasi suara tidak berhasil. kode:" + code);
}
} else {
System.out.println("respons tidak berhasil. 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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationResultRequest voiceModerationResultRequest = new VoiceModerationResultRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
voiceModerationResultRequest.setService("audio_multilingual_global");
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("kode=" + 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("hasil moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. status:" + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Ambil hasil moderasiAmbil Hasil Moderasi Suara
Membatalkan tugas deteksi stream langsung
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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("cn-shanghai");
config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationCancelRequest voiceModerationCancelRequest = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection menunjukkan moderasi file audio, dan live_stream_detection menunjukkan moderasi stream audio langsung.
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("kode=" + result.getCode());
System.out.println("msg=" + result.getMessage());
if (200 != result.getCode()) {
System.out.println("pembatalan moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. 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();
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.setRegionId("ap-southeast-1");
config.setEndpoint("green-cip.ap-southeast-1.aliyuncs.com");
config.setReadTimeout(6000);
config.setConnectTimeout(3000);
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
serviceParameters.put("taskId", "<task-id>");
VoiceModerationResultRequest request = new VoiceModerationResultRequest();
request.setService("audio_multilingual_global");
request.setServiceParameters(serviceParameters.toJSONString());
try {
VoiceModerationResultResponse response = client.voiceModerationResult(request);
if (response.getStatusCode() == 200) {
VoiceModerationResultResponseBody result = response.getBody();
if (200 == result.getCode()) {
VoiceModerationResultResponseBody.VoiceModerationResultResponseBodyData data = result.getData();
System.out.println("taskId: " + data.getTaskId());
System.out.println("riskLevel: " + data.getRiskLevel());
System.out.println("url: " + data.getUrl());
System.out.println("sliceDetails: " + JSON.toJSONString(data.getSliceDetails()));
} else {
System.out.println("Gagal mendapatkan hasil. kode: " + result.getCode());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Deteksi audio lokal
Gunakan skenario ini ketika file audio berada di mesin lokal tanpa URL publik. SDK pertama-tama mengunggah file ke bucket OSS Content Moderation menggunakan token sementara, lalu mengirimkan tugas moderasi menggunakan path objek OSS.
Instal dependensi
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>3.3.3</version>
</dependency>Kirimkan tugas moderasi
Untuk mengambil hasil, gunakan VoiceModerationResultDemo yang sama dari Deteksi audio yang dapat diakses publik.
Membatalkan tugas deteksi stream langsung
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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("cn-shanghai");
config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationCancelRequest voiceModerationCancelRequest = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection menunjukkan moderasi file audio, dan live_stream_detection menunjukkan moderasi stream audio langsung.
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("kode=" + result.getCode());
System.out.println("msg=" + result.getMessage());
if (200 != result.getCode()) {
System.out.println("pembatalan moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. status:" + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Deteksi audio yang disimpan di OSS
Gunakan skenario ini ketika file audio sudah berada di bucket Alibaba Cloud Object Storage Service (OSS). Berikan akses Content Moderation ke bucket OSS Anda dengan membuat peran layanan di halaman Otorisasi Akses Sumber Daya Cloud.
Instal dependensi
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>green20220302</artifactId>
<version>3.3.3</version>
</dependency>Kirimkan tugas moderasi
Untuk mengambil hasil, gunakan VoiceModerationResultDemo yang sama dari Deteksi audio yang dapat diakses publik.
Batalkan tugas deteksi stream langsung
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();
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Metode umum untuk mendapatkan variabel lingkungan:
* Metode 1:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* Metode 2:
* Dapatkan ID AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
config.setAccessKeyId("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan");
config.setAccessKeySecret("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan");
// Ubah wilayah dan titik akhir sesuai kebutuhan.
config.setRegionId("cn-shanghai");
config.setEndpoint("green-cip.cn-shanghai.aliyuncs.com");
// Periode timeout koneksi dalam milidetik (ms).
config.setReadTimeout(6000);
// Periode timeout baca dalam milidetik (ms).
config.setConnectTimeout(3000);
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
Client client = new Client(config);
JSONObject serviceParameters = new JSONObject();
// taskId yang dikembalikan saat tugas dikirimkan.
serviceParameters.put("taskId", "ID tugas yang dikembalikan untuk tugas moderasi.");
VoiceModerationCancelRequest voiceModerationCancelRequest = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection menunjukkan moderasi file audio, dan live_stream_detection menunjukkan moderasi stream audio langsung.
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("kode=" + result.getCode());
System.out.println("msg=" + result.getMessage());
if (200 != result.getCode()) {
System.out.println("pembatalan moderasi suara tidak berhasil. kode:" + result.getCode());
}
} else {
System.out.println("respons tidak berhasil. status:" + response.getStatusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}Python SDK
Kode sumber: PyPI
Membutuhkan Python 3.6 atau lebih baru.
Deteksi audio yang dapat diakses publik
Instal dependensi
pip install alibabacloud_green20220302==3.2.4Kirimkan tugas moderasi
# coding=utf-8
import os
import json
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
config = Config(
# Muat kredensial dari variabel lingkungan.
# Jangan hardcode Pasangan Kunci Akses Anda di kode.
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
connect_timeout=10000, # ms
read_timeout=3000, # ms
region_id='ap-southeast-1',
endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)
# Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang.
client = Client(config)
service_parameters = {'url': 'https://example.com/sample.wav'}
request = models.VoiceModerationRequest(
service='audio_multilingual_global',
service_parameters=json.dumps(service_parameters)
)
try:
response = client.voice_moderation(request)
if response.status_code == 200:
result = response.body
if result.code == 200:
print('taskId:', result.data.task_id)
# Gunakan taskId untuk polling hasil.
else:
print('Permintaan moderasi gagal. kode:', result.code)
except Exception as err:
print(err)Ambil hasil moderasi
# coding=utf-8
import os
import json
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
config = Config(
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
connect_timeout=10000,
read_timeout=3000,
region_id='ap-southeast-1',
endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)
client = Client(config)
service_parameters = {'taskId': '<task-id>'}
request = models.VoiceModerationResultRequest(
service='audio_multilingual_global',
service_parameters=json.dumps(service_parameters)
)
try:
response = client.voice_moderation_result(request)
if response.status_code == 200:
result = response.body
if result.code == 200:
data = result.data
print('taskId:', data.task_id)
print('riskLevel:', data.risk_level)
print('sliceDetails:', data.slice_details)
else:
print('Gagal mendapatkan hasil. kode:', result.code)
except Exception as err:
print(err)Deteksi audio lokal
Instal dependensi
pip install alibabacloud_green20220302==3.2.4Kirimkan tugas moderasi
# coding=utf-8
import os
import json
import uuid
import time
import oss2
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
from alibabacloud_tea_util import models as util_models
is_vpc = False
token_dict = {}
bucket = None
def create_client(access_key_id, access_key_secret, endpoint):
config = Config(
access_key_id=access_key_id,
access_key_secret=access_key_secret,
endpoint=endpoint
)
return Client(config)
def init_oss_bucket(is_vpc, upload_token):
global bucket
auth = oss2.StsAuth(upload_token.access_key_id, upload_token.access_key_secret, upload_token.security_token)
end_point = upload_token.oss_internal_end_point if is_vpc else upload_token.oss_internet_end_point
# Gunakan kembali instance bucket untuk menghindari pembuatan koneksi berulang.
bucket = oss2.Bucket(auth, end_point, upload_token.bucket_name)
def upload_file(file_path, upload_token):
init_oss_bucket(is_vpc, upload_token)
object_name = upload_token.file_name_prefix + str(uuid.uuid1()) + '.' + file_path.split('.')[-1]
bucket.put_object_from_file(object_name, file_path)
return object_name
def invoke(access_key_id, access_key_secret, endpoint):
# Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang.
client = create_client(access_key_id, access_key_secret, endpoint)
runtime = util_models.RuntimeOptions()
file_path = '/path/to/exampleFile.mp3'
# Dapatkan token unggah sementara (perbarui jika kedaluwarsa).
upload_token = token_dict.get(endpoint)
if upload_token is None or int(upload_token.expiration) <= int(time.time()):
response = client.describe_upload_token()
upload_token = response.body.data
token_dict[endpoint] = upload_token
object_name = upload_file(file_path, upload_token)
service_parameters = {
'ossBucketName': upload_token.bucket_name,
'ossObjectName': object_name,
'dataId': str(uuid.uuid4())
}
request = models.VoiceModerationRequest(
service='audio_multilingual_global',
service_parameters=json.dumps(service_parameters)
)
try:
return client.voice_moderation_with_options(request, runtime)
except Exception as err:
print(err)
if __name__ == '__main__':
access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
response = invoke(access_key_id, access_key_secret, 'green-cip.ap-southeast-1.aliyuncs.com')
if response and response.status_code == 200:
result = response.body
if result.code == 200:
print('taskId:', result.data.task_id)Untuk mengambil hasil, gunakan pola yang sama dari Deteksi audio yang dapat diakses publik.
Deteksi audio yang disimpan di OSS
Buat peran layanan untuk memberikan akses Content Moderation ke bucket OSS Anda di halaman Otorisasi Akses Sumber Daya Cloud.
Instal dependensi
pip install alibabacloud_green20220302==3.2.4Kirimkan tugas moderasi
# coding=utf-8
import os
import json
from alibabacloud_green20220302.client import Client
from alibabacloud_green20220302 import models
from alibabacloud_tea_openapi.models import Config
config = Config(
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
connect_timeout=10000,
read_timeout=3000,
region_id='ap-southeast-1',
endpoint='green-cip.ap-southeast-1.aliyuncs.com'
)
client = Client(config)
service_parameters = {
'ossBucketName': '<your-bucket-name>',
'ossObjectName': 'voice/sample.mp3',
'ossRegionId': 'cn-shanghai'
}
request = models.VoiceModerationRequest(
service='audio_multilingual_global',
service_parameters=json.dumps(service_parameters)
)
try:
response = client.voice_moderation(request)
if response.status_code == 200:
result = response.body
if result.code == 200:
print('taskId:', result.data.task_id)
except Exception as err:
print(err)Untuk mengambil hasil, gunakan pola yang sama dari Deteksi audio yang dapat diakses publik.
PHP SDK
Kode sumber: Packagist
Membutuhkan PHP 5.6 atau lebih baru.
Deteksi audio yang dapat diakses publik
Instal dependensi
composer require alibabacloud/green-20220302 3.2.4Kirimkan tugas moderasi
<?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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "ap-southeast-1";
$config->endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationResultRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
$request->service = "audio_multilingual_global";
// taskId yang dikembalikan saat tugas dikirimkan.
$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("kode = " . $body->code);
print_r("pesan = " . $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("hasil moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $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\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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "ap-southeast-1";
$config->endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
$request->service = "audio_multilingual_global";
$serviceParameters = array(
// File yang akan dimoderasi. Contoh: voice/001.wav
'ossObjectName' => 'voice/001.wav',
// Wilayah tempat bucket file yang akan dimoderasi berada. Contoh: cn-shanghai
'ossRegionId' => 'cn-shanghai',
// Nama bucket yang menyimpan file yang akan dimoderasi. Contoh: bucket001
'ossBucketName' => 'bucket001',
// ID unik data.
'dataId' => uniqid());
$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("kode = " . $body->code);
print_r("pesan = " . $body->message);
if (200 == $body->code) {
$data = $body->data;
print_r("taskId = " . $data->taskId);
} else {
print_r("moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "ap-southeast-1";
$config->endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationResultRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
$request->service = "audio_multilingual_global";
// taskId yang dikembalikan saat tugas dikirimkan.
$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("kode = " . $body->code);
print_r("pesan = " . $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("hasil moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $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\VoiceModerationResponse;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\SDK\Green\V20220302\Green;
use AlibabaCloud\SDK\Green\V20220302\Models\VoiceModerationRequest;
use OSS\OssClient;
// Menentukan apakah layanan dideploy di VPC.
$isVPC = false;
// Token yang digunakan untuk mengunggah file.
$tokenArray = array();
// Client yang digunakan untuk mengunggah file.
$ossClient = null;
/**
* Buat client.
* @param $accessKeyId
* @param $accessKeySecret
* @param $endpoint
* @return Green
*/
function create_client($accessKeyId, $accessKeySecret, $endpoint): Green
{
$config = new Config([
"accessKeyId" => $accessKeyId,
"accessKeySecret" => $accessKeySecret,
// Atur proxy HTTP.
// "httpProxy" => "http://10.10.xx.xx:xxxx",
// Atur proxy HTTPS.
// "httpsProxy" => "https://10.10.xx.xx:xxxx",
"endpoint" => $endpoint,
]);
return new Green($config);
}
/**
* Buat client untuk mengunggah file.
* @param $tokenData
* @return void
*/
function create_upload_client($tokenData): void
{
global $isVPC;
global $ossClient;
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
if ($isVPC) {
$ossClient = new OssClient($tokenData->accessKeyId, $tokenData->accessKeySecret, $tokenData->ossInternalEndPoint, false, $tokenData->securityToken);
} else {
$ossClient = new OssClient($tokenData->accessKeyId, $tokenData->accessKeySecret, $tokenData->ossInternetEndPoint, false, $tokenData->securityToken);
}
}
/**
* Unggah file.
* @param $fileName
* @param $tokenData
* @return string
* @throws \OSS\Core\OssException
*/
function upload_file($filePath, $tokenData): string
{
global $ossClient;
//Inisialisasi OssClient.
create_upload_client($tokenData);
$split = explode(".", $filePath);
if (count($split) > 1) {
$objectName = $tokenData->fileNamePrefix . uniqid() . "." . explode(".", $filePath)[count($split) - 1];
} else {
$objectName = $tokenData->fileNamePrefix . uniqid();
}
//Unggah file.
$ossClient->uploadFile($tokenData->bucketName, $objectName, $filePath);
return $objectName;
}
/**
* Kirimkan tugas moderasi.
* @param $accessKeyId
* @param $accessKeySecret
* @param $endpoint
* @return VoiceModerationResponse
* @throws \OSS\Core\OssException
*/
function invoke($accessKeyId, $accessKeySecret, $endpoint): VoiceModerationResponse
{
global $tokenArray;
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = create_client($accessKeyId, $accessKeySecret, $endpoint);
// Buat instance RuntimeObject dan atur parameter runtime.
$runtime = new RuntimeOptions([]);
// Path lengkap file lokal. Contoh: D:\\localPath\\exampleFile.mp3.
$filePath = "D:\\localPath\\exampleFile.mp3";
//Dapatkan token sementara untuk mengunggah file.
if (!isset($tokenArray[$endpoint]) || $tokenArray[$endpoint]->expiration <= time()) {
$token = $client->describeUploadToken();
$tokenArray[$endpoint] = $token->body->data;
}
// Unggah file.
$objectName = upload_file($filePath, $tokenArray[$endpoint]);
// Konstruksi parameter moderasi.
$request = new VoiceModerationRequest();
// Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa.
$request->service = "audio_multilingual_global";
// Informasi OSS tentang file audio yang akan dimoderasi.
$serviceParameters = array(
'ossObjectName' => $objectName,
'ossBucketName' => $tokenArray[$endpoint]->bucketName,
'dataId' => uniqid());
$request->serviceParameters = json_encode($serviceParameters);
// Kirimkan tugas moderasi.
return $client->voiceModerationWithOptions($request, $runtime);
}
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$accessKeyId = 'Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan';
$accessKeySecret = 'Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan';
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
try {
$response = invoke($accessKeyId, $accessKeySecret, $endpoint);
print_r(json_encode($response->body, JSON_UNESCAPED_UNICODE));
} catch (Exception $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}Ambil hasil moderasi
Kode contoh untuk membatalkan tugas moderasi stream langsung
<?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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "cn-shanghai";
$config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection untuk moderasi file audio, live_stream_detection untuk moderasi stream audio langsung.
$request->service = "audio_media_detection";
// taskId yang dikembalikan saat tugas dikirimkan.
$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("kode = " . $body->code);
print_r("pesan = " . $body->message);
if (200 != $body->code) {
print_r("pembatalan moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $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([]);
$config->accessKeyId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
$config->accessKeySecret = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
$config->regionId = "ap-southeast-1";
$config->endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
$client = new Green($config);
$request = new VoiceModerationResultRequest();
$request->service = "audio_multilingual_global";
$serviceParameters = ['taskId' => '<task-id>'];
$request->serviceParameters = json_encode($serviceParameters);
$runtime = new RuntimeOptions();
$runtime->readTimeout = 6000;
$runtime->connectTimeout = 3000;
try {
$response = $client->voiceModerationResult($request, $runtime);
if (200 == $response->statusCode) {
$body = $response->body;
if (200 == $body->code) {
$data = $body->data;
echo "taskId: " . $data->taskId . PHP_EOL;
echo "riskLevel: " . $data->riskLevel . PHP_EOL;
echo "liveId: " . $data->liveId . PHP_EOL;
echo "url: " . $data->url . PHP_EOL;
echo "sliceDetails: " . json_encode($data->sliceDetails) . PHP_EOL;
}
}
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
}Deteksi audio lokal
Instal dependensi
composer require alibabacloud/green-20220302 3.2.4Kirimkan tugas moderasi
Untuk mengambil hasil, gunakan pola VoiceModerationResultRequest yang sama dari Deteksi audio yang dapat diakses publik.
Kode contoh untuk membatalkan tugas moderasi stream langsung
<?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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "cn-shanghai";
$config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection untuk moderasi file audio, live_stream_detection untuk moderasi stream audio langsung.
$request->service = "audio_media_detection";
// taskId yang dikembalikan saat tugas dikirimkan.
$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("kode = " . $body->code);
print_r("pesan = " . $body->message);
if (200 != $body->code) {
print_r("pembatalan moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $response->statusCode);
}
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}Deteksi audio yang disimpan di OSS
Buat peran layanan di halaman Otorisasi Akses Sumber Daya Cloud.
Instal dependensi
composer require alibabacloud/green-20220302 3.2.4Kirimkan tugas moderasi
<?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([]);
$config->accessKeyId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
$config->accessKeySecret = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
$config->regionId = "ap-southeast-1";
$config->endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
$client = new Green($config);
$request = new VoiceModerationRequest();
$request->service = "audio_multilingual_global";
$serviceParameters = [
'ossObjectName' => 'voice/001.wav',
'ossRegionId' => 'cn-shanghai',
'ossBucketName' => '<your-bucket-name>',
'dataId' => uniqid()
];
$request->serviceParameters = json_encode($serviceParameters);
$runtime = new RuntimeOptions();
$runtime->readTimeout = 6000;
$runtime->connectTimeout = 3000;
try {
$response = $client->voiceModeration($request, $runtime);
if (200 == $response->statusCode && 200 == $response->body->code) {
echo "taskId: " . $response->body->data->taskId . PHP_EOL;
}
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
}Untuk mengambil hasil, gunakan pola VoiceModerationResultRequest yang sama dari Deteksi audio yang dapat diakses publik.
Kode contoh untuk membatalkan tugas moderasi stream langsung
<?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([]);
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
$config->accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
$config->accessKeySecret = "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
// Ubah wilayah dan titik akhir sesuai kebutuhan.
$config->regionId = "cn-shanghai";
$config->endpoint = "green-cip.cn-shanghai.aliyuncs.com";
// Atur proxy HTTP.
// $config->httpProxy = "http://10.10.xx.xx:xxxx";
// Atur proxy HTTPS.
// $config->httpsProxy = "http://10.10.xx.xx:xxxx";
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
$client = new Green($config);
$request = new VoiceModerationCancelRequest();
// Jenis moderasi. audio_media_detection untuk moderasi file audio, live_stream_detection untuk moderasi stream audio langsung.
$request->service = "audio_media_detection";
// taskId yang dikembalikan saat tugas dikirimkan.
$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("kode = " . $body->code);
print_r("pesan = " . $body->message);
if (200 != $body->code) {
print_r("pembatalan moderasi suara tidak berhasil. kode:" . $body->code);
}
} else {
print_r("respons tidak berhasil. kode:" . $response->statusCode);
}
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}Go SDK
Deteksi audio yang dapat diakses publik
Instal dependensi
go get github.com/alibabacloud-go/green-20220302/v3@v3.2.4Kirimkan tugas moderasi
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green "github.com/alibabacloud-go/green-20220302/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("ap-southeast-1"),
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"taskId": "<ID Tugas>",
},
)
request := green.VoiceModerationResultRequest{
// Layanan moderasi suara.
Service: tea.String("audio_multilingual_global"),
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("respons berhasil. respons:" + voiceModerationResponse.String())
if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
resultResponseBodyData := voiceModerationResponse.Data
fmt.Println("respons liveId:" + tea.StringValue(resultResponseBodyData.LiveId))
fmt.Println("respons sliceDetails:" + tea.ToString(resultResponseBodyData.SliceDetails))
} else {
fmt.Println("mendapatkan hasil moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
}
} else {
fmt.Println("respons tidak berhasil. 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/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("ap-southeast-1"),
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
// Atur proxy HTTP.
//HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// Atur proxy HTTPS.
//HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
// URL file audio yang akan dimoderasi.
serviceParameters, _ := json.Marshal(
map[string]interface{}{
//Wilayah tempat bucket OSS yang menyimpan file audio berada. Contoh: cn-shanghai.
"ossRegionId": "cn-shanghai",
//Nama bucket OSS yang menyimpan file audio. Contoh: bucket001.
"ossBucketName":"bucket001",
//Nama objek file audio. Contoh: voice/001.wav.
"ossObjectName":"voice/001.wav",
//ID data yang akan dimoderasi.
"dataId": uuid.New().String(),
},
)
request := green.VoiceModerationRequest{
// Layanan moderasi suara.
Service: tea.String("audio_multilingual_global"),
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("respons berhasil. respons:" + voiceModerationResponse.String())
if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
voiceModerationResponseData := voiceModerationResponse.Data
fmt.Println("respons taskId:" + tea.StringValue(voiceModerationResponseData.TaskId))
} else {
fmt.Println("moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
}
} else {
fmt.Println("respons tidak berhasil. 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/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("ap-southeast-1"),
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"taskId": "<ID Tugas>",
},
)
request := green.VoiceModerationResultRequest{
// Layanan moderasi suara.
Service: tea.String("audio_multilingual_global"),
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("respons berhasil. respons:" + voiceModerationResponse.String())
if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
resultResponseBodyData := voiceModerationResponse.Data
fmt.Println("respons liveId:" + tea.StringValue(resultResponseBodyData.LiveId))
fmt.Println("respons sliceDetails:" + tea.ToString(resultResponseBodyData.SliceDetails))
} else {
fmt.Println("mendapatkan hasil moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
}
} else {
fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode))
}
}
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green20220302 "github.com/alibabacloud-go/green-20220302/v3/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"github.com/google/uuid"
"net/http"
"os"
"strings"
"time"
)
//Token yang digunakan untuk mengunggah file.
var TokenMap =make(map[string]*green20220302.DescribeUploadTokenResponseBodyData)
//Client yang digunakan untuk mengunggah file.
var Bucket *oss.Bucket
//Menentukan apakah layanan dideploy di VPC.
var isVPC = false
//Buat client.
func createClient(accessKeyId string, accessKeySecret string, endpoint string) (*green20220302.Client, error) {
config := &openapi.Config{
AccessKeyId: tea.String(accessKeyId),
AccessKeySecret: tea.String(accessKeySecret),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://10.10.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
Endpoint: tea.String(endpoint),
}
//Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
return green20220302.NewClient(config);
}
//Buat client untuk mengunggah file.
func createOssClient(tokenData *green20220302.DescribeUploadTokenResponseBodyData) {
if isVPC{
ossClient, err := oss.New(tea.StringValue(tokenData.OssInternalEndPoint), tea.StringValue(tokenData.AccessKeyId), tea.StringValue(tokenData.AccessKeySecret), oss.SecurityToken(tea.StringValue(tokenData.SecurityToken)))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
Bucket, _ =ossClient.Bucket(tea.StringValue(tokenData.BucketName));
}else {
ossClient, err := oss.New(tea.StringValue(tokenData.OssInternetEndPoint), tea.StringValue(tokenData.AccessKeyId), tea.StringValue(tokenData.AccessKeySecret), oss.SecurityToken(tea.StringValue(tokenData.SecurityToken)))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
Bucket, _ =ossClient.Bucket(tea.StringValue(tokenData.BucketName));
}
}
//Unggah file.
func uploadFile(filePath string,tokenData *green20220302.DescribeUploadTokenResponseBodyData) (string,error) {
createOssClient(tokenData)
objectName := tea.StringValue(tokenData.FileNamePrefix) + uuid.New().String() + "." + strings.Split(filePath, ".")[1]
//Unggah file.
_err := Bucket.PutObjectFromFile(objectName, filePath)
if _err != nil {
fmt.Println("Error:", _err)
os.Exit(-1)
}
return objectName,_err
}
func invoke(accessKeyId string, accessKeySecret string, endpoint string) (_result *green20220302.VoiceModerationResponse, _err error) {
//Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := createClient(accessKeyId, accessKeySecret, endpoint)
if _err != nil {
return nil,_err
}
//Atur parameter runtime. Pengaturan hanya berlaku pada permintaan yang menggunakan instance parameter runtime ini.
runtime := &util.RuntimeOptions{}
//Path lengkap file lokal. Contoh: D:\localPath\exampleFile.wav.
var filePath = "D:\\localPath\\exampleFile.wav"
//Dapatkan token sementara untuk mengunggah file.
tokenData,ok:=TokenMap[endpoint];
if !ok || tea.Int32Value(tokenData.Expiration) <= int32(time.Now().Unix()) {
//Dapatkan token sementara untuk mengunggah file.
uploadTokenResponse, _err := client.DescribeUploadToken()
if _err != nil {
return nil,_err
}
tokenData = uploadTokenResponse.Body.Data
TokenMap[endpoint] = tokenData
}
var objectName, _ = uploadFile(filePath,TokenMap[endpoint])
//Konstruksi permintaan moderasi audio.
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"ossBucketName": tea.StringValue(TokenMap[endpoint].BucketName),
"ossObjectName": objectName,
"dataId": uuid.New().String(),
},
)
voiceModerationRequest := &green20220302.VoiceModerationRequest{
// Layanan moderasi suara.
Service: tea.String("audio_multilingual_global"),
ServiceParameters: tea.String(string(serviceParameters)),
}
return client.VoiceModerationWithOptions(voiceModerationRequest, runtime)
}
func main() {
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
var accessKeyId= "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan";
var accessKeySecret= "Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan";
//Ubah wilayah dan titik akhir sesuai kebutuhan.
var endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
response,_err := invoke(accessKeyId,accessKeySecret,endpoint)
flag := false
if _err != nil {
var err = &tea.SDKError{}
if _t, ok := _err.(*tea.SDKError); ok {
err = _t
if *err.StatusCode == 500 {
flag = true
}
}
}
if response == nil || *response.StatusCode == 500 || *response.Body.Code == 500 {
flag = true
}
//Routing otomatis. Wilayah dialihkan ke ap-southeast-1.
if flag {
endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
response, _err = invoke(accessKeyId,accessKeySecret,endpoint)
}
if response != nil {
statusCode := tea.IntValue(tea.ToInt(response.StatusCode))
body := response.Body
voiceModerationResponseData := body.Data
fmt.Println("requestId:" + tea.StringValue(body.RequestId))
if statusCode == http.StatusOK {
fmt.Println("respons berhasil. respons:" + body.String())
if tea.IntValue(tea.ToInt(body.Code)) == 200 {
result := voiceModerationResponseData.Result
fmt.Println("respons dataId:" + tea.StringValue(voiceModerationResponseData.DataId))
for i := 0; i < len(result); i++ {
fmt.Println("respons label:" + tea.StringValue(result[i].Label))
fmt.Println("respons confidence:" + tea.ToString(tea.Float32Value(result[i].Confidence)))
}
} else {
fmt.Println("moderasi suara tidak berhasil. status" + tea.ToString(body.Code))
}
} else {
fmt.Print("respons tidak berhasil. 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/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("ap-southeast-1"),
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"taskId": "<ID Tugas>",
},
)
request := green.VoiceModerationResultRequest{
// Layanan moderasi suara.
Service: tea.String("audio_multilingual_global"),
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("respons berhasil. respons:" + voiceModerationResponse.String())
if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 {
resultResponseBodyData := voiceModerationResponse.Data
fmt.Println("respons liveId:" + tea.StringValue(resultResponseBodyData.LiveId))
fmt.Println("respons sliceDetails:" + tea.ToString(resultResponseBodyData.SliceDetails))
} else {
fmt.Println("mendapatkan hasil moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code)))
}
} else {
fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode))
}
}
Ambil hasil moderasi
Kode contoh untuk membatalkan tugas moderasi stream langsung
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green "github.com/alibabacloud-go/green-20220302/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("cn-shanghai"),
Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://10.10.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://10.10.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"taskId": "<ID tugas yang akan dibatalkan>",
},
)
request := green.VoiceModerationCancelRequest{
// Layanan moderasi suara.
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("respons berhasil. respons:" + cancelResponseBody.String())
if tea.IntValue(tea.ToInt(cancelResponseBody.Code)) != 200 {
fmt.Println("pembatalan moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(cancelResponseBody.Code)))
}
} else {
fmt.Println("respons tidak berhasil. 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/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
"os"
)
func main() {
config := &openapi.Config{
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
RegionId: tea.String("ap-southeast-1"),
Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"),
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
client, err := green.NewClient(config)
if err != nil {
panic(err)
}
serviceParameters, _ := json.Marshal(map[string]interface{}{
"taskId": "<task-id>",
})
request := green.VoiceModerationResultRequest{
Service: tea.String("audio_multilingual_global"),
ServiceParameters: tea.String(string(serviceParameters)),
}
result, err := client.VoiceModerationResult(&request)
if err != nil {
panic(err)
}
if tea.IntValue(tea.ToInt(result.StatusCode)) == http.StatusOK {
body := result.Body
if tea.IntValue(tea.ToInt(body.Code)) == 200 {
data := body.Data
fmt.Println("taskId:", tea.StringValue(data.TaskId))
fmt.Println("riskLevel:", tea.StringValue(data.RiskLevel))
fmt.Println("liveId:", tea.StringValue(data.LiveId))
fmt.Println("sliceDetails:", tea.ToString(data.SliceDetails))
}
}
}Deteksi audio lokal
Instal dependensi
go get github.com/alibabacloud-go/green-20220302/v3@v3.2.4Untuk kode contoh Go lengkap untuk moderasi audio lokal, buatlah menggunakan OpenAPI Explorer.
Kode contoh untuk membatalkan tugas moderasi stream langsung
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
green "github.com/alibabacloud-go/green-20220302/v3/client"
"github.com/alibabacloud-go/tea/tea"
"net/http"
)
func main() {
config := &openapi.Config{
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"),
AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"),
// Tentukan wilayah Anda.
RegionId: tea.String("cn-shanghai"),
Endpoint: tea.String("green-cip.cn-shanghai.aliyuncs.com"),
// Atur proxy HTTP.
// HttpProxy: tea.String("http://10.10.xx.xx:xxxx"),
// Atur proxy HTTPS.
// HttpsProxy: tea.String("https://10.10.xx.xx:xxxx"),
/**
* Atur periode timeout. Periode timeout sisi server untuk seluruh link adalah 10 detik. Atur periode timeout sesuai.
* Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, exception ReadTimeout akan dikembalikan.
*/
ConnectTimeout: tea.Int(3000),
ReadTimeout: tea.Int(6000),
}
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
client, _err := green.NewClient(config)
if _err != nil {
panic(_err)
}
serviceParameters, _ := json.Marshal(
map[string]interface{}{
"taskId": "<ID tugas yang akan dibatalkan>",
},
)
request := green.VoiceModerationCancelRequest{
// Layanan moderasi suara.
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("respons berhasil. respons:" + cancelResponseBody.String())
if tea.IntValue(tea.ToInt(cancelResponseBody.Code)) != 200 {
fmt.Println("pembatalan moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(cancelResponseBody.Code)))
}
} else {
fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode))
}
}Deteksi audio yang disimpan di OSS
Kasus penggunaan
Jika file audio disimpan di OSS Alibaba Cloud, Anda dapat memberikan otorisasi kepada layanan Content Moderation untuk mengakses OSS dengan membuat peran layanan. Voice Moderation 2.0 dapat mengakses file OSS untuk moderasi melalui peran layanan tersebut. Buka halaman Otorisasi Akses Sumber Daya Clouduntuk membuat peran layanan.
Jalankan perintah berikut untuk menginstal dependensi.
go get github.com/alibabacloud-go/green-20220302/v3@v3.2.4Gunakan SDK Go.
Kode contoh untuk mengirimkan tugas moderasi suara
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green "github.com/alibabacloud-go/green-20220302/v3/client" "github.com/alibabacloud-go/tea/tea" "net/http" ) func main() { config := &openapi.Config{ /** * Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Kami menyarankan Anda menggunakan Pengguna RAM untuk panggilan API atau O&M rutin. * Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Jika tidak, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. * Metode umum untuk mendapatkan variabel lingkungan: * Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"), AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"), // Tentukan wilayah Anda. RegionId: tea.String("ap-southeast-1"), Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"), // Atur proxy HTTP. //HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"), // Atur proxy HTTPS. //HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"), /** * Timeout sisi server adalah 10 detik. Atur ConnectTimeout dan ReadTimeout sesuai. * Jika ReadTimeout kurang dari waktu pemrosesan server, exception ReadTimeout terjadi. */ ConnectTimeout: tea.Int(3000), ReadTimeout: tea.Int(6000), } // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. client, _err := green.NewClient(config) if _err != nil { panic(_err) } // URL audio yang akan dimoderasi. serviceParameters, _ := json.Marshal( map[string]interface{}{ // Wilayah bucket OSS. Contoh: cn-shanghai "ossRegionId": "cn-shanghai", // Nama bucket OSS. Contoh: bucket001 "ossBucketName":"bucket001", // Nama objek file audio. Contoh: voice/001.wav "ossObjectName":"voice/001.wav", // ID data audio yang akan dimoderasi. "dataId": uuid.New().String(), }, ) request := green.VoiceModerationRequest{ // Kode layanan moderasi suara. Service: tea.String("audio_multilingual_global"), 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("respons berhasil. respons:" + voiceModerationResponse.String()) if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 { voiceModerationResponseData := voiceModerationResponse.Data fmt.Println("respons taskId:" + tea.StringValue(voiceModerationResponseData.TaskId)) } else { fmt.Println("moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }Kode contoh untuk mengambil hasil moderasi suara
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green "github.com/alibabacloud-go/green-20220302/v3/client" "github.com/alibabacloud-go/tea/tea" "net/http" ) func main() { config := &openapi.Config{ /** * Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Kami menyarankan Anda menggunakan Pengguna RAM untuk panggilan API atau O&M rutin. * Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Jika tidak, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. * Metode umum untuk mendapatkan variabel lingkungan: * Dapatkan ID AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * Dapatkan Rahasia AccessKey Pengguna RAM Anda: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: tea.String("Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan"), AccessKeySecret: tea.String("Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan"), // Tentukan wilayah Anda. RegionId: tea.String("ap-southeast-1"), Endpoint: tea.String("green-cip.ap-southeast-1.aliyuncs.com"), // Atur proxy HTTP. // HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"), // Atur proxy HTTPS. // HttpsProxy: tea.String("https://xx.xx.xx.xx:xxxx"), /** * Timeout sisi server adalah 10 detik. Atur ConnectTimeout dan ReadTimeout sesuai. * Jika ReadTimeout kurang dari waktu pemrosesan server, exception ReadTimeout terjadi. */ ConnectTimeout: tea.Int(3000), ReadTimeout: tea.Int(6000), } // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. client, _err := green.NewClient(config) if _err != nil { panic(_err) } serviceParameters, _ := json.Marshal( map[string]interface{}{ "taskId": "<ID Tugas>", }, ) request := green.VoiceModerationResultRequest{ // Kode layanan moderasi suara. Service: tea.String("audio_multilingual_global"), 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("respons berhasil. respons:" + voiceModerationResponse.String()) if tea.IntValue(tea.ToInt(voiceModerationResponse.Code)) == 200 { resultResponseBodyData := voiceModerationResponse.Data fmt.Println("respons liveId:" + tea.StringValue(resultResponseBodyData.LiveId)) fmt.Println("respons sliceDetails:" + tea.ToString(resultResponseBodyData.SliceDetails)) } else { fmt.Println("mendapatkan hasil moderasi suara tidak berhasil. kode:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }
C# SDK
Kode sumber: NuGet
Deteksi audio yang dapat diakses publik
Instal dependensi
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.4Kirimkan tugas moderasi
using Newtonsoft.Json;
using Tea;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/**
* Gunakan ID AccessKey dan Rahasia AccessKey untuk menginisialisasi 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,
};
// Titik akhir layanan.
config.Endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Green20220302.Client(config);
}
public static void Main(string[] args)
{
// Hard-coding Pasangan Kunci Akses di kode proyek Anda dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. Kami menyarankan Anda menggunakan metode yang lebih aman, seperti menggunakan token Security Token Service (STS).
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
string accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan",
string accessKeySecret = 'Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan',
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
// Konstruksi permintaan moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest();
// Layanan moderasi suara.
voiceModerationResultRequest.Service="audio_multilingual_global";
Dictionary<String,Object> task=new Dictionary<string, object>();
// ID tugas yang hasilnya ingin Anda kueri.
task.Add("taskId","<ID tugas yang hasilnya ingin Anda kueri>");
voiceModerationResultRequest.ServiceParameters=JsonConvert.SerializeObject(task);
// Buat instance RuntimeObject dan atur parameter runtime.
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 10000;
runtime.ConnectTimeout = 10000;
try
{
// Kirimkan tugas moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultResponse response= client.VoiceModerationResultWithOptions(voiceModerationResultRequest, runtime);
if(response is not null){
Console.WriteLine("respons statusCode : "+response.StatusCode);
if (response.Body is not null){
Console.WriteLine("requestId : " + response.Body.RequestId);
Console.WriteLine("kode : " + response.Body.Code);
Console.WriteLine("pesan : " + 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)
{
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
}
}
}using Newtonsoft.Json;
using Tea;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/**
* Gunakan ID AccessKey dan rahasia AccessKey untuk menginisialisasi klien.
* @param accessKeyId
* @param accessKeySecret
* @return Klien
* @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,
};
// Titik akhir layanan.
config.Endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Green20220302.Client(config);
}
public static void Main(string[] args)
{
// Menyematkan pasangan Kunci Akses secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan Kunci Akses dan membahayakan keamanan semua sumber daya di akun Anda. Kode berikut hanya untuk referensi. Kami menyarankan Anda menggunakan metode yang lebih aman, seperti menggunakan token Layanan Keamanan (STS).
/**
* Pasangan Kunci Akses dari akun Alibaba Cloud memiliki izin pada semua operasi API. Menggunakan kredensial ini untuk melakukan operasi adalah operasi berisiko tinggi. Kami menyarankan Anda menggunakan pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan rahasia AccessKey Anda dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan Kunci Akses dan membahayakan keamanan semua sumber daya di akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan rahasia AccessKey pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
string accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan",
string accessKeySecret = 'Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan',
// Catatan: Untuk meningkatkan performa moderasi, gunakan kembali instans klien. Ini menghindari pembuatan koneksi berulang.
AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
// Buat permintaan moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest voiceModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest();
// Layanan moderasi suara.
voiceModerationRequest.Service="audio_multilingual_global";
Dictionary<String,Object> task=new Dictionary<string, object>();
// Contoh meneruskan parameter file OSS.
task.Add("ossBucketName","bucket_01");
task.Add("ossObjectName","test/sample.wav");
task.Add("ossRegionId","cn-shanghai");
voiceModerationRequest.ServiceParameters=JsonConvert.SerializeObject(task);
// Buat instans RuntimeObject dan atur parameter waktu proses.
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 10000;
runtime.ConnectTimeout = 10000;
try
{
// Kirim tugas moderasi suara.
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)
{
// Cetak kesalahan jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// Cetak kesalahan jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
}
}
}using Newtonsoft.Json;
using Tea;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/**
* Gunakan ID AccessKey dan Rahasia AccessKey untuk menginisialisasi 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,
};
// Titik akhir layanan.
config.Endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Green20220302.Client(config);
}
public static void Main(string[] args)
{
// Hard-coding Pasangan Kunci Akses di kode proyek Anda dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. Kami menyarankan Anda menggunakan metode yang lebih aman, seperti menggunakan token Security Token Service (STS).
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
string accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan",
string accessKeySecret = 'Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan',
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
// Konstruksi permintaan moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest();
// Layanan moderasi suara.
voiceModerationResultRequest.Service="audio_multilingual_global";
Dictionary<String,Object> task=new Dictionary<string, object>();
// ID tugas yang hasilnya ingin Anda kueri.
task.Add("taskId","<ID tugas yang hasilnya ingin Anda kueri>");
voiceModerationResultRequest.ServiceParameters=JsonConvert.SerializeObject(task);
// Buat instance RuntimeObject dan atur parameter runtime.
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 10000;
runtime.ConnectTimeout = 10000;
try
{
// Kirimkan tugas moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultResponse response= client.VoiceModerationResultWithOptions(voiceModerationResultRequest, runtime);
if(response is not null){
Console.WriteLine("respons statusCode : "+response.StatusCode);
if (response.Body is not null){
Console.WriteLine("requestId : " + response.Body.RequestId);
Console.WriteLine("kode : " + response.Body.Code);
Console.WriteLine("pesan : " + 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)
{
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
}
}
}using Newtonsoft.Json;
using Tea;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/**
* Gunakan ID AccessKey dan Rahasia AccessKey untuk menginisialisasi 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,
};
// Titik akhir layanan.
config.Endpoint = "green-cip.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Green20220302.Client(config);
}
public static void Main(string[] args)
{
// Hard-coding Pasangan Kunci Akses di kode proyek Anda dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. Kami menyarankan Anda menggunakan metode yang lebih aman, seperti menggunakan token Security Token Service (STS).
/**
* Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin untuk semua operasi API. Menggunakan kredensial ini untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin.
* Kami sangat menyarankan agar Anda tidak menyimpan ID AccessKey dan Rahasia AccessKey Anda di kode proyek Anda. Hal ini dapat menyebabkan kebocoran Pasangan Kunci Akses dan membahayakan keamanan semua sumber daya dalam akun Anda.
* Metode umum untuk mendapatkan variabel lingkungan:
* Dapatkan ID AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID")
* Dapatkan Rahasia AccessKey Pengguna RAM Anda: Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
*/
string accessKeyId = "Kami menyarankan Anda mendapatkan ID AccessKey Pengguna RAM Anda dari variabel lingkungan",
string accessKeySecret = 'Kami menyarankan Anda mendapatkan Rahasia AccessKey Pengguna RAM Anda dari variabel lingkungan',
// Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang.
AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
// Konstruksi permintaan moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest();
// Layanan moderasi suara.
voiceModerationResultRequest.Service="audio_multilingual_global";
Dictionary<String,Object> task=new Dictionary<string, object>();
// ID tugas yang hasilnya ingin Anda kueri.
task.Add("taskId","<ID tugas yang hasilnya ingin Anda kueri>");
voiceModerationResultRequest.ServiceParameters=JsonConvert.SerializeObject(task);
// Buat instance RuntimeObject dan atur parameter runtime.
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 10000;
runtime.ConnectTimeout = 10000;
try
{
// Kirimkan tugas moderasi suara.
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultResponse response= client.VoiceModerationResultWithOptions(voiceModerationResultRequest, runtime);
if(response is not null){
Console.WriteLine("respons statusCode : "+response.StatusCode);
if (response.Body is not null){
Console.WriteLine("requestId : " + response.Body.RequestId);
Console.WriteLine("kode : " + response.Body.Code);
Console.WriteLine("pesan : " + 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)
{
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// Cetak error jika perlu.
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
Console.WriteLine("error : " + error);
}
}
}
}Ambil hasil moderasi
using Newtonsoft.Json;
using Tea;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
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.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Green20220302.Client(config);
}
public static void Main(string[] args)
{
string accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
string accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
AlibabaCloud.SDK.Green20220302.Client client = CreateClient(accessKeyId, accessKeySecret);
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest request= new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest();
request.Service = "audio_multilingual_global";
Dictionary<string, object> task = new Dictionary<string, object>();
task.Add("taskId", "<task-id>");
request.ServiceParameters = JsonConvert.SerializeObject(task);
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 6000;
runtime.ConnectTimeout = 3000;
try
{
AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultResponse response =
client.VoiceModerationResultWithOptions(request, runtime);
if (response != null && response.Body != null && response.Body.Data != null)
{
if (200 == response.Body.Code)
{
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)
{
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
}
}Deteksi audio lokal
Instal dependensi
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.4Instal SDK OSS melalui NuGet: cari Aliyun.OSS.SDK (untuk .NET Framework) atau Aliyun.OSS.SDK.NetCore (untuk .NET Core) di NuGet Package Manager.
Untuk kode contoh C# lengkap untuk moderasi audio lokal, buatlah menggunakan OpenAPI Explorer.
Deteksi audio yang disimpan di OSS
Buat peran layanan di halaman Otorisasi Akses Sumber Daya Cloud.
Instal dependensi
dotnet add package AlibabaCloud.SDK.Green20220302 --version 3.2.4Kirimkan tugas moderasi
Untuk mengambil hasil, gunakan pola VoiceModerationResultRequest yang sama dari Deteksi audio yang dapat diakses publik.
Node.js SDK
Kode sumber: paket npm.
SDK mendukung tiga skenario moderasi audio.
Deteksi audio yang dapat diakses publik
Kasus penggunaan
Saat file audio dapat diakses melalui URL publik, Voice Moderation 2.0 dapat mengambil file tersebut melalui URL untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi.
npm install @alicloud/green20220302@3.2.4Gunakan SDK Node.js.
Kode contoh untuk mengirimkan tugas moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Konstruksi objek permintaan const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Kode layanan moderasi suara. "service": "audio_multilingual_global", // URL audio yang akan dimoderasi. "serviceParameters": JSON.stringify({"url":"http://aliyundoc.com/test.flv"}) }); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationWithOptions(voiceModerationRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengambil hasil moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Konstruksi objek permintaan const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Kode layanan moderasi suara. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID Tugas hasil moderasi suara yang akan dikueri>"}) }); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationResultWithOptions(voiceModerationResultRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Deteksi audio lokal
Kasus penggunaan
Saat file audio berada di mesin lokal tanpa URL publik, Anda dapat mengunggahnya ke bucket OSS yang disediakan oleh Content Moderation. Voice Moderation 2.0 dapat langsung mengakses OSS untuk mengambil konten audio guna moderasi.
Jalankan perintah berikut untuk menginstal dependensi.
npm install @alicloud/green20220302@3.2.4Instal SDK OSS:
npm install ali-oss --saveGunakan SDK Node.js.
Kode contoh untuk mengirimkan tugas moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const { v4: uuidv4 } = require('uuid'); const OSS = require('ali-oss'); const Util = require('@alicloud/tea-util'); const path = require("path"); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. //Apakah layanan dideploy di VPC var isVPC = false; //Token unggah file var tokenDic = new Array(); //Client unggah file var ossClient; //Atur titik akhir var endpoint = 'green-cip.ap-southeast-1.aliyuncs.com' //Path file lokal var filePath = 'D:\\test\\voice\\cf02.wav' //Kode layanan moderasi var service = 'audio_multilingual_global' class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env["ALIBABA_CLOUD_ACCESS_KEY_ID"], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env["ALIBABA_CLOUD_ACCESS_KEY_SECRET"], endpoint: endpoint, }); return new Green20220302.default(config); } // Buat client unggah file static getOssClient(tokenData, isVPC) { if (isVPC) { ossClient = new OSS({ accessKeyId: tokenData['accessKeyId'], accessKeySecret: tokenData['accessKeySecret'], stsToken: tokenData['securityToken'], endpoint: tokenData['ossInternalEndPoint'], bucket: tokenData['bucketName'], }); } else { ossClient = new OSS({ accessKeyId: tokenData['accessKeyId'], accessKeySecret: tokenData['accessKeySecret'], stsToken: tokenData['securityToken'], endpoint: tokenData['ossInternetEndPoint'], bucket: tokenData['bucketName'], }); } } static async main() { const client = Client.createClient(); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); //Dapatkan token unggah file if (tokenDic[endpoint] == null || tokenDic[endpoint]['expiration'] <= Date.parse(new Date() / 1000)) { var tokenResponse = await client.describeUploadTokenWithOptions(runtime) tokenDic[endpoint] = tokenResponse.body.data; } //Dapatkan client unggah file this.getOssClient(tokenDic[endpoint], isVPC) var split = filePath.split("."); var objectName; if (split.length > 1) { objectName = tokenDic[endpoint].fileNamePrefix + uuidv4() + "." + split[split.length - 1]; } else { objectName = tokenDic[endpoint].fileNamePrefix + uuidv4(); } //Unggah file const result = await ossClient.put(objectName, path.normalize(filePath)); // Konstruksi objek permintaan const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Kode layanan moderasi。 "service": service, // URL audio yang akan dimoderasi. "serviceParameters": JSON.stringify({ "ossBucketName": tokenDic[endpoint].bucketName, "ossObjectName": objectName, }) }); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationWithOptions(voiceModerationRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengambil hasil moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Konstruksi objek permintaan const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Kode layanan moderasi suara. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID Tugas hasil moderasi suara yang akan dikueri>"}) }); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationResultWithOptions(voiceModerationResultRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Deteksi audio yang disimpan di OSS
Kasus penggunaan
Jika file audio disimpan di OSS Alibaba Cloud, Anda dapat memberikan otorisasi kepada layanan Content Moderation untuk mengakses OSS dengan membuat peran layanan. Voice Moderation 2.0 dapat mengakses file OSS untuk moderasi melalui peran layanan tersebut. Buka halaman Otorisasi Akses Sumber Daya Clouduntuk membuat peran layanan.
Jalankan perintah berikut untuk menginstal dependensi.
npm install @alicloud/green20220302@3.2.4Gunakan SDK Node.js.
Kode contoh untuk mengirimkan tugas moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Konstruksi objek permintaan const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Kode layanan moderasi suara. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({ // Wilayah bucket. Contoh: cn-shanghai "ossRegionId": "cn-shanghai", // Nama bucket. Contoh: bucket001 "ossBucketName": "bucket001", // File yang akan dimoderasi. Contoh: voice/001.wav "ossObjectName": "voice/001.wav",}) }); }); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationWithOptions(voiceModerationRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengambil hasil moderasi suara
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Gunakan kembali instance client untuk menghindari pembuatan koneksi berulang. // Jika kode proyek bocor, Pasangan Kunci Akses mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_ID。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan dikonfigurasi: ALIBABA_CLOUD_ACCESS_KEY_SECRET。 accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], endpoint: `green-cip.ap-southeast-1.aliyuncs.com`, }); return new Green20220302.default(config); } static async main() { const client = Client.createClient(); // Konstruksi objek permintaan const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Kode layanan moderasi suara. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID Tugas hasil moderasi suara yang akan dikueri>"}) }); // Buat objek konfigurasi runtime const runtime = new Util.RuntimeOptions(); try { // Kirim permintaan dan dapatkan respons const response = await client.voiceModerationResultWithOptions(voiceModerationResultRequest, runtime); console.log(JSON.stringify(response.body)); } catch (error) { // Ini hanya untuk demonstrasi. Tangani exception dengan benar di produksi. // Pesan error console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Panggilan native HTTPS
Call method
URL permintaan layanan: https://green-cip.{region}.aliyuncs.com
Protokol: HTTPS
Metode: POST
Common request parameters
Parameter input API Voice Moderation Edisi Tingkat Lanjut mencakup parameter permintaan umum dan parameter spesifik operasi. Parameter permintaan umum wajib untuk setiap pemanggilan API. Tabel berikut menjelaskan parameter permintaan umum.
Nama
Tipe
Wajib
Deskripsi
Format
String
Ya
Format respons. Nilai yang valid:
JSON(default)
XML
Version
String
Ya
Versi API dalam format YYYY-MM-DD. Versi saat ini: 2022-03-02.
AccessKeyId
String
Ya
ID AccessKey yang dikeluarkan oleh Alibaba Cloud untuk mengakses layanan.
Signature
String
Ya
String signature. Untuk metode perhitungan, lihat bagian mekanisme Signature di bawah.
SignatureMethod
String
Ya
Metode signature. Saat ini, hanya HMAC-SHA1 yang didukung.
Timestamp
String
Ya
Timestamp permintaan. Tentukan waktu dalam standar ISO 8601 dalam UTC.
Format: yyyy-MM-ddTHH:mm:ssZ.
Misalnya, 2022-12-12T09:13:14 (UTC+8) dinyatakan sebagai 2022-12-12T01:13:14Z.
SignatureVersion
String
Ya
Versi algoritma Signature. Nilai tetap: 1.0.
SignatureNonce
String
Ya
Bilangan acak unik untuk mencegah serangan replay. Gunakan nilai berbeda untuk setiap permintaan.
Action
String
Ya
Nilai yang valid:
VoiceModeration
VoiceModerationResult
Common response parameters
Untuk setiap permintaan API, terlepas dari keberhasilan atau kegagalan, sistem mengembalikan pengidentifikasi unik (RequestId). Parameter respons lainnya bervariasi tergantung pada layanan yang dipanggil.
{ "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2", "Message":"SUCCESS", "Data":{ "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1****" }, "Code":200 }Code examples
Contoh respons berikut diformat agar mudah dibaca. Respons aktual tidak diformat.
Contoh mengirimkan tugas moderasi
Contoh permintaan
http://green-cip.ap-southeast-1.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_multilingual_global &ServiceParameters={"url": "https://xxxxxx.aliyuncs.com/sample/****.wav"}Contoh respons
{ "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2", "Message":"SUCCESS", "Data":{ "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1x****" }, "Code":200 }Contoh mengkueri hasil tugas
Contoh permintaan
http://green-cip.ap-southeast-1.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_multilingual_global &ServiceParameters={"taskId": "au_f_O5zxxxxxxxxxxxxxxxx-1x****"}Contoh respons
{ "RequestId":"926AD581-XXXXXXXXXXXXXX-7902AE", "Message":"success finished", "Data":{ "SliceDetails":[ { "EndTime":6, "StartTime":0, "Text":"Cuaca hari ini bagus.", "Labels":"", "Url":"http://xxxx.aliyuncs.com/cip-media/voice/****.wav" } ] }, "Code":200 }
Signature mechanism
Voice Moderation Edisi Tingkat Lanjut mengotentikasi setiap permintaan akses. Oleh karena itu, Anda harus menyertakan informasi signature (Signature) dalam setiap permintaan. Voice Moderation Edisi Tingkat Lanjut menggunakan enkripsi simetris dengan ID AccessKey dan Rahasia AccessKey untuk memverifikasi identitas pengirim permintaan.
ID AccessKey dan Rahasia AccessKey dikeluarkan oleh Alibaba Cloud (Anda dapat mengajukan dan mengelolanya di situs web Alibaba Cloud). ID AccessKey mengidentifikasi pengunjung; Rahasia AccessKey adalah kunci yang digunakan untuk mengenkripsi dan memverifikasi string signature. Kunci ini harus dirahasiakan secara ketat.
Saat mengakses layanan, tandatangani permintaan sebagai berikut:
Buat string kueri terkanonisasi menggunakan parameter permintaan.
Urutkan semua parameter permintaan dalam urutan leksikografis (termasuk parameter permintaan umum dan parameter spesifik operasi, tetapi tidak termasuk parameter Signature itu sendiri).
Lakukan URL encoding terhadap nama parameter dan nilainya menggunakan UTF-8.
CatatanSebagian besar pustaka encoding URL (seperti java.net.URLEncoder di Java) melakukan encoding berdasarkan tipe MIME application/x-www-form-urlencoded. Anda dapat menggunakan encoding ini lalu mengganti tanda plus (+) dengan %20, tanda bintang (*) dengan %2A, dan %7E kembali menjadi tilde (~) untuk mendapatkan string yang diencode seperti yang dijelaskan di atas.
Aturan encoding URL adalah sebagai berikut:
Karakter A-Z, a-z, 0-9, tanda hubung (-), garis bawah (_), titik (.), dan tilde (~) tidak diencode.
Karakter lain diencode sebagai
%XY, di mana XY adalah representasi heksadesimal dari kode ASCII karakter tersebut. Misalnya, tanda kutip ganda (") diencode sebagai%22.Karakter UTF-8 yang diperluas diencode sebagai
%XY%ZA….Perhatikan bahwa karakter spasi ( ) harus diencode sebagai
%20, bukan tanda plus (+).
Hubungkan setiap nama parameter yang diencode dan nilainya dengan tanda sama dengan (=).
Gabungkan pasangan parameter=nilai dalam urutan leksikografis dengan tanda ampersand (&) untuk membentuk string kueri terkanonisasi.
Buat string untuk perhitungan signature menggunakan string terkanonisasi dari langkah a.i:
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)CatatanDi mana HTTPMethod adalah metode HTTP yang digunakan untuk mengirimkan permintaan, seperti POST. percentEncode(/) adalah nilai yang diperoleh dengan mengencode karakter (/) sesuai aturan encoding URL yang dijelaskan dalam langkah a.ii, yaitu
%2F. percentEncode(CanonicalizedQueryString) adalah string yang diperoleh dengan mengencode string kueri terkanonisasi yang dibuat dalam langkah a.i sesuai aturan encoding URL yang dijelaskan dalam langkah a.ii.Hitung nilai HMAC menggunakan string to sign sebagaimana didefinisikan dalam RFC 2104.
CatatanCatatan: Kunci yang digunakan untuk perhitungan signature adalah Rahasia AccessKey diikuti oleh karakter
&(ASCII: 38). Algoritma hash yang digunakan adalah SHA1.Encode nilai HMAC menggunakan Base64 untuk mendapatkan Signature.
Tambahkan nilai signature sebagai parameter Signature ke parameter permintaan untuk menyelesaikan proses penandatanganan.
CatatanSaat mengirimkan nilai signature ke server Content Moderation sebagai parameter permintaan akhir, encode sesuai RFC 3986, sama seperti parameter lainnya.
Catatan penggunaan
Gunakan kembali instance client. Membuat client baru untuk setiap permintaan menciptakan koneksi yang tidak perlu. Inisialisasi satu client per titik akhir dan gunakan kembali di seluruh permintaan.
Muat kredensial dari variabel lingkungan. Atur
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRETsebagai variabel lingkungan. Jangan hardcode nilai AccessKey di kode Anda.Kedaluwarsa token unggah. Token unggah sementara dari
DescribeUploadTokenkedaluwarsa. Periksa bidangexpirationdan perbarui token sebelum kedaluwarsa.Titik akhir VPC. Jika aplikasi Anda berjalan di VPC, gunakan titik akhir VPC (
green-cip-vpc.ap-southeast-1.aliyuncs.com) untuk menghindari biaya egress jaringan publik.