앱에 AI 더빙을 추가하는 방법

TTS(텍스트 음성 변환)는 인간 더빙에 대한 저렴한 대안으로 텍스트를 자연스럽게 들리는 음성으로 자동 변환하는 기능 덕분에 오디오/비디오 편집자들이 많이 찾는 기술입니다. 영상이 길든 짧든 상관없이 모든 종류의 영상에 사용할 수 있습니다.

나는 최근에 HMS Core Audio Editor Kit의 AI 더빙 기능을 우연히 발견했습니다. 탭 한 번으로 입력 텍스트를 음성으로 변환할 수 있으며 부드럽고 자연스럽게 들리는 남성 및 여성 음색을 선택할 수 있습니다.

이것은 전자책과 관련된 앱 개발, 오디오 콘텐츠 생성, 오디오/비디오 편집에 이상적입니다. 아래에서는 이 기능을 통합한 방법을 설명합니다.

준비하기​



official guide에 따라 필요한 모든 준비를 완료하십시오.
프로젝트 구성하기​

1.앱 인증 정보 설정



API 키 또는 액세스 토큰(권장)을 통해 정보를 설정할 수 있습니다.

setAccessToken을 사용하여 앱 초기화 중에 액세스 토큰을 설정합니다.

HAEApplication.getInstance().setAccessToken("your access token");


또는 setApiKey를 사용하여 앱 초기화 중에 API 키를 설정합니다. API 키는 한 번만 설정하면 됩니다.

HAEApplication.getInstance().setApiKey("your ApiKey");


2. 런타임 환경 초기화



HuaweiAudioEditor를 초기화하고 타임라인과 필요한 레인을 생성합니다.

// Create a HuaweiAudioEditor instance.
HuaweiAudioEditor mEditor = HuaweiAudioEditor.create(mContext);
// Initialize the runtime environment of HuaweiAudioEditor.
mEditor.initEnvironment();
// Create a timeline.
HAETimeLine mTimeLine = mEditor.getTimeLine();
// Create a lane.
HAEAudioLane audioLane = mTimeLine.appendAudioLane();


오디오를 가져옵니다.

// Add an audio asset to the end of the lane.
HAEAudioAsset audioAsset = audioLane.appendAudioAsset("/sdcard/download/test.mp3", mTimeLine.getCurrentTime());


3.AI 더빙을 통합합니다.



HAEAiDubbingEngine을 호출하여 AI 더빙을 구현합니다.

// Configure the AI dubbing engine.
HAEAiDubbingConfig haeAiDubbingConfig = new HAEAiDubbingConfig()
// Set the volume.
.setVolume(volumeVal)
// Set the speech speed.
.setSpeed(speedVal)
// Set the speaker.
.setType(defaultSpeakerType);
// Create a callback for an AI dubbing task.
HAEAiDubbingCallback callback = new HAEAiDubbingCallback() {
    @Override
    public void onError(String taskId, HAEAiDubbingError err) {
        // Callback when an error occurs.
    }
    @Override
    public void onWarn(String taskId, HAEAiDubbingWarn warn) {}
    @Override
    public void onRangeStart(String taskId, int start, int end) {}
    @Override
    public void onAudioAvailable(String taskId, HAEAiDubbingAudioInfo haeAiDubbingAudioFragment, int i, Pair<Integer, Integer> pair, Bundle bundle) {
        // Start receiving and then saving the file.
    }
    @Override
    public void onEvent(String taskId, int eventID, Bundle bundle) {
        // Synthesis is complete.
        if (eventID == HAEAiDubbingConstants.EVENT_SYNTHESIS_COMPLETE) {
            // The AI dubbing task has been complete. That is, the synthesized audio data is completely processed.
        }
    }
    @Override
    public void onSpeakerUpdate(List<HAEAiDubbingSpeaker> speakerList, List<String> lanList,
         List<String> lanDescList) { }
};
// AI dubbing engine.
HAEAiDubbingEngine mHAEAiDubbingEngine = new HAEAiDubbingEngine(haeAiDubbingConfig);
// Set the listener for the playback process of an AI dubbing task.
mHAEAiDubbingEngine.setAiDubbingCallback(callback);
// Convert text to speech and play the speech. In the method, text indicates the text to be converted to speech, and mode indicates the mode for playing the converted audio.
String taskId = mHAEAiDubbingEngine.speak(text, mode);
// Pause playback.
mHAEAiDubbingEngine.pause();
// Resume playback.
mHAEAiDubbingEngine.resume();
// Stop AI dubbing.
mHAEAiDubbingEngine.stop();


결과​



아래 데모에서는 앱에서 AI 더빙 기능을 성공적으로 구현했습니다. 이제 기본 및 사용자 정의 음색을 사용하여 텍스트를 감정 표현이 풍부한 음성으로 변환할 수 있습니다.

Image description

자세히 알아보려면 다음을 방문하십시오.

오디오 편집기 키트official website
오디오 편집기 키트Development Guide
Reddit 개발자 토론에 참여하기
GitHub 샘플 코드 다운로드
Stack Overflow 통합 문제를 해결하기 위해

최신 HMS Core 관련 뉴스 및 업데이트를 보려면 공식 계정을 팔로우하세요.

좋은 웹페이지 즐겨찾기