ARTC SDK menyediakan efek audio real-time, termasuk voice change, reverberation, dan voice beautification. Selama panggilan Real-Time Communication (RTC), Anda dapat memanggil API untuk menerapkan efek ini pada suara pengguna lokal guna menciptakan pengalaman yang lebih menarik dan menghibur.
Fitur
Anda dapat dengan cepat mengaktifkan efek audio ini dengan memanggil API terkait:
-
Voice change: Ubah suara pengguna agar terdengar seperti orang tua, anak laki-laki, atau anak perempuan.
-
Reverberation: Tambahkan efek reverberasi untuk menciptakan suasana spasial sehingga suara pengguna terdengar seolah berasal dari lokasi tertentu.
-
Voice beautification: Sesuaikan timbre suara ke gaya tertentu, seperti Magnetic atau Fresh.
-
Custom voice effect: Selain mode preset, Anda dapat memanggil API untuk menyesuaikan pitch, pengaturan reverberasi, dan equalizer guna membuat efek suara kustom.
Kode contoh
ARTC menyediakan proyek contoh open-source. Anda dapat mengunduh proyek tersebut atau melihat kode sumbernya di lokasi berikut:
Konfigurasikan voice change, reverberation, dan voice beautification di Android: Android/ARTCExample/BasicUsage/src/main/java/com/aliyun/artc/api/basicusage/VoiceChange/VoiceChangeActivity.java
Konfigurasikan voice change, reverberation, dan voice beautification di iOS: iOS/ARTCExample/BasicUsage/VoiceChange/VoiceChangeVC.swift
Prasyarat
Sebelum memulai, pastikan Anda telah menyelesaikan hal-hal berikut:
-
Anda memiliki Akun Alibaba Cloud yang valid dan telah membuat aplikasi RTC. Untuk informasi selengkapnya, lihat Buat aplikasi. Dapatkan App ID dan App Key dari Konsol Manajemen Aplikasi.
-
Anda telah menyelesaikan integrasi SDK dan mengimplementasikan fungsionalitas RTC dasar dalam proyek Anda. Untuk instruksi integrasi SDK, lihat Unduh dan integrasikan SDK. Untuk mengimplementasikan panggilan dasar, lihat Implementasikan panggilan audio dan video.
Implementasi
Bagian ini menjelaskan cara memanggil API dalam proyek Anda untuk menerapkan berbagai efek audio.
Voice change
Panggil metode setAudioEffectVoiceChangerMode untuk menerapkan efek voice change, seperti Elder, Boy, atau Girl. Setiap efek sesuai dengan nilai enumerasi yang tercantum dalam tabel berikut:
|
Voice change mode |
Enumeration |
|
Off |
|
|
Elder |
|
|
Boy |
|
|
Girl |
|
|
Robot |
|
|
Devil |
|
|
KTV |
|
|
Echo |
|
|
Dialect |
|
|
Roar |
|
|
Electronic |
|
|
Phonograph |
|
Android
// Setel mode voice change preset.
mAliRtcEngine.setAudioEffectVoiceChangerMode(mode);
iOS
// Setel mode voice change preset.
self.rtcEngine?.setAudioEffectVoiceChangerMode(mode)
Mac
// Setel mode voice change preset.
[self.rtcEngine setAudioEffectVoiceChangerMode:mode];
Windows
// Setel mode voice change preset.
mAliRtcEngine->SetAudioEffectVoiceChangerMode(mode);
Reverberation
Panggil metode setAudioEffectReverbMode untuk menerapkan efek reverberasi. Ini menciptakan suasana spasial yang membuat suara terdengar seolah berada di lokasi tertentu. Tabel berikut mencantumkan mode yang tersedia:
|
Reverberation mode |
Enumeration |
|
Off |
|
|
Vocal I |
|
|
Vocal II |
|
|
Bathroom |
|
|
Small bright room |
|
|
Small dark room |
|
|
Medium room |
|
|
Large room |
|
|
Church hall |
|
Android
// Setel mode reverberasi preset.
mAliRtcEngine.setAudioEffectReverbMode(mode);
// Anda juga dapat mengonfigurasi efek menggunakan parameter.
iOS
// Setel mode reverberasi preset.
self.rtcEngine?.setAudioEffectReverbMode(mode)
Mac
// Setel mode reverberasi preset.
[self.engine setAudioEffectReverbMode:selectMode];
Windows
// Setel mode reverberasi preset.
mAliRtcEngine->SetAudioEffectReverbMode(mode);
// Anda juga dapat mengonfigurasi efek menggunakan parameter.
Voice beautification
Panggil metode setAudioEffectBeautifyMode untuk menerapkan efek voice beautification. Tersedia dua mode preset: Magnetic dan Fresh.
|
Voice beautification mode |
Enumeration |
|
Magnetic |
|
|
Fresh |
|
Android
// Setel mode voice beautification preset.
mAliRtcEngine.setAudioEffectBeautifyMode(mode);
// Anda juga dapat mengonfigurasi efek menggunakan parameter.
iOS
// Setel mode voice beautification preset.
self.rtcEngine?.setAudioEffectBeautifyMode(mode)
Mac
// Setel mode voice beautification preset.
[self.engine setAudioEffectBeautifyMode:selectMode];
Windows
// Setel mode voice beautification preset.
mAliRtcEngine->SetAudioEffectBeautifyMode(mode);
// Anda juga dapat mengonfigurasi efek menggunakan parameter.
Custom voice effect
Jika efek audio preset tidak memenuhi kebutuhan Anda, Anda dapat memanggil metode berikut untuk menyesuaikan parameter pitch, equalizer, dan reverberasi guna membuat efek suara kustom.
Anda dapat menggunakan metode berikut:
-
setAudioEffectPitchValue(value): Menetapkan pitch suara.-
value: Nilai pitch. Rentangnya [0,5, 2,0]. Nilai default adalah 1,0, yang menunjukkan tidak ada perubahan. Nilai kurang dari 1,0 menurunkan pitch, dan nilai lebih dari 1,0 meningkatkan pitch.
-
-
setAudioEffectReverbParamType(type, value): Menetapkan parameter reverberasi tertentu. Anda harus memanggil metode ini setelah memanggilsetAudioEffectReverbMode.-
type: Jenis parameter reverberasi. Untuk informasi selengkapnya, lihat AliRtcAudioEffectReverbParamType. -
value: Nilai parameter reverberasi. Setiap jenis parameter memiliki rentang nilai yang berbeda. Untuk detailnya, lihat AliRtcAudioEffectReverbParamType.
-
-
setAudioEffectEqualizationParam(bandIndex, gain): Menetapkan parameter equalizer. Anda harus memanggil metode ini setelah memanggilsetAudioEffectBeautifyMode.-
bandIndex: Indeks pita equalizer. Rentangnya [0, 9], yang sesuai dengan 10 pita frekuensi: 31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, dan 16000 Hz. -
gain: Gain pita dalam dB. Rentangnya [-15, 15]. Nilai default adalah 0.
-
Android
// Setel pitch. Nilainya berkisar antara 0,5 hingga 2,0. Default-nya 1,0.
// Nilai kurang dari 1,0 menurunkan pitch, dan nilai lebih dari 1,0 meningkatkannya.
mAliRtcEngine.setAudioEffectPitchValue(1.5);
// Untuk menyetel parameter reverb kustom, Anda harus terlebih dahulu menyetel mode reverb.
// Contoh: Setel mode ke Large Room, lalu sesuaikan ukuran ruangan.
mAliRtcEngine.setAudioEffectReverbMode(AliRtcEngine.AliRtcAudioEffectReverbMode.AliRtcSdk_AudioEffect_Reverb_Large_Room);
mAliRtcEngine.setAudioEffectReverbParamType(AliRtcEngine.AliRtcAudioEffectReverbParamType.AliRtcSdk_AudioEffect_Reverb_Room_Size, 50);
// Untuk menyetel parameter equalizer kustom, Anda harus terlebih dahulu menyetel mode voice beautification.
// Contoh: Setel mode ke Magnetic, lalu sesuaikan gain pita tertentu.
mAliRtcEngine.setAudioEffectBeautifyMode(AliRtcEngine.AliRtcAudioEffectBeautifyMode.AliRtcSdk_AudioEffect_Beautify_Magnetic);
mAliRtcEngine.setAudioEffectEqualizationParam(AliRtcEngine.AliRtcAudioEffectEqualizationBandFrequency.AliRtcSdk_AudioEffect_EqualizationBand1K, 5);
iOS
// Setel pitch. Nilainya berkisar antara 0,5 hingga 2,0. Default-nya 1,0.
// Nilai kurang dari 1,0 menurunkan pitch, dan nilai lebih dari 1,0 meningkatkannya.
let pitch = 1.5
self.rtcEngine?.setAudioEffectPitchValue(pitch)
// Untuk menyetel parameter reverb kustom, Anda harus terlebih dahulu menyetel mode reverb.
// Contoh: Setel mode ke Large Room, lalu sesuaikan ukuran ruangan.
self.rtcEngine?.setAudioEffectReverbMode(.large_Room)
self.rtcEngine?.setAudioEffectReverbParamType(.room_Size, value: 50)
// Untuk menyetel parameter equalizer kustom, Anda harus terlebih dahulu menyetel mode voice beautification.
// Contoh: Setel mode ke Magnetic, lalu sesuaikan gain pita tertentu.
self.rtcEngine?.setAudioEffectBeautifyMode(.magnetic)
self.rtcEngine?.setAudioEffectEqualizationParam(.band1K, gain: 5)
Mac
// Setel pitch. Nilainya berkisar antara 0,5 hingga 2,0. Default-nya 1,0.
// Nilai kurang dari 1,0 menurunkan pitch, dan nilai lebih dari 1,0 meningkatkannya.
int pitch = 1.5;
[self.rtcEngine setAudioEffectPitchValue:pitch];
// Untuk menyetel parameter reverb kustom, Anda harus terlebih dahulu menyetel mode reverb.
// Contoh: Setel mode ke Large Room, lalu sesuaikan ukuran ruangan.
[self.rtcEngine setAudioEffectReverbMode:AliRtcAudioEffectReverb_Large_Room];
[self.rtcEngine setAudioEffectReverbParamType:AliRtcAudioEffectReverb_Room_Size value:50.0];
// Untuk menyetel parameter equalizer kustom, Anda harus terlebih dahulu menyetel mode voice beautification.
// Contoh: Setel mode ke Magnetic, lalu sesuaikan gain pita tertentu.
[self.rtcEngine setAudioEffectBeautifyMode:AliRtcAudioEffectBeautify_Magnetic];
[self.rtcEngine setAudioEffectEqualizationParam:AliRtcAudioEffectEqualizationBand1K gain:5.0];
Windows
// Setel pitch. Nilainya berkisar antara 0,5 hingga 2,0. Default-nya 1,0.
// Nilai kurang dari 1,0 menurunkan pitch, dan nilai lebih dari 1,0 meningkatkannya.
mAliRtcEngine->SetAudioEffectPitchValue(1.5);
// Untuk menyetel parameter reverb kustom, Anda harus terlebih dahulu menyetel mode reverb.
// Contoh: Setel mode ke Large Room, lalu sesuaikan ukuran ruangan.
mAliRtcEngine->SetAudioEffectReverbMode(AliEngineAudioEffectReverbMode::AliEngineAudioEffectReverb_Large_Room);
mAliRtcEngine->SetAudioEffectReverbParamType(AliEngineAudioEffectReverbParamType::AliEngineAudioEffectReverbParamType_Room_Size, 50.0f);
// Untuk menyetel parameter equalizer kustom, Anda harus terlebih dahulu menyetel mode voice beautification.
// Contoh: Setel mode ke Magnetic, lalu sesuaikan gain pita tertentu.
mAliRtcEngine->SetAudioEffectBeautifyMode(AliEngineAudioEffectBeautifyMode::AliEngineAudioEffectBeautify_Magnetic);
mAliRtcEngine->SetAudioEffectEqualizationParam(AliEngineAudioEffectEqualizationBandFrequency::AliEngineAudioEffectEqualizationBandFrequency_Band1K, 5.0f);