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 type | Minimum 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.
- Hardware controls the volume by calculating the energy of speech section in the signal coming from the microphone.
Default mode of auto gain controller
The default mode of auto gain controller by platform is as follows:
Platform | Default mode | Note |
---|---|---|
Android | Software mode | Hardware mode is not supported |
iOS | Software mode | Hardware mode is not supported |
macOS | Hardware 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.
Related APIs
The PlanetKitSendVoiceProcessor
class provides APIs to control voice processors that process microphone sounds.
Disabling PlanetKitSendVoiceProcessor
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, PlanetKitSendVoiceProcessor
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 PlanetKitSendVoiceProcessor
to provide better voice quality.
If PlanetKitSendVoiceProcessor
is enabled, you can control internal audio processors using the following APIs.
Acoustic echo cancellation
To control acoustic echo cancellation, use the setAcousticEchoCanceller()
method, which takes PlanetKitAcousticEchoCancellerMode
as a parameter. The PlanetKitAcousticEchoCancellerMode
enum provides the following modes:
Mode | Description |
---|---|
disabled | Does not use the acoustic echo canceller. |
intensityRecommended | Applies a preset mode considering audio device type and OS type, which is determined through quality testing. Use intensityRecommended if you are not sure which mode to set. |
intensityMin | Minimizes echo cancellation. |
intensityMax | Aggressively reduces echo. |
intensityAdaptive | Adaptively adjusts the intensity of echo cancellation internally. |
Auto gain control
To control auto gain control, use the setAutoGainControl()
method, which takes PlanetKitAutoGainControlMode
as a parameter. The PlanetKitAutoGainControlMode
enum provides the following modes:
Mode | Description |
---|---|
disabled | Does not use the auto gain controller. |
software | Performs auto gain control by software. |
hardware | Performs auto gain control by hardware. However, it is not available on iOS or Android. |
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 PlanetKitNoiseSuppressorMode
as a parameter. The PlanetKitNoiseSuppressorMode
enum provides the following modes:
Mode | Description |
---|---|
disabled | Disables the noise suppressor. |
enabled | Enables the noise suppressor. (Default value) |
Related API
APIs related to VQE control are as follows.