Using Voice Fonts

Voice fonts allow participants to modify their voices in real time mainly for fun effects to improve social interaction in entertainment scenarios. The Dolby.io Communications APIs Platform offers twelve different voice fonts that imitate a variety of vocal tones and styles. If the offered voice fonts are not sufficient for you and you want to use a different voice modification effect, you can use our local audio stream pre-processing.

Available voice fonts

The following table lists audio samples for each available voice font:

Voice font Example 1 Example 2
The original, unprocessed voice
Abyss
AM Radio
Broken Robot
Dark Modulation
Feminine
Helium
Interference
Masculine
Nervous Robot
Starship Captain
Swarm
Wobble

Prerequisites

This feature is currently supported in the Android Client SDK 3.9, iOS Client SDK 3.9, and C++ SDK 2.5 and requires using the Standard [Android, iOS, C++] audio capture mode.

Enabling a voice font

To start using a voice font, select the Standard [Android, iOS, C++] audio capture mode and set the voiceFont [Android, iOS, C++] parameter to a preferred value.

VoxeetSDK.shared.audio.local.captureMode = .standard(noiseReduction: .high, voiceFont:.darkModulation)
VoxeetSDK.audio().getLocal().setCaptureMode(AudioCaptureMode.standard(StandardNoiseReduction.HIGH, VoiceFont.DARK_MODULATION));
VoxeetSDK.audio().local.setCaptureMode(AudioCaptureMode.standard(StandardNoiseReduction.HIGH, VoiceFont.DARK_MODULATION))
sdk->audio()
    .local()
    .set_capture_mode(dolbyio::comms::audio_capture_mode::standard{
        dolbyio::comms::noise_reduction::high,
        dolbyio::comms::voice_font::dark_modulation})
    .then([]() { std::cout << "Setting voice font succeeded!"; })
    .on_error([](std::exception_ptr&&) {
        std::cerr << "Setting voice font failed!";
    });

Disabling the set voice font

To stop using the set voice font and use your natural voice, set the Standard [Android, iOS, C++] audio capture mode and do not provide the voiceFont [Android, iOS, C++] parameter or set it to none.

VoxeetSDK.shared.audio.local.captureMode = .standard(noiseReduction: .high)
VoxeetSDK.audio().getLocal().setCaptureMode(AudioCaptureMode.standard(StandardNoiseReduction.HIGH));
VoxeetSDK.audio().local.setCaptureMode(AudioCaptureMode.standard(StandardNoiseReduction.HIGH))
sdk->audio()
    .local()
    .set_capture_mode(dolbyio::comms::audio_capture_mode::standard{
        dolbyio::comms::noise_reduction::high,
        dolbyio::comms::voice_font::none})
    .then([]() { std::cout << "Disabling voice font to n!"; })
    .on_error([](std::exception_ptr&&) {
        std::cerr << "Setting voice font failed!";
    });

Troubleshooting

Be aware that using voice fonts may be disturbing during meetings and may result in decreased speech intelligibility. To have a better experience, speak naturally and avoid rushing and using filler words.

Voice fonts are designed for processing voice, so we recommend using them with high noise reduction that removes all background sounds. If you set noise reduction to low, additional sounds other than voice will be processed as well and passed to a conference.