评论

收藏

[Android] 音视频开发者的福音,快速集成AI配音能力

移动开发 移动开发 发布于:2022-02-28 16:44 | 阅读数:321 | 评论:0

音视频内容创作者对剪辑应用中的AI配音需求与日俱增。它的优点很多,不光可以解决雇佣人力配音的成本以及创作者本身的口音、语言等限制,还可以大幅提升生产效率。比如,短视频的播放时间短的几十秒,长的vlog类型视频有4-5分钟,使用AI配音功能可以在短时间内实现多个剪辑需求。
HMS Core音频编辑服务(Audio Editor Kit)提供AI配音服务,帮助开发者在应用中轻松构建语音合成功能,一键输出文字即可转换语音。它支持乖萌童声,亲切女声,阳光男声,英文男声、女声等多种风格音色,还可以定制自己想要的音色。音色自然流畅,情感丰富,满足有声阅读、音频内容制作、剪辑等多种开发者关注的热门场景。
开发实战
1.开发准备
详细准备步骤可参考华为开发者联盟官网:
https://developer.huawei.com/consumer/cn/doc/development/Media-Guides/config-agc-0000001154009063?ha_source=hms1
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演示
DSC0000.gif

<很高兴见到你>
更多华为音频编辑服务详情,请参考:
服务官网:https://developer.huawei.com/consumer/cn/hms/huawei-audio-editor/?ha_source=hms1
获取指导文档:https://developer.huawei.com/consumer/cn/doc/development/Media-Guides/client-dev-0000001107465102?ha_source=hms1
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~


   
   
   
                        

关注下面的标签,发现更多相似文章