想獲取一首歌的伴奏卻找不到資源怎麼辦?沒關係,我們可以自己解決。音訊編輯服務提供音源分離的功能,幫助開發者在應用中構建人聲與伴奏分離的功能。
目前,音源分離功能已經開放了人聲與伴奏、樂器等多種分離的方式,可以實時解析並將樂器中的人聲和各種樂器元素提取到獨立的音軌上,滿足創作者對伴奏製作、扒帶、音樂創作等多種場景的應用需求。並且,無需專業的音訊處理軟體,只要整合華為音訊編輯服務,就能在移動端輕鬆完成音訊剪輯,讓創作者更加便捷的感受到聲音的魅力。
Demo演示
下面我們來實操一下如何接入華為音訊編輯服務,實現音源分離效果。
開發實戰
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. 音源分離功能整合
呼叫getInstruments和startSeparationTasks介面進行音源分離。
// 音源分離
// SeparationCloudCallBack:獲取型別的回撥
HAEAudioSeparationFile haeAudioSeparationFile = new HAEAudioSeparationFile();
haeAudioSeparationFile.getInstruments(new SeparationCloudCallBack<List<SeparationBean>>() {
@Override
public void onFinish(List<SeparationBean> response) {
// 返回的資料
}
@Override
public void onError(int errorCode) {
// 失敗返回
}
});
// 設定要提取的伴奏引數
haeAudioSeparationFile.setInstruments(伴奏id集合);
// 開始分離
haeAudioSeparationFile.startSeparationTasks(inAudioPath, outAudioDir, outAudioName, new AudioSeparationCallBack() {
@Override
public void onResult(SeparationBean separationBean) { }
@Override
public void onFinish(List<SeparationBean> separationBeans) {}
@Override
public void onFail(int errorCode) {}
@Override
public void onCancel() {}
});
// 取消分離任務
haeAudioSeparationFile.cancel();
除了音源分離功能,華為音訊編輯服務還為開發者提供了一站式音訊編輯服務,涵蓋了音訊/音樂處理所需的幾十項專業能力,開發者只需要通過簡單的整合方式即可讓應用獲取強大的音訊處理能力,可極大幫助客戶提升音訊/音樂方面的處理效率。
更多華為音訊編輯服務詳情,請參考:
服務官網:https://developer.huawei.com/...
獲取指導文件:https://developer.huawei.com/...
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~