Skip to main content
Version: 5.5

VQE control

VQE means Voice Quality Enhancement that runs in PlanetKit. There are many voice processor modules in the VQE and you can control VQE functions such as turning on noise suppressor.

Supported call typeMinimum SDK version
1-to-1 call, group call (conference)PlanetKit 4.3

VQE includes the following voice processor modules.

Acoustic echo canceller

An echo is a reflection of sound that arrives at the listener with a delay after the direct sound. During an audio call, the echo can be flowed to the microphone, which causes speakers to listen to their own voices. Acoustic echo canceller reduces echo.

Auto gain controller

Due to microphone sensitivity, which is a characteristic of microphone hardware, the volume of sound picked up by the microphone may be too low or too loud, making conversation difficult. The auto gain controller controls the volume to an appropriate level.

PlanetKit supports the following two auto gain controller modes:

  • Software mode
    • Software compensates the volume of input voice so that the volume remains constant.
    • However, the mode has limitations because too much compensation can have an adverse effect on sound quality.
      • In other words, better sound quality can be guaranteed when a suitable volume is input from the microphone. The hardware mode is used for this purpose.
  • Hardware mode
    • Hardware controls the volume by calculating the energy of speech section in the signal coming from the microphone.
      • If the energy is greater than the reference level range, the microphone sensitivity is reduced.
      • If the energy is less than the reference level range, the microphone sensitivity is increased.
      • When the energy is within the reference level range, the microphone sensitivity is maintained so that the voice comes in at a constant level.
    • Because the hardware mode directly controls the microphone device, it is only provided on platforms that can control the microphone, such as Windows and macOS.
    • The hardware mode may have greater volume amplification than the software mode. In some cases, the hardware mode can achieve a reasonable level of volume for the voice that may not be heard well in the software mode.

Default mode of auto gain controller

The default mode of auto gain controller by platform is as follows:

PlatformDefault modeNote
AndroidSoftware modeHardware mode is not supported
iOSSoftware modeHardware mode is not supported
macOSHardware mode
Windows- PlanetKit 4.3 and 4.4: Software mode
- PlanetKit 5.0 or higher: Hardware mode

Noise suppressor

Noise is any sound picked up by the microphone other than the speaker's voice. The noise suppressor reduces the noises.

The SendVoiceProcessor class provides APIs to control voice processors that process microphone sounds.

Disabling SendVoiceProcessor itself stops all voice processing. Occasionally, application users may connect an audio device developed for VoIP conferencing that provides internal voice processing. When PlanetKit is used with an audio device that runs internal voice processing, SendVoiceProcessor will process the already processed voice stream again, which in turn can negatively affect voice quality due to double processing. In such an environment, it is recommended to turn off SendVoiceProcessor to provide better voice quality.

If SendVoiceProcessor is enabled, you can control internal audio processors using the following APIs.

Tip

For more information on related APIs, refer to API reference.

Acoustic echo cancellation

To control acoustic echo cancellation, use the SetAcousticEchoCanceller() method, which takes EPlanetKitAcousticEchoCanceller as a parameter. The EPlanetKitAcousticEchoCanceller enum provides the following modes:

ModeDescription
PLNK_ACOUSTIC_ECHO_CANCELLER_DISABLEDDoes not use the acoustic echo canceller.
PLNK_ACOUSTIC_ECHO_CANCELLER_INTENSITY_RECOMMENDEDApplies a preset mode considering audio device type and OS type, which is determined through quality testing. Use PLNK_ACOUSTIC_ECHO_CANCELLER_INTENSITY_RECOMMENDED if you are not sure which mode to set.
PLNK_ACOUSTIC_ECHO_CANCELLER_INTENSITY_MINMinimizes echo cancellation.
PLNK_ACOUSTIC_ECHO_CANCELLER_INTENSITY_MAXAggressively reduces echo.
PLNK_ACOUSTIC_ECHO_CANCELLER_INTENSITY_ADAPTIVEAdaptively adjusts the intensity of echo cancellation internally.

Auto gain control

To control auto gain control, use the SetAutoGainControl() method, which takes EPlanetKitAutoGainControl as a parameter. The EPlanetKitAutoGainControl enum provides the following modes:

ModeDescription
PLNK_AUTO_GAIN_CONTROL_TYPE_DISABLEDDoes not use the auto gain controller.
PLNK_AUTO_GAIN_CONTROL_TYPE_SOFTWAREPerforms auto gain control by software.
PLNK_AUTO_GAIN_CONTROL_TYPE_HARDWAREPerforms auto gain control by hardware. However, it is not available on iOS or Android.
Note

Each platform has different capabilities for auto gain control. For the default mode and supported modes by platform, see Default mode of auto gain controller.

Noise suppression

To control noise suppression, use the SetNoiseSuppressor() method, which takes EPlanetkitNoiseSuppressorMode as a parameter. The EPlanetkitNoiseSuppressorMode enum provides the following modes:

ModeDescription
PLNK_NOISE_SUPPRESSOR_MODE_DISABLEDDisables the noise suppressor.
PLNK_NOISE_SUPPRESSOR_MODE_ENABLEEnables the noise suppressor. (Default value)

APIs related to VQE control are as follows.