Anda dapat memanggil Voice Moderation 2.0 menggunakan SDK atau dengan membuat permintaan HTTPS native. Kami menyarankan penggunaan SDK karena SDK menyederhanakan proses dengan menangani tugas seperti verifikasi signature dan konstruksi body permintaan. Topik ini menjelaskan cara mengakses Voice Moderation 2.0.
Langkah 1: Aktifkan layanan
Buka halaman Aktifkan Layanan untuk mengaktifkan layanan Voice Moderation Versi 2.0. Metode penagihan default adalah pay-as-you-go. Setelah Anda mengintegrasikan dan menggunakan API, biaya akan dikenakan secara otomatis berdasarkan penggunaan aktual Anda. Penagihan harian dilakukan sesuai dengan penggunaan tersebut. Jika Anda tidak memanggil layanan, tidak ada biaya yang dikenakan.
Setelah Anda mengaktifkan layanan Content Moderation (Voice) Versi 2.0, metode penagihan default adalah pay-as-you-go, yang menagih Anda setiap hari berdasarkan penggunaan aktual. Jika Anda tidak memanggil layanan, Anda tidak akan dikenai biaya.
Langkah 2: Berikan izin kepada pengguna RAM
Sebelum menggunakan SDK atau memanggil operasi API, Anda harus memberikan izin kepada pengguna Resource Access Management (RAM). Anda dapat membuat pasangan AccessKey untuk akun Alibaba Cloud atau pengguna RAM. Saat memanggil operasi API Alibaba Cloud, Anda harus menggunakan pasangan AccessKey tersebut untuk memverifikasi identitas Anda. Untuk informasi selengkapnya, lihat Buat pasangan AccessKey.
Prosedur
Masuk ke Konsol RAM sebagai administrator RAM.
- Buat pengguna RAM.
Untuk informasi selengkapnya, lihat Buat pengguna RAM.
- Berikan kebijakan sistem
AliyunYundunGreenWebFullAccesskepada pengguna RAM.Untuk informasi selengkapnya, lihat Berikan izin kepada pengguna RAM.
Setelah menyelesaikan langkah-langkah di atas, Anda dapat memanggil API Content Moderation sebagai pengguna RAM.
Langkah 3: Instal dan hubungkan ke layanan voice moderation
Tabel berikut menjelaskan wilayah yang didukung.
Wilayah | Titik Akhir Publik | Titik akhir VPC |
Singapura | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
Jika Anda memerlukan contoh kode SDK dalam bahasa pemrograman lain, Anda dapat menghasilkannya menggunakan OpenAPI Explorer. OpenAPI Explorer menghasilkan contoh kode secara dinamis untuk berbagai SDK berdasarkan operasi yang dipilih. Operasi API berikut tersedia untuk debugging online:
Dalam kode SDK Alibaba Cloud, Anda dapat membuat kredensial akses default dengan mendefinisikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET. Saat Anda memanggil operasi API layanan Alibaba Cloud, sistem akan langsung mengakses kredensial tersebut, membaca pasangan AccessKey Anda, lalu menyelesaikan autentikasi secara otomatis. Sebelum menggunakan contoh kode SDK, Anda harus mengonfigurasi variabel lingkungan terlebih dahulu. Untuk informasi selengkapnya, lihat Konfigurasikan kredensial.
Java SDK
Java 1.8 atau yang lebih baru didukung.
Untuk informasi selengkapnya tentang kode sumber, lihat kode sumber Java SDK atau kode sumber Java SDK (jalur OSS).
SDK mendukung tiga skenario moderasi audio berikut.
Mendeteksi audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation Versi 2.0 dapat mengambil dan memoderasi file tersebut dari URL.
Tambahkan dependensi berikut ke file dependencies:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.11</version> </dependency>Gunakan Java SDK.
Kode contoh untuk mengirimkan tugas voice moderation
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyun.green20220302.Client; import com.aliyun.green20220302.models.VoiceModerationRequest; import com.aliyun.green20220302.models.VoiceModerationResponse; import com.aliyun.green20220302.models.VoiceModerationResponseBody; import com.aliyun.teaopenapi.models.Config; public class VoiceModerationDemo { public static void main(String[] args) throws Exception { Config config = new Config(); /** * Pasangan AccessKey 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("url", "https://xxxx/xxx/sample.wav"); VoiceModerationRequest voiceModerationRequest = new VoiceModerationRequest(); // Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. voiceModerationRequest.setService("audio_multilingual_global"); voiceModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { VoiceModerationResponse response = client.voiceModeration(voiceModerationRequest); if (response.getStatusCode() == 200) { VoiceModerationResponseBody result = response.getBody(); System.out.println(JSON.toJSONString(result)); System.out.println("requestId = " + result.getRequestId()); System.out.println("code = " + result.getCode()); System.out.println("msg = " + result.getMessage()); Integer code = result.getCode(); if (200 == code) { VoiceModerationResponseBody.VoiceModerationResponseBodyData data = result.getData(); System.out.println("taskId = [" + data.getTaskId() + "]"); } else { System.out.println("voice moderation tidak berhasil. code:" + code); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } catch (Exception e) { e.printStackTrace(); } } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 AccessKey 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 diajukan. 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("code=" + result.getCode()); System.out.println("msg=" + result.getMessage()); if (200 == result.getCode()) { VoiceModerationResultResponseBody.VoiceModerationResultResponseBodyData data = result.getData(); System.out.println("sliceDetails = " + JSON.toJSONString(data.getSliceDetails())); System.out.println("taskId = " + data.getTaskId()); System.out.println("url = " + data.getUrl()); } else { System.out.println("hasil voice moderation tidak berhasil. code:" + result.getCode()); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } catch (Exception e) { e.printStackTrace(); } } }
Mendeteksi audio lokal
Skenario
Jika audio yang perlu Anda moderasi disimpan di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah audio tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Layanan Audio Moderation Versi 2.0 kemudian dapat langsung mengakses OSS untuk mengambil dan memoderasi konten audio.
Tambahkan dependensi berikut ke file dependencies:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.11</version> </dependency>Instal SDK OSS:
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.16.3</version> </dependency>Gunakan Java SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 diterapkan 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<>(); /**Klien yang digunakan untuk mengunggah file.*/ public static OSS ossClient = null; /** * Buat klien. * * @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 klien untuk mengunggah file. * * @param tokenData * @param isVPC */ public static void getOssClient(DescribeUploadTokenResponseBody.DescribeUploadTokenResponseBodyData tokenData, boolean isVPC) { //Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance klien. 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 klien. Ini menghindari pembuatan koneksi berulang. Client client = createClient(accessKeyId, accessKeySecret, endpoint); RuntimeOptions runtime = new RuntimeOptions(); //Jalur 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 klien untuk mengunggah file. getOssClient(tokenMap.get(endpoint), isVPC); //Unggah file. String objectName = uploadFile(filePath, tokenMap.get(endpoint)); // Bangun parameter moderasi. Map<String, String> serviceParameters = new HashMap<>(); //Informasi tentang unggahan 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 AccessKey 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("code = " + 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("voice moderation tidak berhasil. code:" + code); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } } catch (Exception e) { e.printStackTrace(); } } }Tugas deteksi ucapan: Contoh kode
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 AccessKey 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 diajukan. 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("code=" + result.getCode()); System.out.println("msg=" + result.getMessage()); if (200 == result.getCode()) { VoiceModerationResultResponseBody.VoiceModerationResultResponseBodyData data = result.getData(); System.out.println("sliceDetails = " + JSON.toJSONString(data.getSliceDetails())); System.out.println("taskId = " + data.getTaskId()); System.out.println("url = " + data.getUrl()); System.out.println("riskLevel = " + data.getRiskLevel()); } else { System.out.println("hasil voice moderation tidak berhasil. code:" + result.getCode()); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } catch (Exception e) { e.printStackTrace(); } } }
Moderasi file audio di OSS
Skenario
Jika file audio yang perlu Anda moderasi sudah disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio Moderation Versi 2.0 kemudian menggunakan peran layanan tersebut untuk mengambil dan memoderasi file dari OSS. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Tambahkan dependensi berikut ke file dependencies:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.11</version> </dependency>Gunakan Java SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 AccessKey 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 live stream audio. voiceModerationRequest.setService("audio_media_detection"); voiceModerationRequest.setServiceParameters(serviceParameters.toJSONString()); try { VoiceModerationResponse response = client.voiceModeration(voiceModerationRequest); if (response.getStatusCode() == 200) { VoiceModerationResponseBody result = response.getBody(); System.out.println(JSON.toJSONString(result)); System.out.println("requestId = " + result.getRequestId()); System.out.println("code = " + result.getCode()); System.out.println("msg = " + result.getMessage()); Integer code = result.getCode(); if (200 == code) { VoiceModerationResponseBody.VoiceModerationResponseBodyData data = result.getData(); System.out.println("taskId = [" + data.getTaskId() + "]"); } else { System.out.println("voice moderation tidak berhasil. code:" + code); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } catch (Exception e) { e.printStackTrace(); } } }Anda dapat memperoleh contoh kode untuk tugas deteksi ucapan.
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 AccessKey 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 diajukan. 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("code=" + result.getCode()); System.out.println("msg=" + result.getMessage()); if (200 == result.getCode()) { VoiceModerationResultResponseBody.VoiceModerationResultResponseBodyData data = result.getData(); System.out.println("sliceDetails = " + JSON.toJSONString(data.getSliceDetails())); System.out.println("taskId = " + data.getTaskId()); System.out.println("url = " + data.getUrl()); System.out.println("riskLevel = " + data.getRiskLevel()); } else { System.out.println("hasil voice moderation tidak berhasil. code:" + result.getCode()); } } else { System.out.println("respons tidak berhasil. status:" + response.getStatusCode()); } } catch (Exception e) { e.printStackTrace(); } } }
Python SDK
Python 3.6 atau yang lebih baru didukung.
Untuk informasi selengkapnya tentang kode sumber, lihat kode sumber Python SDK.
SDK mendukung tiga skenario moderasi audio berikut.
Mendeteksi audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation V2.0 dapat mengambil dan memoderasi file tersebut dari URL.
Jalankan perintah berikut untuk menginstal dependensi:
pip install alibabacloud_green20220302==2.2.11Gunakan Python SDK.
Kode contoh untuk mengirimkan tugas voice moderation
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config import json config = Config( # Pasangan AccessKey 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 dalam kode proyek. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan', access_key_secret='Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan', # Periode timeout koneksi dalam milidetik (ms). connect_timeout=10000, # Periode timeout baca dalam milidetik (ms). read_timeout=3000, region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. clt = Client(config) serviceParameters = { 'url': 'https://xxxx/xxx/sample.wav', } voiceModerationRequest = models.VoiceModerationRequest( # Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. service='audio_multilingual_global', service_parameters=json.dumps(serviceParameters) ) try: response = clt.voice_moderation(voiceModerationRequest) if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response)) except Exception as err: print(err)Mengambil hasil tugas deteksi suara
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config import json config = Config( # Pasangan AccessKey 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 dalam kode proyek. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan', access_key_secret='Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan', # Periode timeout koneksi dalam milidetik (ms). connect_timeout=10000, # Periode timeout baca dalam milidetik (ms). read_timeout=3000, region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. clt = Client(config) # taskId yang dikembalikan saat tugas diajukan. serviceParameters = { "taskId": 'ID tugas yang dikembalikan untuk tugas moderasi' } voiceModerationResultRequest = models.VoiceModerationResultRequest( # Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. service='audio_multilingual_global', service_parameters=json.dumps(serviceParameters) ) try: response = clt.voice_moderation_result(voiceModerationResultRequest) if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response)) except Exception as err: print(err)Batalkan Tugas Deteksi Live Stream
Mendeteksi audio lokal
Skenario
Jika audio yang perlu Anda moderasi disimpan di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah audio tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Layanan Audio Moderation Versi 2.0 kemudian dapat langsung mengakses OSS untuk mengambil konten audio untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
pip install alibabacloud_green20220302==2.2.11Instal SDK OSS:
pip install oss2Gunakan Python SDK.
Kode contoh untuk mengirimkan tugas voice moderation
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config from alibabacloud_tea_util import models as util_models import json import uuid import oss2 import time import os # Menentukan apakah layanan diterapkan di VPC. is_vpc = False # Token yang digunakan untuk mengunggah file. Kunci adalah titik akhir dan nilai adalah token. token_dict = dict() # Klien yang digunakan untuk mengunggah file. bucket = None # Buat klien. def create_client(access_key_id, access_key_secret, endpoint): config = Config( access_key_id=access_key_id, access_key_secret=access_key_secret, # Atur proxy HTTP. # http_proxy='http://10.10.xx.xx:xxxx', # Atur proxy HTTPS. # https_proxy='https://10.10.xx.xx:xxxx', # Ubah titik akhir sesuai kebutuhan. endpoint=endpoint ) return Client(config) # Buat klien untuk mengunggah file. def create_oss_bucket(is_vpc, upload_token): global token_dict global bucket auth = oss2.StsAuth(upload_token.access_key_id, upload_token.access_key_secret, upload_token.security_token) if (is_vpc): end_point = upload_token.oss_internal_end_point else: end_point = upload_token.oss_internet_end_point # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance bucket. Ini menghindari pembuatan koneksi berulang. bucket = oss2.Bucket(auth, end_point, upload_token.bucket_name) # Unggah file. def upload_file(file_name, upload_token): create_oss_bucket(is_vpc, upload_token) object_name = upload_token.file_name_prefix + str(uuid.uuid1()) + '.' + file_name.split('.')[-1] bucket.put_object_from_file(object_name, file_name) return object_name def invoke_function(access_key_id, access_key_secret, endpoint): # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. client = create_client(access_key_id, access_key_secret, endpoint) # Buat instance RuntimeObject dan atur parameter runtime. runtime = util_models.RuntimeOptions() # Jalur lengkap file lokal. Contoh: D:\localPath\exampleFile.mp3 file_path = 'D:\localPath\exampleFile.mp3' # Dapatkan token sementara untuk mengunggah file. upload_token = token_dict.setdefault(endpoint, None) if (upload_token == None) or int(upload_token.expiration) <= int(time.time()): response = client.describe_upload_token() upload_token = response.body.data token_dict[endpoint] = upload_token # Unggah file. object_name = upload_file(file_path, upload_token) # Bangun parameter moderasi. service_parameters = { # Nama bucket tempat file yang akan dimoderasi disimpan. 'ossBucketName': upload_token.bucket_name, # File yang akan dimoderasi. 'ossObjectName': object_name, # ID unik data. 'dataId': str(uuid.uuid4()) } voice_moderation_request = models.VoiceModerationRequest( # Layanan moderasi audio. Nilainya adalah kode layanan yang dikonfigurasikan untuk aturan di konsol Voice Moderation 2.0. Contoh: audio_multilingual_global. service='audio_multilingual_global', service_parameters=json.dumps(service_parameters) ) try: return client.voice_moderation_with_options(voice_moderation_request, runtime) except Exception as err: print(err) if __name__ == '__main__': # Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id = 'Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan' access_key_secret = 'Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan' # Ubah wilayah dan titik akhir sesuai kebutuhan. response = invoke_function(access_key_id, access_key_secret, 'green-cip.ap-southeast-1.aliyuncs.com') if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) if result.code == 200: result_data = result.data print('hasil: {}'.format(result_data)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response))Dapatkan hasil tugas deteksi ucapan
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config import json config = Config( # Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan', access_key_secret='Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan', # Periode timeout koneksi dalam milidetik (ms). connect_timeout=10000, # Periode timeout baca dalam milidetik (ms). read_timeout=3000, region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. clt = Client(config) # taskId yang dikembalikan saat tugas diajukan. serviceParameters = { "taskId": 'ID tugas yang dikembalikan untuk tugas moderasi' } voiceModerationResultRequest = models.VoiceModerationResultRequest( # Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. service='audio_multilingual_global', service_parameters=json.dumps(serviceParameters) ) try: response = clt.voice_moderation_result(voiceModerationResultRequest) if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response)) except Exception as err: print(err)
Moderasi file audio di OSS
Skenario
Jika file audio yang perlu Anda moderasi disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio ModerationV2.0 kemudian menggunakan peran layanan tersebut untuk mengambil file dari OSS untuk moderasi. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Jalankan perintah berikut untuk menginstal dependensi:
pip install alibabacloud_green20220302==2.2.11Gunakan Python SDK.
Kode contoh untuk mengirimkan tugas voice moderation
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config import json config = Config( # Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan', access_key_secret='Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan', # Periode timeout koneksi dalam milidetik (ms). connect_timeout=10000, # Periode timeout baca dalam milidetik (ms). read_timeout=3000, region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. clt = Client(config) serviceParameters = { 'ossBucketName': 'bucket_01', 'ossObjectName': 'test/test.mp3', 'ossRegionId': 'cn-shanghai' } voiceModerationRequest = models.VoiceModerationRequest( # Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. service='audio_multilingual_global', service_parameters=json.dumps(serviceParameters) ) try: response = clt.voice_moderation(voiceModerationRequest) if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response)) except Exception as err: print(err)Ambil hasil tugas deteksi ucapan
# coding=utf-8 # python version >= 3.6 from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config import json config = Config( # Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. # Metode umum untuk mendapatkan variabel lingkungan: # Dapatkan ID AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] # Dapatkan rahasia AccessKey pengguna RAM Anda: os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] access_key_id='Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan', access_key_secret='Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan', # Periode timeout koneksi dalam milidetik (ms). connect_timeout=10000, # Periode timeout baca dalam milidetik (ms). read_timeout=3000, region_id='ap-southeast-1', endpoint='green-cip.ap-southeast-1.aliyuncs.com' ) # Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. clt = Client(config) # taskId yang dikembalikan saat tugas diajukan. serviceParameters = { "taskId": 'ID tugas yang dikembalikan untuk tugas moderasi' } voiceModerationResultRequest = models.VoiceModerationResultRequest( # Jenis moderasi: audio_multilingual_global untuk moderasi audio multibahasa. service='audio_multilingual_global', service_parameters=json.dumps(serviceParameters) ) try: response = clt.voice_moderation_result(voiceModerationResultRequest) if response.status_code == 200: # Panggilan berhasil. # Dapatkan hasil moderasi. result = response.body print('respons berhasil. hasil:{}'.format(result)) else: print('respons tidak berhasil. status:{} ,hasil:{}'.format(response.status_code, response)) except Exception as err: print(err)Membatalkan tugas moderasi live stream
PHP SDK
PHP 5.6 atau yang lebih baru didukung.
Untuk informasi selengkapnya tentang kode sumber, lihat kode sumber PHP SDK.
SDK mendukung tiga skenario moderasi audio berikut.
Pindai audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation Versi 2.0 dapat mengambil file tersebut dari URL untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
composer require alibabacloud/green-20220302 2.2.10Gunakan PHP SDK.
Kode contoh untuk mengirimkan tugas voice moderation
<?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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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('url' => 'https://xxxx/xxx/sample.wav'); $request->serviceParameters = json_encode($serviceParameters); $runtime = new RuntimeOptions(); $runtime->readTimeout = 6000; $runtime->connectTimeout = 3000; try { $response = $client->voiceModeration($request, $runtime); print_r($response->body); if (200 == $response->statusCode) { $body = $response->body; print_r("requestId = " . $body->requestId); print_r("code = " . $body->code); print_r("message = " . $body->message); if (200 == $body->code) { $data = $body->data; print_r("taskId = " . $data->taskId); } else { print_r("voice moderation tidak berhasil. code:" . $body->code); } } else { print_r("respons tidak berhasil. code:" . $response->statusCode); } } catch (TeaUnableRetryError $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }Kode contoh untuk mengkueri hasil tugas voice moderation
<?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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 diajukan. $serviceParameters = array('taskId' => 'au_f_O5z5iaIis3iI0X2oNYj7qa-1x****'); $request->serviceParameters = json_encode($serviceParameters); $runtime = new RuntimeOptions(); $runtime->readTimeout = 6000; $runtime->connectTimeout = 3000; try { $response = $client->voiceModerationResult($request, $runtime); print_r($response->body); if (200 == $response->statusCode) { $body = $response->body; print_r("requestId = " . $body->requestId); print_r("code = " . $body->code); print_r("message = " . $body->message); if (200 == $body->code) { $data = $body->data; print_r("liveId = " . $data->liveId); print_r("sliceDetails = " . $data->sliceDetails); print_r("riskLevel = " . $data->riskLevel); print_r("taskId = " . $data->taskId); print_r("url = " . $data->url); } else { print_r("hasil voice moderation tidak berhasil. code:" . $body->code); } } else { print_r("respons tidak berhasil. code:" . $response->statusCode); } } catch (TeaUnableRetryError $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Mendeteksi audio lokal
Skenario
Untuk memoderasi file audio yang berada di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah file tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Layanan Audio Moderation Versi 2.0 kemudian dapat langsung mengakses OSS untuk mengambil konten audio untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
composer require alibabacloud/green-20220302 2.2.10Instal SDK OSS:
composer require aliyuncs/oss-sdk-phpGunakan PHP SDK.
Kode contoh untuk mengirimkan tugas voice moderation
<?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 diterapkan di VPC. $isVPC = false; // Token yang digunakan untuk mengunggah file. $tokenArray = array(); // Klien yang digunakan untuk mengunggah file. $ossClient = null; /** * Buat klien. * @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 klien 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; } /** * Kirim 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([]); // Jalur 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]); // Bangun 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); // Kirim tugas moderasi. return $client->voiceModerationWithOptions($request, $runtime); } /** * Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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()); }Kode contoh untuk mengkueri hasil tugas voice moderation
<?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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 diajukan. $serviceParameters = array('taskId' => 'au_f_O5z5iaIis3iI0X2oNYj7qa-1x****'); $request->serviceParameters = json_encode($serviceParameters); $runtime = new RuntimeOptions(); $runtime->readTimeout = 6000; $runtime->connectTimeout = 3000; try { $response = $client->voiceModerationResult($request, $runtime); print_r($response->body); if (200 == $response->statusCode) { $body = $response->body; print_r("requestId = " . $body->requestId); print_r("code = " . $body->code); print_r("message = " . $body->message); if (200 == $body->code) { $data = $body->data; print_r("liveId = " . $data->liveId); print_r("sliceDetails = " . $data->sliceDetails); print_r("taskId = " . $data->taskId); print_r("url = " . $data->url); } else { print_r("hasil voice moderation tidak berhasil. code:" . $body->code); } } else { print_r("respons tidak berhasil. code:" . $response->statusCode); } } catch (TeaUnableRetryError $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Moderasi file audio di OSS
Skenario
Untuk memoderasi file audio yang disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio Moderation V2.0 menggunakan peran layanan ini untuk mengambil dan memoderasi file dari OSS. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Jalankan perintah berikut untuk menginstal dependensi:
composer require alibabacloud/green-20220302 2.2.10Gunakan PHP SDK.
Kode contoh untuk mengirimkan tugas voice moderation
<?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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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("code = " . $body->code); print_r("message = " . $body->message); if (200 == $body->code) { $data = $body->data; print_r("taskId = " . $data->taskId); } else { print_r("voice moderation tidak berhasil. code:" . $body->code); } } else { print_r("respons tidak berhasil. code:" . $response->statusCode); } } catch (TeaUnableRetryError $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }Kode contoh untuk mengkueri hasil tugas voice moderation
<?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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 diajukan. $serviceParameters = array('taskId' => 'au_f_O5z5iaIis3iI0X2oNYj7qa-1x****'); $request->serviceParameters = json_encode($serviceParameters); $runtime = new RuntimeOptions(); $runtime->readTimeout = 6000; $runtime->connectTimeout = 3000; try { $response = $client->voiceModerationResult($request, $runtime); print_r($response->body); if (200 == $response->statusCode) { $body = $response->body; print_r("requestId = " . $body->requestId); print_r("code = " . $body->code); print_r("message = " . $body->message); if (200 == $body->code) { $data = $body->data; print_r("liveId = " . $data->liveId); print_r("sliceDetails = " . $data->sliceDetails); print_r("taskId = " . $data->taskId); print_r("url = " . $data->url); } else { print_r("hasil voice moderation tidak berhasil. code:" . $body->code); } } else { print_r("respons tidak berhasil. code:" . $response->statusCode); } } catch (TeaUnableRetryError $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Go SDK
SDK mendukung tiga skenario moderasi audio berikut.
Mendeteksi audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation Versi 2.0 dapat mengambil file tersebut dari URL untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
go git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2Gunakan Go SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 tautan adalah 10 detik. Atur periode timeout sesuai. * Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, pengecualian ReadTimeout 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{}{ "url": "https://xxxx/xxx/sample.wav", }, ) request := green.VoiceModerationRequest{ // Layanan voice moderation. 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("voice moderation tidak berhasil. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 tautan adalah 10 detik. Atur periode timeout sesuai. * Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, pengecualian ReadTimeout 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 voice moderation. 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 voice moderation tidak berhasil. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }
Mendeteksi audio lokal
Skenario
Jika audio yang perlu Anda moderasi disimpan di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah audio tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Layanan Audio Moderation 2.0 kemudian dapat langsung mengakses OSS untuk mengambil konten audio untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
go git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2Instal SDK OSS:
go get github.com/aliyun/aliyun-oss-go-sdk/ossGunakan Go SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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) //Klien yang digunakan untuk mengunggah file. var Bucket *oss.Bucket //Menentukan apakah layanan diterapkan di VPC. var isVPC = false //Buat klien. 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 klien 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 untuk permintaan yang menggunakan instance parameter runtime ini. runtime := &util.RuntimeOptions{} //Jalur 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]) //Bangun 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 voice moderation. Service: tea.String("audio_multilingual_global"), ServiceParameters: tea.String(string(serviceParameters)), } return client.VoiceModerationWithOptions(voiceModerationRequest, runtime) } func main() { /** * Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 diubah 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("voice moderation tidak berhasil. status" + tea.ToString(body.Code)) } } else { fmt.Print("respons tidak berhasil. status:" + tea.ToString(statusCode)) } } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 tautan adalah 10 detik. Atur periode timeout sesuai. * Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, pengecualian ReadTimeout 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 voice moderation. 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 voice moderation tidak berhasil. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }
Moderasi file audio di OSS
Skenario
Jika file audio yang perlu Anda moderasi sudah disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio Moderation Versi 2.0 mengambil file dari OSS menggunakan peran layanan tersebut untuk melakukan moderasi. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Jalankan perintah berikut untuk menginstal dependensi:
go git clone --branch v2.2.11 github.com/alibabacloud-go/green-20220302/v2Gunakan Go SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 tautan adalah 10 detik. Atur periode timeout sesuai. * Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, pengecualian ReadTimeout 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 voice moderation. 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("voice moderation tidak berhasil. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 tautan adalah 10 detik. Atur periode timeout sesuai. * Jika nilai ReadTimeout kurang dari waktu pemrosesan sisi server, pengecualian ReadTimeout 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 voice moderation. 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 voice moderation tidak berhasil. code:" + tea.ToString(tea.Int32Value(voiceModerationResponse.Code))) } } else { fmt.Println("respons tidak berhasil. status:" + tea.ToString(statusCode)) } }
C# SDK
Untuk informasi selengkapnya tentang kode sumber, lihat kode sumber C# SDK.
SDK mendukung tiga skenario moderasi audio berikut.
Moderasi file audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation Versi 2.0 dapat mengambil file tersebut dari URL untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.10Gunakan C# SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 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) { // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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); // Bangun permintaan voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest voiceModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest(); // Layanan voice moderation. voiceModerationRequest.Service="audio_multilingual_global"; Dictionary<String,Object> task=new Dictionary<string, object>(); // URL file audio yang akan dimoderasi. URL harus dapat diakses publik. task.Add("url","https://xxxx/xxx/sample.wav"); voiceModerationRequest.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 { // Kirim tugas voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResponse response= client.VoiceModerationWithOptions(voiceModerationRequest, 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("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); } } } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 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) { // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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); // Bangun permintaan voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest(); // Layanan voice moderation. 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 { // Kirim tugas voice moderation. 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("code : " + response.Body.Code); Console.WriteLine("message : " + response.Body.Message); if(response.Body.Data is not null){ Console.WriteLine("taskId : " + response.Body.Data.TaskId); Console.WriteLine("liveId : " + response.Body.Data.LiveId); Console.WriteLine("url : " + response.Body.Data.Url); Console.WriteLine("sliceDetails : " + JsonConvert.SerializeObject(response.Body.Data.SliceDetails)); } } } } catch (TeaException error) { // 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); } } } }
Mendeteksi audio lokal
Skenario
Jika audio yang perlu Anda moderasi disimpan di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah audio tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Layanan Audio Moderation 2.0 kemudian dapat langsung mengakses OSS untuk mengambil konten audio untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.10Instal SDK OSS:
Instal menggunakan NuGet 1. Jika NuGet belum diinstal di Visual Studio Anda, instal NuGet. 2. Di Visual Studio, buat atau buka proyek. Pilih Tools > NuGet Package Manager > Manage NuGet Packages for Solution. 3. Cari aliyun.oss.sdk. Di hasilnya, temukan Aliyun.OSS.SDK (untuk .NET Framework) atau Aliyun.OSS.SDK.NetCore (untuk .NET Core). Pilih versi terbaru dan klik Install.Gunakan C# SDK.
Kode contoh untuk mengirimkan tugas voice moderation
// File ini dihasilkan otomatis, jangan edit. Terima kasih. using System; using Newtonsoft.Json; using Aliyun.OSS; namespace AlibabaCloud.SDK.Green20220302 { public class VoiceModerationAutoRoute { //Token yang digunakan untuk mengunggah file. public static Dictionary<String, Models.DescribeUploadTokenResponse> tokenDic = new Dictionary<String, Models.DescribeUploadTokenResponse>(); //Klien yang digunakan untuk mengunggah file. public static OssClient ossClient = null; //Menentukan apakah layanan diterapkan di VPC. public static Boolean isVPC = false; public static void Main(string[] args) { /** * Pasangan AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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"; // Ubah wilayah dan titik akhir sesuai kebutuhan. String endpoint = "green-cip.ap-southeast-1.aliyuncs.com"; Models.VoiceModerationResponse response = invoke( accessKeyId, accessKeySecret, endpoint ); //Routing otomatis. Wilayah diubah ke ap-southeast-1. if ( response is null || response.Body is null || AlibabaCloud.TeaUtil.Common.EqualNumber( 500, AlibabaCloud.TeaUtil.Common.AssertAsNumber(response.StatusCode) ) || AlibabaCloud.TeaUtil.Common.EqualString( "500", Convert.ToString(response.Body.Code) ) ) { endpoint = "green-cip.ap-southeast-1.aliyuncs.com"; response = invoke(accessKeyId, accessKeySecret, endpoint); ; } Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } //Buat klien. public static Client createClient( String accessKeyId, String accessKeySecret, String endpoint ) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = accessKeyId, AccessKeySecret = accessKeySecret, //Atur proxy HTTP. //HttpProxy = "http://10.10.xx.xx:xxxx", //Atur proxy HTTPS. //HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999", //Titik akhir layanan. Endpoint = endpoint, }; return new Client(config); } //Buat klien untuk mengunggah file. private static OssClient getOssClient( Models.DescribeUploadTokenResponse tokenResponse, Boolean isVPC ) { var tokenData = tokenResponse.Body.Data; if (isVPC) { return new OssClient( tokenData.OssInternalEndPoint, tokenData.AccessKeyId, tokenData.AccessKeySecret, tokenData.SecurityToken ); } else { return new OssClient( tokenData.OssInternetEndPoint, tokenData.AccessKeyId, tokenData.AccessKeySecret, tokenData.SecurityToken ); } } //Unggah file. public static String uploadFile( String filePath, Models.DescribeUploadTokenResponse tokenResponse ) { // Buat instance OssClient. ossClient = getOssClient(tokenResponse, isVPC); var tokenData = tokenResponse.Body.Data; String objectName = tokenData.FileNamePrefix + Guid.NewGuid().ToString() + "." + filePath.Split(".").GetValue(1); //Unggah file. ossClient.PutObject(tokenData.BucketName, objectName, filePath); return objectName; } //Kirim permintaan moderasi. public static Models.VoiceModerationResponse invoke( String accessKeyId, String accessKeySecret, String endpoint ) { //Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. Client client = createClient(accessKeyId, accessKeySecret, endpoint); //Atur parameter runtime. Pengaturan hanya berlaku untuk permintaan yang menggunakan instance parameter runtime ini. AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); //Jalur lengkap file lokal. Contoh: D:\localPath\exampleFile.wav. String filePath = "D:\localPath\exampleFile.wav"; try { //Dapatkan token sementara untuk mengunggah file. if ( !tokenDic.ContainsKey(endpoint) || tokenDic[endpoint].Body.Data.Expiration <= DateTimeOffset.Now.ToUnixTimeSeconds() ) { var tokenResponse = client.DescribeUploadToken(); tokenDic[endpoint] = tokenResponse; } //Unggah file. String objectName = uploadFile(filePath, tokenDic[endpoint]); //Bangun permintaan voice moderation. Models.VoiceModerationRequest voiceModerationRequest = new Models.VoiceModerationRequest(); //Layanan voice moderation. Contoh: audio_multilingual_global. voiceModerationRequest.Service = "audio_multilingual_global"; Dictionary<string, object> task = new Dictionary<string, object>(); //Informasi tentang file audio yang akan dimoderasi. task.Add("ossBucketName", tokenDic[endpoint].Body.Data.BucketName); task.Add("ossObjectName", objectName); //ID data yang akan dimoderasi. task.Add("dataId", Guid.NewGuid().ToString()); voiceModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task); //Panggil operasi API untuk mengkueri hasil moderasi. Models.VoiceModerationResponse response = client.VoiceModerationWithOptions( voiceModerationRequest, runtimeOptions ); return response; } catch (Exception _err) { Console.WriteLine(_err); return null; } } } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 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) { // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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); // Bangun permintaan voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest(); // Layanan voice moderation. 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 { // Kirim tugas voice moderation. 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("code : " + response.Body.Code); Console.WriteLine("message : " + response.Body.Message); if(response.Body.Data is not null){ Console.WriteLine("taskId : " + response.Body.Data.TaskId); Console.WriteLine("liveId : " + response.Body.Data.LiveId); Console.WriteLine("url : " + response.Body.Data.Url); Console.WriteLine("sliceDetails : " + JsonConvert.SerializeObject(response.Body.Data.SliceDetails)); } } } } catch (TeaException error) { // 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); } } } }
Moderasi file audio di OSS
Skenario
Jika file audio yang perlu Anda moderasi disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio Moderation Versi 2.0 menggunakan peran layanan ini untuk mengambil file dari OSS untuk moderasi. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Jalankan perintah berikut untuk menginstal dependensi:
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.10Gunakan C# SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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 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) { // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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); // Bangun permintaan voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest voiceModerationRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationRequest(); // Layanan voice moderation. 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 instance RuntimeObject dan atur parameter runtime. AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); runtime.ReadTimeout = 10000; runtime.ConnectTimeout = 10000; try { // Kirim tugas voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResponse response= client.VoiceModerationWithOptions(voiceModerationRequest, 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("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); } } } }Kode contoh untuk mengkueri hasil tugas voice moderation
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 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) { // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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 AccessKey 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 dalam kode proyek Anda. Hal ini dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan 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); // Bangun permintaan voice moderation. AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest voiceModerationResultRequest = new AlibabaCloud.SDK.Green20220302.Models.VoiceModerationResultRequest(); // Layanan voice moderation. 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 { // Kirim tugas voice moderation. 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("code : " + response.Body.Code); Console.WriteLine("message : " + response.Body.Message); if(response.Body.Data is not null){ Console.WriteLine("taskId : " + response.Body.Data.TaskId); Console.WriteLine("liveId : " + response.Body.Data.LiveId); Console.WriteLine("url : " + response.Body.Data.Url); Console.WriteLine("sliceDetails : " + JsonConvert.SerializeObject(response.Body.Data.SliceDetails)); } } } } catch (TeaException error) { // 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); } } } }
Node.js SDK
Untuk informasi selengkapnya tentang kode sumber, lihat kode sumber Node.js SDK.
SDK mendukung tiga skenario moderasi audio berikut.
Moderasi file audio yang dapat diakses publik
Skenario
Jika file audio untuk moderasi dapat diakses dari URL publik, layanan Audio Moderation Versi 2.0 dapat mengambil file tersebut dari URL untuk moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
npm install @alicloud/green20220302@2.2.10Gunakan Node.js SDK.
Kode contoh untuk mengirimkan tugas voice moderation
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 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(); // Bangun objek permintaan. const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Layanan voice moderation. "service": "audio_multilingual_global", // URL file 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengkueri hasil tugas voice moderation
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 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(); // Bangun objek permintaan. const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Layanan voice moderation. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID tugas yang hasil moderasinya ingin Anda kueri>"}) }); // 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Mendeteksi audio lokal
Skenario
Jika audio yang perlu Anda moderasi disimpan di mesin lokal dan tidak memiliki URL publik, Anda dapat mengunggah audio tersebut ke bucket Object Storage Service (OSS) yang disediakan oleh Content Moderation. Hal ini memungkinkan layanan Audio Moderation Versi 2.0 untuk langsung mengakses OSS, mengambil konten audio, dan melakukan moderasi.
Jalankan perintah berikut untuk menginstal dependensi:
npm install @alicloud/green20220302@2.2.10Instal SDK OSS:
npm install ali-oss --saveGunakan Node.js SDK.
Kode contoh untuk mengirimkan tugas voice moderation
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: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. //Menentukan apakah layanan diterapkan di VPC. var isVPC = false; //Token yang digunakan untuk mengunggah file. var tokenDic = new Array(); //Klien yang digunakan untuk mengunggah file. var ossClient; //Atur titik akhir. var endpoint = 'green-cip.ap-southeast-1.aliyuncs.com' //Jalur file lokal. var filePath = 'D:\\test\\voice\\cf02.wav' //Layanan moderasi. var service = 'audio_multilingual_global' class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: "Kami menyarankan Anda mendapatkan ID AccessKey pengguna RAM Anda dari variabel lingkungan", // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. accessKeySecret: "Kami menyarankan Anda mendapatkan rahasia AccessKey pengguna RAM Anda dari variabel lingkungan", endpoint: endpoint, }); return new Green20220302.default(config); } //Buat klien untuk mengunggah 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 sementara untuk mengunggah 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 klien yang digunakan untuk mengunggah 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)); // Bangun objek permintaan. const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Layanan moderasi. "service": service, // URL 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengkueri hasil tugas voice moderation
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 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(); // Bangun objek permintaan. const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Layanan voice moderation. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID tugas yang hasil moderasinya ingin Anda kueri>"}) }); // 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Moderasi file audio di OSS
Skenario
Jika file audio yang perlu Anda moderasi sudah disimpan di Alibaba Cloud Object Storage Service (OSS), Anda dapat membuat peran layanan untuk memberikan akses layanan Content Moderation ke OSS. Layanan Audio Moderation V2.0 menggunakan peran layanan tersebut untuk mengambil file dari OSS untuk moderasi. Untuk membuat peran layanan, kunjungi halaman Otorisasi Akses Sumber Daya Cloud.
Jalankan perintah berikut untuk menginstal dependensi:
npm install @alicloud/green20220302@2.2.10Gunakan Node.js SDK.
Kode contoh untuk mengirimkan tugas voice moderation
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 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(); // Bangun objek permintaan. const voiceModerationRequest = new Green20220302.VoiceModerationRequest({ // Layanan voice moderation. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({ // Wilayah tempat bucket yang menyimpan file yang akan dimoderasi berada. Contoh: cn-shanghai "ossRegionId": "cn-shanghai", // Nama bucket yang menyimpan file yang akan dimoderasi. 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();Kode contoh untuk mengkueri hasil tugas voice moderation
const Green20220302 = require('@alicloud/green20220302'); const OpenApi = require('@alicloud/openapi-client'); const Util = require('@alicloud/tea-util'); // Catatan: Untuk meningkatkan kinerja moderasi, gunakan kembali instance client. Ini menghindari pembuatan koneksi berulang. // Menyematkan pasangan AccessKey secara langsung dalam kode proyek Anda dapat menyebabkan kebocoran pasangan AccessKey dan mengompromikan keamanan semua sumber daya dalam akun Anda. Kode berikut hanya untuk referensi. class Client { static createClient() { const config = new OpenApi.Config({ // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], // Wajib. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 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(); // Bangun objek permintaan. const voiceModerationResultRequest = new Green20220302.VoiceModerationResultRequest({ // Layanan voice moderation. "service": "audio_multilingual_global", "serviceParameters": JSON.stringify({"taskId":"<ID tugas yang hasil moderasinya ingin Anda kueri>"}) }); // 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) { // Bagian ini hanya untuk pencetakan. Tangani pengecualian dengan hati-hati dalam proyek Anda. Jangan abaikan pengecualian. // Pesan kesalahan console.log('Terjadi kesalahan:', error.message); } } } Client.main();
Panggilan HTTPS Native
Request method
URL permintaan layanan: https://green-cip.{region}.aliyuncs.com
Protokol: HTTPS
Metode: POST
Common request parameters
Permintaan ke operasi API Voice Moderation 2.0 mencakup parameter permintaan umum dan parameter permintaan spesifik operasi. Parameter permintaan umum diperlukan untuk setiap operasi API dan dijelaskan dalam tabel berikut.
Nama
Type
Wajib
Deskripsi
Format
String
Ya
Format respons. Nilai yang valid:
JSON (default)
XML
Version
String
Ya
Versi API. Nilainya dalam format YYYY-MM-DD. Tetapkan nilai ke 2022-03-02.
AccessKeyId
String
Ya
ID AccessKey yang disediakan oleh Alibaba Cloud.
Signature
String
Ya
String signature permintaan. Untuk informasi selengkapnya tentang cara menghitung signature, lihat bagian metode Signature dalam topik ini.
SignatureMethod
String
Ya
Metode signature. HMAC-SHA1 didukung.
Timestamp
String
Ya
Timestamp permintaan. Waktu mengikuti standar ISO 8601 dan harus dalam UTC.
Formatnya adalah yyyy-MM-ddTHH:mm:ssZ.
Misalnya, 09:13:14 pada 12 Desember 2022 (UTC+8) direpresentasikan sebagai 2022-12-12T01:13:14Z.
SignatureVersion
String
Ya
Versi algoritma signature. Tetapkan nilai ke 1.0.
SignatureNonce
String
Ya
Bilangan acak unik yang digunakan untuk mencegah serangan replay. Anda harus menggunakan bilangan acak yang berbeda untuk setiap permintaan.
Action
String
Ya
Nilai yang valid:
VoiceModeration
VoiceModerationResult
Common response parameters
Sistem mengembalikan RequestId unik untuk setiap permintaan API, terlepas dari apakah panggilan berhasil atau tidak. Parameter respons lainnya bervariasi tergantung pada operasi API.
{ "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2", "Message":"SUCCESS", "Data":{ "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1****" }, "Code":200 }Code examples
Respons contoh berikut diformat untuk meningkatkan keterbacaan. Respons aktual tidak diformat dengan jeda baris atau indentasi.
Tugas moderasi contoh
Permintaan contoh
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"}Respons keberhasilan contoh
{ "RequestId":"20B935A9-XXXXXXXX-XXXXXXXX0C2", "Message":"SUCCESS", "Data":{ "TaskId":"au_f_O5xxxxxxxxxxxxxxqa-1x****" }, "Code":200 }Tugas kueri contoh
Permintaan contoh
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****"}Respons keberhasilan contoh
{ "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 method
Layanan Voice Moderation 2.0 mengotentikasi setiap permintaan akses. Oleh karena itu, Anda harus menyertakan informasi signature dalam setiap permintaan. Voice Moderation 2.0 menggunakan enkripsi simetris dengan pasangan AccessKey untuk mengotentikasi pengirim permintaan.
Pasangan AccessKey, yang terdiri dari ID AccessKey dan rahasia AccessKey, dikeluarkan oleh Alibaba Cloud. Anda dapat mengajukan dan mengelolanya di situs web Alibaba Cloud. ID AccessKey digunakan untuk memverifikasi identitas pengguna, dan rahasia AccessKey digunakan untuk mengenkripsi dan memverifikasi string signature. Anda harus menjaga kerahasiaan rahasia AccessKey Anda.
Untuk menandatangani permintaan, lakukan langkah-langkah berikut:
Buat string kueri yang dinormalisasi.
Urutkan semua parameter permintaan, termasuk parameter umum dan parameter spesifik operasi tetapi bukan parameter Signature, secara alfabet berdasarkan nama parameter.
Encode nama dan nilai parameter permintaan. Nama dan nilai parameter harus di-URL-encode menggunakan set karakter UTF-8.
CatatanSebagian besar pustaka yang mendukung encoding URL, seperti
java.net.URLEncoderdi Java, mengencode data sesuai dengan tipe MIMEapplication/x-www-form-urlencoded. Untuk menghasilkan string yang diencode yang sesuai dengan aturan di atas, Anda dapat menggunakan metode encoding ini dan kemudian melakukan penggantian berikut pada string keluaran: ganti tanda plus (+) dengan %20, tanda bintang (*) dengan %2A, dan %7E dengan tilde (~).Aturan encoding URL adalah sebagai berikut:
Huruf kapital, huruf kecil, angka, dan karakter khusus seperti tanda hubung (-), garis bawah (_), titik (.), dan tilde (~) tidak diencode.
Karakter lain diencode dalam format
%XY, di mana XY merepresentasikan kode ASCII heksadesimal karakter tersebut. Misalnya, tanda kutip ganda (") diencode sebagai%22.Karakter UTF-8 yang diperluas diencode dalam format
%XY%ZA….Spasi diencode sebagai
%20, bukan tanda plus (+).
Hubungkan nama dan nilai parameter yang diencode dengan tanda sama dengan (=).
Hubungkan pasangan kunci-nilai dengan tanda ampersand (&) untuk membuat string kueri yang dinormalisasi.
Bangun string yang akan ditandatangani menggunakan string kanonis dari langkah a.i sesuai aturan berikut:
StringToSign= HTTPMethod + "&" + percentEncode("/") + "&" + percentEncode(CanonicalizedQueryString)CatatanHTTPMethod adalah metode HTTP permintaan, seperti POST. percentEncode("/") adalah nilai yang diencode dari karakter garis miring (/), sesuai aturan encoding URL yang dijelaskan dalam Langkah 1.b. Nilai yang diencode adalah
%2F. percentEncode(CanonicalizedQueryString) adalah string yang diencode dari string kueri kanonis dari Langkah 1.d, sesuai aturan encoding URL yang dijelaskan dalam Langkah 1.b.Hitung nilai HMAC dari string-to-sign sesuai RFC 2104.
CatatanKunci yang digunakan untuk menghitung signature adalah rahasia AccessKey Anda yang ditambahkan dengan karakter ampersand (
&) (kode ASCII 38). Algoritma hash SHA1 digunakan.Encode nilai HMAC dalam Base64 untuk membuat string signature.
Tambahkan string signature ke permintaan sebagai parameter Signature.
CatatanNilai Signature harus di-URL-encode sesuai RFC 3986 sebelum Anda menambahkannya ke permintaan.