Le SDK ARTC permet d'appliquer des effets vocaux en temps réel (changement de voix, réverbération et embellissement) à l'audio local lors des appels RTC.
Fonctionnalités
Activez ces effets audio en appelant les API correspondantes :
Changement de voix : Modifiez la voix pour imiter une personne âgée, un garçon ou une fille.
Réverbération : Ajoutez une réverbération spatiale pour simuler un lieu spécifique.
Embellissement vocal : Ajustez finement le timbre de la voix selon un style tel que Magnetic ou Fresh.
Effet vocal personnalisé : Ajustez la hauteur, la réverbération et les paramètres de l'égaliseur au-delà des préréglages pour créer des effets sur mesure.
Exemple de code
Téléchargez l'exemple de projet open source ou consultez le code source :
Configurer le changement de voix, la réverbération et l'embellissement vocal sur Android: Android/ARTCExample/BasicUsage/src/main/java/com/aliyun/artc/api/basicusage/VoiceChange/VoiceChangeActivity.java
Configurer le changement de voix, la réverbération et l'embellissement vocal sur iOS: iOS/ARTCExample/BasicUsage/VoiceChange/VoiceChangeVC.swift
Prérequis
Avant de commencer :
Vous disposez d'un compte Alibaba Cloud et d'une application RTC (Créer une application). Récupérez l'App ID et l'App Key depuis la console Application Management.
Vous avez intégré le SDK (Télécharger et intégrer le SDK) et implémenté un appel RTC de base (Implémenter un appel audio et vidéo).
Implémentation
Appelez les API suivantes pour appliquer des effets audio dans votre projet.
Changement de voix
Appelez la méthode setAudioEffectVoiceChangerMode pour appliquer un effet de changement de voix. Chaque mode correspond à une valeur d'énumération :
|
Mode de changement de voix |
Énumération |
|
Désactivé |
|
|
Personne âgée |
|
|
Garçon |
|
|
Fille |
|
|
Robot |
|
|
Démon |
|
|
KTV |
|
|
Écho |
|
|
Dialecte |
|
|
Rugissement |
|
|
Électronique |
|
|
Phonographe |
|
Android
// Set the preset voice change mode.
mAliRtcEngine.setAudioEffectVoiceChangerMode(mode);
iOS
// Set the preset voice change mode.
self.rtcEngine?.setAudioEffectVoiceChangerMode(mode)
Mac
// Set the preset voice change mode.
[self.rtcEngine setAudioEffectVoiceChangerMode:mode];
Windows
// Set the preset voice change mode.
mAliRtcEngine->SetAudioEffectVoiceChangerMode(mode);
Réverbération
Appelez la méthode setAudioEffectReverbMode pour simuler un lieu spécifique avec une réverbération spatiale. Modes disponibles :
|
Mode de réverbération |
Énumération |
|
Désactivé |
|
|
Vocal I |
|
|
Vocal II |
|
|
Salle de bain |
|
|
Petite pièce lumineuse |
|
|
Petite pièce sombre |
|
|
Pièce moyenne |
|
|
Grande pièce |
|
|
Hall d'église |
|
Android
// Set the preset reverberation mode.
mAliRtcEngine.setAudioEffectReverbMode(mode);
// You can also configure the effect by using parameters.
iOS
// Set the preset reverberation mode.
self.rtcEngine?.setAudioEffectReverbMode(mode)
Mac
// Set the preset reverberation mode.
[self.engine setAudioEffectReverbMode:selectMode];
Windows
// Set the preset reverberation mode.
mAliRtcEngine->SetAudioEffectReverbMode(mode);
// You can also configure the effect by using parameters.
Embellissement vocal
Appelez la méthode setAudioEffectBeautifyMode pour appliquer un embellissement vocal. Deux modes sont disponibles : Magnetic et Fresh.
|
Mode d'embellissement vocal |
Énumération |
|
Magnetic |
|
|
Fresh |
|
Android
// Set the preset voice beautification mode.
mAliRtcEngine.setAudioEffectBeautifyMode(mode);
// You can also configure the effect by using parameters.
iOS
// Set the preset voice beautification mode.
self.rtcEngine?.setAudioEffectBeautifyMode(mode)
Mac
// Set the preset voice beautification mode.
[self.engine setAudioEffectBeautifyMode:selectMode];
Windows
// Set the preset voice beautification mode.
mAliRtcEngine->SetAudioEffectBeautifyMode(mode);
// You can also configure the effect by using parameters.
Effet vocal personnalisé
Si les effets prédéfinis sont insuffisants, ajustez les paramètres de hauteur, d'égaliseur et de réverbération pour créer des effets vocaux personnalisés.
Méthodes disponibles :
-
setAudioEffectPitchValue(value): Définit la hauteur de la voix.value: Valeur de la hauteur. Plage : [0,5, 2,0]. Par défaut : 1,0 (aucun changement). Les valeurs inférieures à 1,0 abaissent la hauteur ; les valeurs supérieures à 1,0 l'augmentent.
-
setAudioEffectReverbParamType(type, value): Définit un paramètre de réverbération. Appelez cette méthode après setAudioEffectReverbMode.type: Type de paramètre de réverbération. AliRtcAudioEffectReverbParamType.value: Valeur du paramètre de réverbération. Les plages varient selon le type. AliRtcAudioEffectReverbParamType.
-
setAudioEffectEqualizationParam(bandIndex, gain): Définit un paramètre d'égaliseur. Appelez cette méthode après setAudioEffectBeautifyMode.bandIndex: Index de la bande de l'égaliseur. Plage : [0, 9], correspondant à 31, 62, 125, 250, 500, 1000, 2000, 4000, 8000 et 16000 Hz.gain: Gain de la bande en dB. Plage : [-15, 15]. Par défaut : 0.
Android
// Set the pitch. The value ranges from 0.5 to 2.0. The default is 1.0.
// A value less than 1.0 lowers the pitch, and a value greater than 1.0 raises it.
mAliRtcEngine.setAudioEffectPitchValue(1.5);
// To set custom reverb parameters, you must first set a reverb mode.
// Example: Set the mode to Large Room, then adjust the room size.
mAliRtcEngine.setAudioEffectReverbMode(AliRtcEngine.AliRtcAudioEffectReverbMode.AliRtcSdk_AudioEffect_Reverb_Large_Room);
mAliRtcEngine.setAudioEffectReverbParamType(AliRtcEngine.AliRtcAudioEffectReverbParamType.AliRtcSdk_AudioEffect_Reverb_Room_Size, 50);
// To set custom equalizer parameters, you must first set a voice beautification mode.
// Example: Set the mode to Magnetic, then adjust the gain of a specific band.
mAliRtcEngine.setAudioEffectBeautifyMode(AliRtcEngine.AliRtcAudioEffectBeautifyMode.AliRtcSdk_AudioEffect_Beautify_Magnetic);
mAliRtcEngine.setAudioEffectEqualizationParam(AliRtcEngine.AliRtcAudioEffectEqualizationBandFrequency.AliRtcSdk_AudioEffect_EqualizationBand1K, 5);
iOS
// Set the pitch. The value ranges from 0.5 to 2.0. The default is 1.0.
// A value less than 1.0 lowers the pitch, and a value greater than 1.0 raises it.
let pitch = 1.5
self.rtcEngine?.setAudioEffectPitchValue(pitch)
// To set custom reverb parameters, you must first set a reverb mode.
// Example: Set the mode to Large Room, then adjust the room size.
self.rtcEngine?.setAudioEffectReverbMode(.large_Room)
self.rtcEngine?.setAudioEffectReverbParamType(.room_Size, value: 50)
// To set custom equalizer parameters, you must first set a voice beautification mode.
// Example: Set the mode to Magnetic, then adjust the gain of a specific band.
self.rtcEngine?.setAudioEffectBeautifyMode(.magnetic)
self.rtcEngine?.setAudioEffectEqualizationParam(.band1K, gain: 5)
Mac
// Set the pitch. The value ranges from 0.5 to 2.0. The default is 1.0.
// A value less than 1.0 lowers the pitch, and a value greater than 1.0 raises it.
int pitch = 1.5;
[self.rtcEngine setAudioEffectPitchValue:pitch];
// To set custom reverb parameters, you must first set a reverb mode.
// Example: Set the mode to Large Room, then adjust the room size.
[self.rtcEngine setAudioEffectReverbMode:AliRtcAudioEffectReverb_Large_Room];
[self.rtcEngine setAudioEffectReverbParamType:AliRtcAudioEffectReverb_Room_Size value:50.0];
// To set custom equalizer parameters, you must first set a voice beautification mode.
// Example: Set the mode to Magnetic, then adjust the gain of a specific band.
[self.rtcEngine setAudioEffectBeautifyMode:AliRtcAudioEffectBeautify_Magnetic];
[self.rtcEngine setAudioEffectEqualizationParam:AliRtcAudioEffectEqualizationBand1K gain:5.0];
Windows
// Set the pitch. The value ranges from 0.5 to 2.0. The default is 1.0.
// A value less than 1.0 lowers the pitch, and a value greater than 1.0 raises it.
mAliRtcEngine->SetAudioEffectPitchValue(1.5);
// To set custom reverb parameters, you must first set a reverb mode.
// Example: Set the mode to Large Room, then adjust the room size.
mAliRtcEngine->SetAudioEffectReverbMode(AliEngineAudioEffectReverbMode::AliEngineAudioEffectReverb_Large_Room);
mAliRtcEngine->SetAudioEffectReverbParamType(AliEngineAudioEffectReverbParamType::AliEngineAudioEffectReverbParamType_Room_Size, 50.0f);
// To set custom equalizer parameters, you must first set a voice beautification mode.
// Example: Set the mode to Magnetic, then adjust the gain of a specific band.
mAliRtcEngine->SetAudioEffectBeautifyMode(AliEngineAudioEffectBeautifyMode::AliEngineAudioEffectBeautify_Magnetic);
mAliRtcEngine->SetAudioEffectEqualizationParam(AliEngineAudioEffectEqualizationBandFrequency::AliEngineAudioEffectEqualizationBandFrequency_Band1K, 5.0f);