How to Implement a Voice Changer Capability
This article explains how to implement a voice changing function into an app.
Join the DZone community and get the full member experience.
Join For FreeResearch has shown that our voice is often an indicator of our personalities, and this is why we're so fascinated with changing our voice to make it sound more fun and uplifting in, for example, videos and live streams.
As a mobile developer, I have implemented a voice changing function into my own app, which you can try out in my demo. This function allows users to mask their voice using seven preset voices: seasoned, cute, male, female, monster, cartoon, and robots.
I don't want to brag, but I myself still find this function amazing. Let's move on to how it's developed.
Making Preparations
Ensure you have completed these steps first.
Configuring the Project
Set the app authentication information.
This can be set via an API key or access token.
- Call setAccessToken during app initialization to set an access token. This only needs to be set once.
HAEApplication.getInstance().setAccessToken("your access token");
- Or, use setApiKey to set an API key during app initialization. This only needs to be set once.
HAEApplication.getInstance().setApiKey("your ApiKey");
Calling the File API
Call the file API for the voice changer function, which is necessary for calling back the file API.
private ChangeSoundCallback callBack = new ChangeSoundCallback() {
@Override
public void onSuccess(String outAudioPath) {
// Callback when the processing is successful.
}
@Override
public void onProgress(int progress) {
// Callback when the processing progress is received.
}
@Override
public void onFail(int errorCode) {
// Callback when the processing fails.
}
@Override
public void onCancel() {
// Callback when the processing is canceled.
}
};
Implementing the Voice Changer Capability
Call applyAudioFile to change the voice.
// Change the voice.
HAEChangeVoiceFile haeChangeVoiceFile = new HAEChangeVoiceFile();
ChangeVoiceOption changeVoiceOption = new ChangeVoiceOption();
changeVoiceOption.setSpeakerSex(ChangeVoiceOption.SpeakerSex.MALE);
changeVoiceOption.setVoiceType(ChangeVoiceOption.VoiceType.CUTE);
haeChangeVoiceFile.changeVoiceOption(changeVoiceOption);
// Call the API.
haeChangeVoiceFile.applyAudioFile(inAudioPath, outAudioDir, outAudioName, callBack);
// Cancel the task of changing the voice.
haeChangeVoiceFile.cancel();
And now it's implemented. Easy, right? I hope this article can help you develop your own voice changer, and feel free to leave a comment if you want to learn more about my development journey.
Opinions expressed by DZone contributors are their own.
Comments