From 5b83aadbac80750dd42bb7ab178370eacc63bd09 Mon Sep 17 00:00:00 2001 From: Hussain Khalid <72780625+hussain-khalid@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:20:25 +0500 Subject: [PATCH] CN Voice effect updates (#1152) * updates * review updates * review update --------- Co-authored-by: saudsami --- .../advanced-features/voice-effects.mdx | 2 +- .../advanced-features/voice-effects.mdx | 2 +- .../video-sdk/develop/voice-effects/index.mdx | 23 ++- .../project-implementation/android.mdx | 70 ++++---- .../project-implementation/electron.mdx | 157 ++++++++++++++++- .../project-implementation/react-native.mdx | 156 ++++++++++++++++- .../project-implementation/swift.mdx | 2 +- .../project-implementation/unity.mdx | 160 +++++++++++++++++- .../voice-effects/reference/android.mdx | 11 +- .../voice-effects/reference/electron.mdx | 36 ++++ .../develop/voice-effects/reference/ios.mdx | 11 +- .../develop/voice-effects/reference/macos.mdx | 11 +- .../voice-effects/reference/react-native.mdx | 37 ++++ .../develop/voice-effects/reference/unity.mdx | 36 ++++ .../voice-effects/reference/windows.mdx | 11 +- .../advanced-features/voice-effects.mdx | 2 +- .../advanced-features/voice-effects.mdx | 2 +- 17 files changed, 658 insertions(+), 71 deletions(-) diff --git a/broadcast-streaming/advanced-features/voice-effects.mdx b/broadcast-streaming/advanced-features/voice-effects.mdx index 56160e6c6..b111bf5db 100644 --- a/broadcast-streaming/advanced-features/voice-effects.mdx +++ b/broadcast-streaming/advanced-features/voice-effects.mdx @@ -2,7 +2,7 @@ title: 'Voice effects' sidebar_position: 8 type: docs -excluded_platforms: ["web", "electron", "react-native", "unity", "flutter", "react-js", "unreal", "blueprint"] +excluded_platforms: ["web", "react-js", "flutter", "unreal", "blueprint"] description: > --- diff --git a/interactive-live-streaming/advanced-features/voice-effects.mdx b/interactive-live-streaming/advanced-features/voice-effects.mdx index 811603fb9..b111bf5db 100644 --- a/interactive-live-streaming/advanced-features/voice-effects.mdx +++ b/interactive-live-streaming/advanced-features/voice-effects.mdx @@ -2,7 +2,7 @@ title: 'Voice effects' sidebar_position: 8 type: docs -excluded_platforms: ["web", "electron", "flutter", "react-native", "react-js", "unity", "unreal", "blueprint"] +excluded_platforms: ["web", "react-js", "flutter", "unreal", "blueprint"] description: > --- diff --git a/shared/video-sdk/develop/voice-effects/index.mdx b/shared/video-sdk/develop/voice-effects/index.mdx index 2e8c16113..0e03c3a08 100644 --- a/shared/video-sdk/develop/voice-effects/index.mdx +++ b/shared/video-sdk/develop/voice-effects/index.mdx @@ -5,7 +5,7 @@ import NotAvailable from '@docs/shared/common/not-available.mdx' makes it simple for you to publish audio captured through the microphone to subscribers in a channel. In some cases, users want to modify the captured audio to add voice effects, or change the voice quality before the audio is published. provides several options that enable you to apply voice effects. This page shows you how to implement these features in your channel. - + ## Understand the tech @@ -40,10 +40,21 @@ This section shows how to use different sound beautifiers to enhance your audio Use the following methods to set the desired vocal effects: - * Call the `setVoiceBeautifierPreset` method to apply effects such as chatting bel canto, singing bel canto, and timbre change. - * Utilize the `setAudioEffectPreset` method to configure sound effects, genre sound effects, space shaping, and other effects. - * Apply the `setVoiceConversionPreset` method to entirely transform the original voice. - If the preset effects don't meet your requirements, customize vocal effects using methods such as `setLocalVoicePitch`, `setLocalVoiceEqualization`, and `setLocalVoiceReverb`. + + +* Call the `setVoiceBeautifierPreset` method to apply effects such as chatting bel canto, singing bel canto, and timbre change. +* Utilize the `setAudioEffectPreset` method to configure sound effects, genre sound effects, space shaping, and other effects. +* Apply the `setVoiceConversionPreset` method to entirely transform the original voice. +If the preset effects don't meet your requirements, customize vocal effects using methods such as `setLocalVoicePitch`, `setLocalVoiceEqualization`, and `setLocalVoiceReverb`. + + + + +* Call the `SetVoiceBeautifierPreset` method to apply effects such as chatting bel canto, singing bel canto, and timbre change. +* Utilize the `SetAudioEffectPreset` method to configure sound effects, genre sound effects, space shaping, and other effects. +* Apply the `SetVoiceConversionPreset` method to entirely transform the original voice. +If the preset effects don't meet your requirements, customize vocal effects using methods such as `SetLocalVoicePitch`, `SetLocalVoiceEqualization`, and `SetLocalVoiceReverb`. + Choose the one that best fits your requirements. To implement various voice effects in your project, take the following steps: @@ -56,6 +67,6 @@ This section contains information that completes the information in this page, o - + \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/project-implementation/android.mdx b/shared/video-sdk/develop/voice-effects/project-implementation/android.mdx index 4634e7f3a..8b274ba8b 100644 --- a/shared/video-sdk/develop/voice-effects/project-implementation/android.mdx +++ b/shared/video-sdk/develop/voice-effects/project-implementation/android.mdx @@ -21,7 +21,7 @@ mRtcEngine.setAudioProfile(Constants.AudioProfile.getValue(Constants.AudioProfil ### Voice beautifiers -Call `setAudioEffectPreset` to set music style, space shaping, electronic music, and other effects. +Call `setVoiceBeautifierPreset` to set music style, space shaping, electronic music, and other effects. - Chat voice beautifier @@ -39,7 +39,7 @@ Call `setAudioEffectPreset` to set music style, space shaping, electronic music, // Example 1: Set male voice effect // Set the singing voice preset to beautify the male voice and add a small room reverberation effect mRtcEngine.setVoiceBeautifierPreset(Constants.SINGING_BEAUTIFIER); - // Turn off the effect + // Turn off the effect mRtcEngine.setVoiceBeautifierPreset(Constants.VOICE_BEAUTIFIER_OFF); // Example 2: Set female voice effect @@ -122,38 +122,38 @@ To implement basic voice-changing effects, call the `setAudioEffectPreset` metho Call `setLocalVoicePitch`, `setLocalVoiceEqualization`, and `setLocalVoiceReverb` to fine-tune vocal output parameters, including pitch, equalization, and reverberation effects. The following example shows you how to transform a human voice into the voice of the Hulk by manually setting parameter values: - ```java - double pitch = 0.5; - mRtcEngine.setLocalVoicePitch(pitch); - - // Set the center frequency of the local voice equalization band - // The first parameter is the spectrum sub-band index, the value range is [0,9], representing 10 frequency bands, and the corresponding center frequencies are [31,62,125,250,500,1000,2000,4000,8000,16000] Hz - // The second parameter is the gain value of each frequency interval, the value range is [-15,15], the unit is dB, the default value is 0 - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(0), -15); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(1), 3); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(2), -9); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(3), -8); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(4), -6); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(5), -4); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(6), -3); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(7), -2); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(8), -1); - mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(9), 1); - - // Original voice intensity or dry signal, value range [-20,10], unit is dB - mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(0), 10); - - // Early reflection signal intensity or wet signal, value range [-20,10], unit is dB - mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(1), 7); - - // The room size for the required reverberation effect. Generally, the larger the room, the stronger the reverberation effect. Value range: [0,100] - mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(2), 6); - - // Initial delay length of wet signal, value range: [0,200], unit: ms - mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(3), 124); - - // The continuous strength of reverberation effect, value range: [0,100], the larger the value, the stronger the reverberation effect - mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(4), 78); - ``` +```java +double pitch = 0.5; +mRtcEngine.setLocalVoicePitch(pitch); + +// Set the center frequency of the local voice equalization band +// The first parameter is the spectrum sub-band index, the value range is [0,9], representing 10 frequency bands, and the corresponding center frequencies are [31,62,125,250,500,1000,2000,4000,8000,16000] Hz +// The second parameter is the gain value of each frequency interval, the value range is [-15,15], the unit is dB, the default value is 0 +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(0), -15); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(1), 3); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(2), -9); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(3), -8); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(4), -6); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(5), -4); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(6), -3); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(7), -2); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(8), -1); +mRtcEngine.setLocalVoiceEqualization(Constants.AUDIO_EQUALIZATION_BAND_FREQUENCY.fromInt(9), 1); + +// Original voice intensity or dry signal, value range [-20,10], unit is dB +mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(0), 10); + +// Early reflection signal intensity or wet signal, value range [-20,10], unit is dB +mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(1), 7); + +// The room size for the required reverberation effect. Generally, the larger the room, the stronger the reverberation effect. Value range: [0,100] +mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(2), 6); + +// Initial delay length of wet signal, value range: [0,200], unit: ms +mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(3), 124); + +// The continuous strength of reverberation effect, value range: [0,100], the larger the value, the stronger the reverberation effect +mRtcEngine.setLocalVoiceReverb(Constants.AUDIO_REVERB_TYPE.fromInt(4), 78); +``` diff --git a/shared/video-sdk/develop/voice-effects/project-implementation/electron.mdx b/shared/video-sdk/develop/voice-effects/project-implementation/electron.mdx index c2f266cae..9847980fd 100644 --- a/shared/video-sdk/develop/voice-effects/project-implementation/electron.mdx +++ b/shared/video-sdk/develop/voice-effects/project-implementation/electron.mdx @@ -1,4 +1,157 @@ - -Voice effects for Electron is coming soon. + +### Set audio scenario and audio profile + +For optimal audio quality, take the following steps: + +- Call setAudioScenario to set the audio scenario to high-quality `AudioScenarioGameStreaming`. +- Call setAudioProfile to set the audio encoding properties to high-quality encoding: + + - For mono transmission, set the profile to `AudioProfileMusicHighQuality`. + - For stereo transmission, set the profile to `AudioProfileMusicHighQualityStereo` + +```javascript +// Create a RtcEngine object +rtcEngine = createAgoraRtcEngine(); +// Set the audio scene audio scene settings +rtcEngine.setAudioScenario(AudioScenarioType.AudioScenarioGameStreaming); +// Set audio encoding properties +rtcEngine.setAudioProfile(AudioProfileType.AudioProfileMusicHighQualityStereo); +``` + +### Voice beautifiers + +Call `setVoiceBeautifierPreset` to set music style, space shaping, electronic music, and other effects. + +- Chat voice beautifier + + ```javascript + // Set the vocal effect to magnetic (for male voices) + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.ChatBeautifierMagnetic); + + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +- Singing voice beautifier + + ```javascript + // Example 1: Set male voice effect + // Set the singing voice preset to beautify the male voice and add a small room reverberation effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.SingingBeautifier); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + + // Example 2: Set female voice effect + // Call the setVoiceBeautifierParameters method to beautify the female voice and add hall reverberation effect + rtcEngine.setVoiceBeautifierParameters(VoiceBeautifierPreset.SingingBeautifier, 2, 3); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +* Tone change + + ```javascript + // Set the timbre to be thick + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.TimbreTransformationVigorous); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +### Sound Effects + +Call `setAudioEffectPreset` to set music style, space shaping, electronic music and other effects. + +* Music Style + + ```javascript + // Set the style to pop + rtcEngine.setAudioEffectPreset(AudioEffectPreset.StyleTransformationPopular); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +* Space shaping + + ```javascript + // Set the space shaping effect to KTV + rtcEngine.setAudioEffectPreset(AudioEffectPreset.RoomAcousticsKtv); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +* Electronic sound effects + + ```javascript + // Example 1: Use the preset pitch adjustment method to achieve the electronic music sound effect + // The preset is based on the natural major key with the tonic pitch of C, and corrects the actual pitch of the audio + rtcEngine.setAudioEffectPreset(AudioEffectPreset.PitchCorrection); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + + // Example 2: Adjust the basic mode and tonic pitch to achieve the electronic music sound effect + // Call setAudioEffectParameters to adjust the basic mode of the tone to the natural minor key and the tonic pitch to D + rtcEngine.setAudioEffectParameters(AudioEffectPreset.PitchCorrection, 2, 6); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +### Voice change effects + +To implement basic voice-changing effects, call the `setAudioEffectPreset` method. For advanced voice-changing effects, use the `setVoiceConversionPreset` method. + +* Basic voice changer + + ```javascript + // Set the voice change effect to a more neutral voice + rtcEngine.setVoiceConversionPreset(VoiceConversionPreset.VoiceChangerNeutral); + // Turn off the effect + rtcEngine.setVoiceConversionPreset(VoiceConversionPreset.VoiceConversionOff); + ``` + +* Advanced voice changer + + ```javascript + // Set the vocal effect to 'Hulk' + rtcEngine.setAudioEffectPreset(AudioEffectPreset.VoiceChangerEffectHulk); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +### Custom audio effects + +Call `setLocalVoicePitch`, `setLocalVoiceEqualization`, and `setLocalVoiceReverb` to fine-tune vocal output parameters, including pitch, equalization, and reverberation effects. The following example shows you how to transform a human voice into the voice of the Hulk by manually setting parameter values: + + ```javascript + rtcEngine.setLocalVoicePitch(0.5); + + // Set the center frequency of the local voice equalization band + // The first parameter is the spectrum sub-band index, the value range is [0,9], representing 10 frequency bands, and the corresponding center frequencies are [31,62,125,250,500,1000,2000,4000,8000,16000] Hz + // The second parameter is the gain value of each frequency interval, the value range is [-15,15], the unit is dB, the default value is 0 + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand31, -15); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand62, 3); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand125, -9); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand250, -8); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand500, -6); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand1k, -4); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand2k, -3); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand4k, -2); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand8k, -1); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand16k, 1); + + // Original voice intensity or dry signal, value range [-20,10], unit is dB + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbDryLevel, 10); + + // Early reflection signal intensity or wet signal, value range [-20,10], unit is dB + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbWetLevel, 7); + + // The room size for the required reverberation effect. Generally, the larger the room, the stronger the reverberation effect. Value range: [0,100] + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbRoomSize, 6); + + // Initial delay length of wet signal, value range: [0,200], unit: ms + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbWetDelay, 124); + + // The continuous strength of reverberation effect, value range: [0,100], the larger the value, the stronger the reverberation effect + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbStrength, 78); + ``` \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/project-implementation/react-native.mdx b/shared/video-sdk/develop/voice-effects/project-implementation/react-native.mdx index 0ae56c50c..490a7f89e 100644 --- a/shared/video-sdk/develop/voice-effects/project-implementation/react-native.mdx +++ b/shared/video-sdk/develop/voice-effects/project-implementation/react-native.mdx @@ -1,3 +1,157 @@ -Voice effects for React Native is coming soon. + +### Set audio scenario and audio profile + +For optimal audio quality, take the following steps: + +- Call setAudioScenario to set the audio scenario to high-quality `AudioScenarioGameStreaming`. +- Call setAudioProfile to set the audio encoding properties to high-quality encoding: + + - For mono transmission, set the profile to `AUDIO_PROFILE_MUSIC_HIGH_QUALITY`. + - For stereo transmission, set the profile to `AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO` + +```javascript +// Create a RtcEngine object +rtcEngine = createAgoraRtcEngine(); +// Set the audio scenario +rtcEngine.setAudioScenario(AudioScenarioType.AudioScenarioGameStreaming); +// Set audio encoding properties +rtcEngine.setAudioProfile(AudioProfileType.AudioProfileMusicHighQualityStereo); +``` + +### Voice beautifiers + +Call `setVoiceBeautifierPreset` to set music style, space shaping, electronic music, and other effects. + +- Chat voice beautifier + + ```javascript + // Set the vocal effect to magnetic (for male voices) + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.ChatBeautifierMagnetic); + + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +- Singing voice beautifier + + ```javascript + // Example 1: Set male voice effect + // Set the singing voice preset to beautify the male voice and add a small room reverberation effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.SingingBeautifier); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + + // Example 2: Set female voice effect + // Call the setVoiceBeautifierParameters method to beautify the female voice and add hall reverberation effect + rtcEngine.setVoiceBeautifierParameters(VoiceBeautifierPreset.SingingBeautifier, 2, 3); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +* Tone change + + ```javascript + // Set the timbre to thick + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.TimbreTransformationVigorous); + // Turn off the effect + rtcEngine.setVoiceBeautifierPreset(VoiceBeautifierPreset.VoiceBeautifierOff); + ``` + +### Sound Effects + +Call `setAudioEffectPreset` to set music style, space shaping, electronic music and other effects. + +* Music Style + + ```javascript + // Set the style to pop + rtcEngine.setAudioEffectPreset(AudioEffectPreset.StyleTransformationPopular); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +* Space shaping + + ```javascript + // Set the space shaping effect to KTV + rtcEngine.setAudioEffectPreset(AudioEffectPreset.RoomAcousticsKtv); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +* Electronic sound effects + + ```javascript + // Example 1: Use the preset pitch adjustment method to achieve the electronic music sound effect + // The preset is based on the natural major key with the tonic pitch of C, and corrects the actual pitch of the audio + rtcEngine.setAudioEffectPreset(AudioEffectPreset.PitchCorrection); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + + // Example 2: Adjust the basic mode and tonic pitch to achieve the electronic music sound effect + // Call setAudioEffectParameters to adjust the basic mode of the tone to the natural minor key and the tonic pitch to D + rtcEngine.setAudioEffectParameters(AudioEffectPreset.PitchCorrection, 2, 6); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +### Voice change effects + +To implement basic voice-changing effects, call the `setAudioEffectPreset` method. For advanced voice-changing effects, use the `setVoiceConversionPreset` method. + +* Basic voice changer + + ```javascript + // Set the voice changer to a more neutral voice + rtcEngine.setVoiceConversionPreset(VoiceConversionPreset.VoiceChangerNeutral); + // Turn off the effect + rtcEngine.setVoiceConversionPreset(VoiceConversionPreset.VoiceConversionOff); + ``` + +* Advanced voice changer + + ```javascript + // Set the vocal effect to 'Hulk' + rtcEngine.setAudioEffectPreset(AudioEffectPreset.VoiceChangerEffectHulk); + // Turn off the effect + rtcEngine.setAudioEffectPreset(AudioEffectPreset.AudioEffectOff); + ``` + +### Custom audio effects + +Call `setLocalVoicePitch`, `setLocalVoiceEqualization`, and `setLocalVoiceReverb` to fine-tune vocal output parameters, including pitch, equalization, and reverberation effects. The following example shows you how to transform a human voice into the voice of the Hulk by manually setting parameter values: + + ```javascript + rtcEngine.setLocalVoicePitch(0.5); + + // Set the center frequency of the local voice equalization band + // The first parameter is the spectrum sub-band index, the value range is [0,9], representing 10 frequency bands, and the corresponding center frequencies are [31,62,125,250,500,1000,2000,4000,8000,16000] Hz + // The second parameter is the gain value of each frequency interval, the value range is [-15,15], the unit is dB, the default value is 0 + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand31, -15); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand62, 3); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand125, -9); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand250, -8); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand500, -6); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand1k, -4); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand2k, -3); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand4k, -2); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand8k, -1); + rtcEngine.setLocalVoiceEqualization(AudioEqualizationBandFrequency.AudioEqualizationBand16k, 1); + + // Original voice intensity or dry signal, value range [-20,10], unit is dB + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbDryLevel, 10); + + // Early reflection signal intensity or wet signal, value range [-20,10], unit is dB + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbWetLevel, 7); + + // The room size for the required reverberation effect. Generally, the larger the room, the stronger the reverberation effect. Value range: [0,100] + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbRoomSize, 6); + + // Initial delay length of wet signal, value range: [0,200], unit: ms + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbWetDelay, 124); + + // The continuous strength of reverberation effect, value range: [0,100], the larger the value, the stronger the reverberation effect + rtcEngine.setLocalVoiceReverb(AudioReverbType.AudioReverbStrength, 78); + ``` \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/project-implementation/swift.mdx b/shared/video-sdk/develop/voice-effects/project-implementation/swift.mdx index e1a8a98c5..08dea5528 100644 --- a/shared/video-sdk/develop/voice-effects/project-implementation/swift.mdx +++ b/shared/video-sdk/develop/voice-effects/project-implementation/swift.mdx @@ -21,7 +21,7 @@ agoraKit.setAudioProfile(.musicHighQaulityStereo) ### Voice beautifiers -Call `setAudioEffectPreset` to set music style, space shaping, electronic music and other effects. +Call `setVoiceBeautifierPreset` to set music style, space shaping, electronic music and other effects. - Chat voice beautifier diff --git a/shared/video-sdk/develop/voice-effects/project-implementation/unity.mdx b/shared/video-sdk/develop/voice-effects/project-implementation/unity.mdx index 2df1a2360..25f6d7d5f 100644 --- a/shared/video-sdk/develop/voice-effects/project-implementation/unity.mdx +++ b/shared/video-sdk/develop/voice-effects/project-implementation/unity.mdx @@ -1,6 +1,162 @@ - -Voice effects for Unity is coming soon. +### Set audio scenario and audio profile + +For optimal audio quality, take the following steps: + +- Call SetAudioScenario to set the audio scenario to high-quality `AUDIO_SCENARIO_GAME_STREAMING`. +- Call SetAudioProfile to set the audio encoding properties to high-quality encoding: + + - For mono transmission, set the profile to `AUDIO_PROFILE_MUSIC_HIGH_QUALITY`. + - For stereo transmission, set the profile to `AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO` + + +Set the audio scene and encoding properties after calling CreateAgoraRtcEngine to create the `IRtcEngine` object. + + +```csharp +// Set the audio scenario +RtcEngine.SetAudioScenario(AUDIO_SCENARIO_TYPE.AUDIO_SCENARIO_GAME_STREAMING); +// Set the audio encoding properties +RtcEngine.SetAudioProfile(AUDIO_PROFILE_TYPE.AUDIO_PROFILE_MUSIC_HIGH_QUALITY); + +``` +### Voice beautifiers + +Call `SetVoiceBeautifierPreset` to set music style, space shaping, electronic music, and other effects. + +- Chat voice beautifier + + ```csharp + // Set the vocal effect to magnetic (for male voices) + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.CHAT_BEAUTIFIER_MAGNETIC); + + // Turn off the effect + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.VOICE_BEAUTIFIER_OFF); + + ``` + +- Singing voice beautifier + + ```csharp + // Example 1: Set male voice effect + // Set the singing voice preset to beautify the male voice and add a small room reverberation effect + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.SINGING_BEAUTIFIER); + // Turn off the effect + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.VOICE_BEAUTIFIER_OFF); + + + // Example 2: Set female voice effect + // Call the SetVoiceBeautifierParameters method to beautify the female voice and add hall reverberation effect + RtcEngine.SetVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET.SINGING_BEAUTIFIER, 2, 3); + // Turn off the effect + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.VOICE_BEAUTIFIER_OFF); + ``` + +* Tone change + + ```csharp + // Set the timbre to thick + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.TIMBRE_TRANSFORMATION_VIGOROUS); + // Turn off the effect + RtcEngine.SetVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET.VOICE_BEAUTIFIER_OFF); + ``` + +### Sound effects + +Call `SetAudioEffectPreset` to set music style, space shaping, electronic music and other effects. + +* Music Style + + ```csharp + // Set the style to pop + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.STYLE_TRANSFORMATION_POPULAR); + // Turn off the effect + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.AUDIO_EFFECT_OFF); + ``` + +* Space shaping + + ```csharp + // Set the space shaping effect to KTV + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.ROOM_ACOUSTICS_KTV); + // Turn off the effect + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.AUDIO_EFFECT_OFF); + ``` + +* Electronic sound effects + + ```csharp + // Example 1: Use the preset pitch adjustment method to achieve the electronic music sound effect + // The preset is based on the natural major key with the tonic pitch of C, and corrects the actual pitch of the audio + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.PITCH_CORRECTION); + // Turn off the effect + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.AUDIO_EFFECT_OFF); + + // Example 2: Adjust the basic mode and tonic pitch to achieve the electronic music sound effect + // Call SetAudioEffectParameters to adjust the basic mode of the tone to the natural minor key and the tonic pitch to D + RtcEngine.SetAudioEffectParameters(AUDIO_EFFECT_PRESET.PITCH_CORRECTION, 2, 6); + // Turn off the effect + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.AUDIO_EFFECT_OFF); + ``` + +### Voice change effects + +To implement basic voice-changing effects, call the `SetAudioEffectPreset` method. For advanced voice-changing effects, use the `SetVoiceConversionPreset` method. + +* Basic voice changer + + ```csharp + // Set the voice changer to a more neutral voice + RtcEngine.SetVoiceConversionPreset(VOICE_CONVERSION_PRESET.VOICE_CHANGER_NEUTRAL); + // Turn off the effect + RtcEngine.SetVoiceConversionPreset(VOICE_CONVERSION_PRESET.VOICE_CONVERSION_OFF); + ``` + +* Advanced voice changer + + ```csharp + // Set the vocal effect to 'Hulk' + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.VOICE_CHANGER_EFFECT_HULK); + // Turn off the effect + RtcEngine.SetAudioEffectPreset(AUDIO_EFFECT_PRESET.AUDIO_EFFECT_OFF); + ``` + +### Custom audio effects + +Call `SetLocalVoicePitch`, `SetLocalVoiceEqualization`, and `SetLocalVoiceReverb` to fine-tune vocal output parameters, including pitch, equalization, and reverberation effects. The following example shows you how to transform a human voice into the voice of the Hulk by manually setting parameter values: + +```csharp +RtcEngine.SetLocalVoicePitch(0.5); + + // Set the center frequency of the local voice equalization band + // The first parameter is the spectrum sub-band index, the value range is [0,9], representing 10 frequency bands, and the corresponding center frequencies are [31,62,125,250,500,1000,2000,4000,8000,16000] Hz + // The second parameter is the gain value of each frequency interval, the value range is [-15,15], the unit is dB, the default value is 0 +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_31, -15); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_62, 3); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_125, -9); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_250, -8); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_500, -6); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_1K, -4); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_2K, -3); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_4K, -2); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_8K, -1); +RtcEngine.SetLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY.AUDIO_EQUALIZATION_BAND_16K, 1); + +// Original voice intensity or dry signal, value range [-20,10], unit is dB +RtcEngine.SetLocalVoiceReverb(AUDIO_REVERB_TYPE.AUDIO_REVERB_DRY_LEVEL, 10); + +// Early reflection signal intensity or wet signal, value range [-20,10], unit is dB +RtcEngine.SetLocalVoiceReverb(AUDIO_REVERB_TYPE.AUDIO_REVERB_WET_LEVEL, 7); + +// The room size for the required reverberation effect. Generally, the larger the room, the stronger the reverberation effect. Value range: [0,100] +RtcEngine.SetLocalVoiceReverb(AUDIO_REVERB_TYPE.AUDIO_REVERB_ROOM_SIZE, 6); + +// Initial delay length of wet signal, value range: [0,200], unit: ms +RtcEngine.SetLocalVoiceReverb(AUDIO_REVERB_TYPE.AUDIO_REVERB_WET_DELAY, 124); + +// The continuous strength of reverberation effect, value range: [0,100], the larger the value, the stronger the reverberation effect +RtcEngine.SetLocalVoiceReverb(AUDIO_REVERB_TYPE.AUDIO_REVERB_STRENGTH, 78); +``` \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/reference/android.mdx b/shared/video-sdk/develop/voice-effects/reference/android.mdx index 9d10263a5..ec5455135 100644 --- a/shared/video-sdk/develop/voice-effects/reference/android.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/android.mdx @@ -3,7 +3,8 @@ ### Development considerations -- Only one vocal effect can be set at a time. If multiple effects are set, the last one will overwrite the previous ones. +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + - The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). ### Sample project @@ -20,14 +21,14 @@ #### Preset voice effects -* setAudioEffectPreset - -* setAudioEffectParameters - * setVoiceBeautifierPreset +* setAudioEffectPreset + * setVoiceConversionPreset +* setAudioEffectParameters + * setVoiceBeautifierParameters #### Custom voice effects diff --git a/shared/video-sdk/develop/voice-effects/reference/electron.mdx b/shared/video-sdk/develop/voice-effects/reference/electron.mdx index 0fae2faa6..367201df9 100644 --- a/shared/video-sdk/develop/voice-effects/reference/electron.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/electron.mdx @@ -1,6 +1,42 @@ +### Development considerations +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + +- The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). + +### Sample project + + provides an open source [Voice effects project](https://github.com/AgoraIO-Extensions/Electron-SDK/blob/main/example/src/renderer/examples/advanced/VoiceChanger/VoiceChanger.tsx) on GitHub for your reference. Download or view the source code for a more detailed example. + +### API reference + +#### Audio scenario and audio profile + +* setAudioProfile + +* setAudioScenario + +#### Preset voice effects + +* setVoiceBeautifierPreset + +* setAudioEffectPreset + +* setVoiceConversionPreset + +* setAudioEffectParameters + +* setVoiceBeautifierParameters + +#### Custom voice effects + +* setLocalVoiceEqualization + +* setLocalVoiceReverb + +* setLocalVoicePitch \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/reference/ios.mdx b/shared/video-sdk/develop/voice-effects/reference/ios.mdx index 05467b7ea..47bb9ccda 100644 --- a/shared/video-sdk/develop/voice-effects/reference/ios.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/ios.mdx @@ -3,7 +3,8 @@ ### Development considerations -- Only one vocal effect can be set at a time. If multiple effects are set, the last one will overwrite the previous ones. +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + - The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). ### Sample project @@ -22,14 +23,14 @@ The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. Refer to the API reference for details. -- setAudioEffectPreset - -- setAudioEffectParameters - - setVoiceBeautifierPreset - setVoiceConversionPreset +- setAudioEffectPreset + +- setAudioEffectParameters + - setVoiceBeautifierParameters #### Custom voice effects diff --git a/shared/video-sdk/develop/voice-effects/reference/macos.mdx b/shared/video-sdk/develop/voice-effects/reference/macos.mdx index 4e6e936e4..033044f8c 100644 --- a/shared/video-sdk/develop/voice-effects/reference/macos.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/macos.mdx @@ -2,7 +2,8 @@ ### Development considerations -- Only one vocal effect can be set at a time. If multiple effects are set, the last one will overwrite the previous ones. +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + - The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). ### Sample project @@ -21,14 +22,14 @@ The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. Refer to the API reference for details. -- setAudioEffectPreset - -- setAudioEffectParameters - - setVoiceBeautifierPreset - setVoiceConversionPreset +- setAudioEffectPreset + +- setAudioEffectParameters + - setVoiceBeautifierParameters #### Custom voice effects diff --git a/shared/video-sdk/develop/voice-effects/reference/react-native.mdx b/shared/video-sdk/develop/voice-effects/reference/react-native.mdx index e176b60e2..a4615189f 100644 --- a/shared/video-sdk/develop/voice-effects/reference/react-native.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/react-native.mdx @@ -1,5 +1,42 @@ + +### Development considerations + +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + +- The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). + +### Sample project + + provides an open source [Voice effects project](https://github.com/AgoraIO-Extensions/react-native-agora/blob/main/example/src/examples/advanced/VoiceChanger/VoiceChanger.tsx) on GitHub for your reference. Download or view the source code for a more detailed example. + +### API reference + +#### Audio scenario and audio profile + +* setAudioProfile + +* setAudioScenario + +#### Preset voice effects + +* setVoiceBeautifierPreset + +* setVoiceConversionPreset + +* setAudioEffectPreset + +* setAudioEffectParameters + +* setVoiceBeautifierParameters + +#### Custom voice effects + +* setLocalVoiceEqualization + +* setLocalVoiceReverb +* setLocalVoicePitch \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/reference/unity.mdx b/shared/video-sdk/develop/voice-effects/reference/unity.mdx index af8e14670..8745f6816 100644 --- a/shared/video-sdk/develop/voice-effects/reference/unity.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/unity.mdx @@ -1,6 +1,42 @@ +### Development considerations +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + +- The enumerations in `SetVoiceBeautifierPreset`, `SetAudioEffectPreset`, `SetVoiceConversionPreset`, and other preset methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. For more details, see [API reference](#api-reference). + +### Sample project + + provides an open source [Voice effects project](https://github.com/AgoraIO-Extensions/Agora-Unity-Quickstart/blob/main/API-Example-Unity/Assets/API-Example/Examples/Advanced/VoiceChanger/VoiceChanger.cs) on GitHub for your reference. Download or view the source code for a more detailed example. + +### API reference + +#### Audio scenario and audio profile + +* SetAudioProfile + +* SetAudioScenario + +#### Preset voice effects + +* SetVoiceBeautifierPreset + +* SetVoiceConversionPreset + +* SetAudioEffectPreset + +* SetAudioEffectParameters + +* SetVoiceBeautifierParameters + +#### Custom voice effects + +* SetLocalVoiceEqualization + +* SetLocalVoiceReverb + +* SetLocalVoicePitch \ No newline at end of file diff --git a/shared/video-sdk/develop/voice-effects/reference/windows.mdx b/shared/video-sdk/develop/voice-effects/reference/windows.mdx index d3a42553d..4eac4751b 100644 --- a/shared/video-sdk/develop/voice-effects/reference/windows.mdx +++ b/shared/video-sdk/develop/voice-effects/reference/windows.mdx @@ -3,7 +3,8 @@ ### Development considerations -- Only one vocal effect can be set at a time. If multiple effects are set, the last one will overwrite the previous ones. +- Only one vocal effect can be set at a time. If multiple effects are set, the last one overwrites the previous one. + - The enumerations in `setVoiceBeautifierPreset`, `setAudioEffectPreset`, `setVoiceConversionPreset`, and other voice methods are optimized for different genders and should be used appropriately. Using these presets on vocals of the opposite gender may cause distortion. Refer to the API reference for details. ### Sample project @@ -20,14 +21,14 @@ #### Preset voice effects -* setAudioEffectPreset - -* setAudioEffectParameters - * setVoiceBeautifierPreset * setVoiceConversionPreset +* setAudioEffectPreset + +* setAudioEffectParameters + * setVoiceBeautifierParameters #### Custom voice effects diff --git a/video-calling/advanced-features/voice-effects.mdx b/video-calling/advanced-features/voice-effects.mdx index db53833df..cae2bad23 100644 --- a/video-calling/advanced-features/voice-effects.mdx +++ b/video-calling/advanced-features/voice-effects.mdx @@ -2,7 +2,7 @@ title: 'Voice effects' sidebar_position: 8 type: docs -excluded_platforms: ["web", "react-js", "electron", "flutter", "react-native", "unreal", "blueprint", "unity"] +excluded_platforms: ["web", "react-js", "flutter", "unreal", "blueprint"] description: > diff --git a/voice-calling/advanced-features/voice-effects.mdx b/voice-calling/advanced-features/voice-effects.mdx index 0bd3090cf..a997ef010 100644 --- a/voice-calling/advanced-features/voice-effects.mdx +++ b/voice-calling/advanced-features/voice-effects.mdx @@ -2,7 +2,7 @@ title: 'Voice effects' sidebar_position: 8 type: docs -excluded_platforms: ["react-js", "web", "flutter", "react-native", "unity", "electron", "unreal", "blueprint"] +excluded_platforms: ["web", "react-js", "flutter", "unreal", "blueprint"] description: > Play audio files and apply voice effects to enhance or modify audio. ---