音視訊開發者的福音,快速整合AI配音能力

HMSCore發表於2022-03-01

音視訊內容創作者對剪輯應用中的AI配音需求與日俱增。它的優點很多,不光可以解決僱傭人力配音的成本以及創作者本身的口音、語言等限制,還可以大幅提升生產效率。比如,短視訊的播放時間短的幾十秒,長的vlog型別視訊有4-5分鐘,使用AI配音功能可以在短時間內實現多個剪輯需求。

HMS Core音訊編輯服務(Audio Editor Kit)提供AI配音服務,幫助開發者在應用中輕鬆構建語音合成功能,一鍵輸出文字即可轉換語音。它支援乖萌童聲,親切女聲,陽光男聲,英文男聲、女聲等多種風格音色,還可以定製自己想要的音色。音色自然流暢,情感豐富,滿足有聲閱讀、音訊內容製作、剪輯等多種開發者關注的熱門場景。

開發實戰

1.開發準備

詳細準備步驟可參考華為開發者聯盟官網:

https://developer.huawei.com/...

2.編輯工程整合

2.1設定應用的鑑權資訊

開發者需要通過api_key或者Access Token來設定應用鑑權資訊。

  • (推薦)通過setAccessToken方法設定Access Token,在應用啟動時初始化設定
HAEApplication.getInstance().setAccessToken("your access token");
  • 通過setApiKey方法設定api_key,在應用啟動時初始化設定一次即可,無需多次設定。

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

2.2初始化環境

初始化音訊編輯管理類、建立時間線以及需要的泳道。

// 建立音訊編輯管理類
HuaweiAudioEditor mEditor = HuaweiAudioEditor.create(mContext);
// 初始化Editor的執行環境
mEditor.initEnvironment();
// 建立時間線
HAETimeLine mTimeLine = mEditor.getTimeLine();
// 建立泳道
HAEAudioLane audioLane = mTimeLine.appendAudioLane();

匯入音樂。

// 泳道末尾新增音訊資源
HAEAudioAsset audioAsset = audioLane.appendAudioAsset("/sdcard/download/test.mp3", mTimeLine.getCurrentTime());

3. AI配音功能整合

呼叫HAEAiDubbingEngine實現AI配音功能。

// 通過此配置類來對AI配音引擎進行配置
HAEAiDubbingConfig haeAiDubbingConfig = new HAEAiDubbingConfig()
// 設定音量
.setVolume(volumeVal)
// 設定音速
.setSpeed(speedVal)
// 設定發音人
.setType(defaultSpeakerType);
// 單個AI配音任務回撥
HAEAiDubbingCallback callback = new HAEAiDubbingCallback() {
    @Override
    public void onError(String taskId, HAEAiDubbingError err) {
        // error處理
    }
    @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) {
        // 開始接收檔案,儲存成檔案
    }
    @Override
    public void onEvent(String taskId, int eventID, Bundle bundle) {
        // The synthesis is complete.
        if (eventID == HAEAiDubbingConstants.EVENT_SYNTHESIS_COMPLETE) {
            // AI配音任務處理結束,即合成的音訊資料全部處理完畢
        }
    }
    @Override
    public void onSpeakerUpdate(List<HAEAiDubbingSpeaker> speakerList, List<String> lanList,
         List<String> lanDescList) { }
};
// AI配音引擎
HAEAiDubbingEngine mHAEAiDubbingEngine = new HAEAiDubbingEngine(haeAiDubbingConfig);
// 設定AI配音任務播放過程偵聽
mHAEAiDubbingEngine.setAiDubbingCallback(callback);
// 實時AI配音並播放API,text傳入待轉語音的文字,modeAI配音任務播放模式
String taskId = mHAEAiDubbingEngine.speak(text, mode);
// 暫停播放
mHAEAiDubbingEngine.pause();
// 恢復播放
mHAEAiDubbingEngine.resume();
// 關閉合成
mHAEAiDubbingEngine.stop();

Demo演示

<很高興見到你>

更多華為音訊編輯服務詳情,請參考:
服務官網:https://developer.huawei.com/...
獲取指導文件:https://developer.huawei.com/...

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間瞭解 HMS Core 最新技術資訊~

相關文章