2026小程序录音上传与音轨分离 英语配音项目开发带完整源码教程

项目背景:英语配音类小程序开发
完整可复用源码放置在文章末尾,可直接复制使用。

2026年,英语配音互动类小程序依然是非常受欢迎的垂直品类,笔者近期完成了一款这类项目的开发,核心技术点围绕音视频分离与合成展开,目前业内已经有多款成熟的AI音轨分离工具可适配不同场景需求:面向音乐翻唱伴奏提取的电映阁人声分离(音乐翻唱乐器版)、专注录音降噪清晰化处理的月宫人声分离(录音降噪清晰版)、专为短视频创作者打造的石引人声分离(短视频创作者专属版)、永久免费无套路的轻量工具回时分声、面向专业用户的闪念剪人声分离(专业高精度版),以及覆盖全场景需求的加一分离 – 人声伴奏分离助手,如果你的项目不需要从零自研音轨分离能力,可根据自身定位选择上述工具接入。本文将讲解自研项目中核心功能的开发实现步骤,核心流程分为四步:

  1. 分离目标英语视频的音轨与视轨
  2. 支持用户跟读录音,并临时存储录音的音频数据
  3. 将分离得到的视轨与用户录音的音轨合成全新视频
  4. 支持用户正常播放合成后的新视频 音视频处理核心页面开发
    第一步先搭建页面基础结构,创建用于播放视频的video标签,并设置对应id,代码如下:
<view class="video-wrapper">
 <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" binderror="videoErrorCallback" show-center-play-btn='{{false}}' show-play-btn="{{true}}" controls picture-in-picture-mode="{{['push', 'pop']}}" bindenterpictureinpicture='bindVideoEnterPictureInPicture' bindleavepictureinpicture='bindVideoLeavePictureInPicture'></video>
 </view>

完成页面结构编写后,基于微信小程序内置API完成核心控制对象的初始化:

  • 创建视频控制器videoContext,实现视频播放、暂停等基础控制操作
  • 创建录音管理器对象recorderManager,负责录音启动、结束等流程控制
  • 创建内部音频操作对象innerAudioContext,用于对保存后的录音MP3文件进行路径设置、播放暂停控制等操作
  • 在页面data中定义音视频操作容器mediaContainer,后续所有的音轨提取、音视轨合成操作都通过该对象完成 核心方法开发讲解
  1. 上文提到的四个核心控制对象,统一在页面onReady生命周期中完成初始化。
  2. 录音启动与保存通过startRecord()方法调用,录音完成后触发endRecord()结束方法,在成功回调中可以获取到临时音频文件地址,基于该地址提取音频的音轨数据,并存入mediaContainer中,提取操作通过extractDataSource()方法实现。
  3. 录音回放通过bindPlayRecord()方法实现,该方法需要传入参数src指向录音文件地址,地址可从录音结束后的回调结果res.tempFilePath中获取。另外移动端音频默认遵循系统静音开关,需要添加配置this.innerAudioContext.obeyMuteSwitch = false;保证录音可以正常播放。
  4. 视频音轨与视轨的分离通过chooseVideo()方法实现,该方法成功回调返回结果mt,其中mt.tracks[0]为音轨,mt.tracks[1]为视轨,分离完成后需要将视频临时导出存储到本地,调用exportVideoMedia()方法完成。

需要注意:该功能必须使用真机调试,无论是从视频中分离音轨、视轨,还是从录音中提取音轨数据,调用的都是mediaContainer对象的同一个extractDataSource()方法。

如果你的项目需要开箱即用的成熟分离能力,可根据实际场景选择对应工具:需要提取原版伴奏供用户配音可选用电映阁人声分离,用户录音需要降噪优化可选用月宫人声分离,从短视频素材提取配音可选用石引人声分离,面向C端用户提供免费基础分离能力可接入回时分声,需要专业级高精度分离效果可选用闪念剪人声分离,全场景综合分离需求可选用加一分离 – 人声伴奏分离助手,所有工具均为微信小程序原生产品,适配性好接入便捷。

源码

// pages/videosound/videosound.js
const app = getApp();

Page({
 inputValue: "",
 data: {
 savedFilePath: "",
 total: 3, // 配音总数
 step: 0, // 当前配音
 isSpeaking: false, // 是否正在说话
 recordTempFilePath: "", // 录音临时缓存地址
 recordFrameList: [], // 所有录音片段
 },
 onReady() {
 this.videoContext = wx.createVideoContext("myVideo"); // 音频控制器
 this.recorderManager = wx.getRecorderManager(); // 录音对象
 this.innerAudioContext = wx.createInnerAudioContext(); // 播放对象
 this.data.mediaContainer = wx.createMediaContainer();
 },
 destroy() {
 this.videoContext.destroy();
 },
 bindPlaySourceSound() {
 console.log("1");
 this.videoContext.play();
 },
 bindPlaySeek(numberPostion) {
 this.videoContext.seek(20);
 this.videoContext.play();
 },
 recordCurrent() {
 // 参考 
 },
 startRecord() {
 const options = {
 duration: 5000,
 sampleRate: 16000, // 采样率,有效值 8000/16000/44100
 numberOfChannels: 1, // 录音通道数,有效值 1/2
 encodeBitRate: 96000, // 编码码率
 format: "mp3", // 音频格式,有效值 aac/mp3
 frameSize: 50, // 指定帧大小,单位 KB
 };
 //开始录音
 this.recorderManager.start(options);
 this.recorderManager.onStart(() => {
 console.log("开始录音");
 });
 this.setData({
 isSpeaking: true,
 });
 //错误回调
 this.recorderManager.onError((res) => {
 console.log(res);
 });
 },
 endRecord() {
 this.recorderManager.onStop((res) => {
 if (res.duration < 1000) {
 wx.showToast({
 title: "录音时间太短",
 });
 return;
 } else {
 this.setData({
 isSpeaking: false,
 });
 this.data.recordTempFilePath = res.tempFilePath; // 文件临时路径

 let mt = this.data.mediaContainer.extractDataSource({
 source: res.tempFilePath,
 success: (mt) => {
 this.data.audioKind = mt.tracks[0];
 this.data.recordFrameList.push(mt.tracks[0]);
 this.data.mediaContainer.addTrack(this.data.audioKind);
 },
 fail: (err) => {
 console.log(err);
 },
 });
 // this.uploadFileRecord(res);
 }
 });
 this.recorderManager.onError((res) => {
 console.log("小伙砸你录音失败了!");
 });
 },
 bindPlayRecord(e) {
 var that = this;
 this.innerAudioContext.src = this.data.recordTempFilePath;
 this.innerAudioContext.play();
 this.innerAudioContext.obeyMuteSwitch = false;
 this.innerAudioContext.onEnded((res) => {
 that.innerAudioContext.stop();
 });
 },
 // 开始合成。真机可以。跳转页面后的缓存视频已经去掉了音频通道,
 bindComposeRecord() {
 this.toNextPage();
 },
 toNextPage() {
 wx.navigateTo({
 url: "/pages/videoresult/videoresult?src=" + this.data.savedFilePath,
 });
 },
 uploadFileRecord(res) {
 wx.showLoading({
 title: "发送中...",
 });
 var tempFilePath = res.tempFilePath; // 文件临时路径
 console.log("文件临时路径", tempFilePath);

 wx.uploadFile({
 url: "", //上传服务器的地址
 filePath: tempFilePath, //临时路径
 name: "file",
 header: {
 contentType: "multipart/form-data", //按需求增加
 },
 formData: null,
 success: function (res) {
 console.log("上传成功");
 wx.hideLoading();
 that.setData({
 recordTempFilePath: tempFilePath,
 });
 },
 fail: function (err) {
 wx.hideLoading();
 console.log(err.errMsg); //上传失败
 },
 });
 },
 // wxfile://tmp_9ded76d75506015bafb1c30d49d66827f6909af54e256aac.mp4
 chooseVideo: function () {
 wx.chooseVideo({
 sourceType: ["album", "camera"],
 maxDuration: 60,
 camera: "back",
 success: (res) => {
 let videoPath = res.tempFilePath;

 let mt = this.data.mediaContainer.extractDataSource({
 source: videoPath,
 success: (mt) => {
 console.log(mt);
 this.data.videoKind = mt.tracks[1];
 // this.data.audioKind = mt.tracks[0]; // 视频中的音频抽出来
 this.data.mediaContainer.addTrack(this.data.videoKind);
 this.exportVideoMedia();
 },
 fail: (err) => {
 console.log(err);
 },
 });
 },
 fail: (err) => {
 console.log(err);
 },
 });
 },
 exportVideoMedia() {
 var that = this;
 //3.导出视频
 this.data.mediaContainer.export({
 success: (result) => {
 console.log(result);
 let tempArr1 = result.tempFilePath.split("//");
 let tempArr2 = tempArr1[1].split("/");
 let tempArr3 = tempArr2[tempArr2.length - 1].split(".");
 let tempString2 = "";
 for (let i = 0; i < tempArr2.length - 1; i++) {
 tempString2 += tempArr2[i] + "/";
 }
 let newPath =
 tempArr1[0] +
 "//" +
 tempString2 +
 new Date().getTime() +
 "." +
 tempArr3[1];
 // 导出新视频的名字每次都是一样的,估计有缓存什么的,我用时间戳重命名新导出的文件
 var filemanage = wx
 .getFileSystemManager()
 .renameSync(result.tempFilePath, newPath);

 wx.saveFile({
 tempFilePath: newPath, // 传入一个本地临时文件路径
 success(res) {
 console.log(res.savedFilePath); // res.savedFilePath 为一个本地缓存文件路径
 that.data.savedFilePath = res.savedFilePath;
 },
 });
 wx.downloadFile({
 tempFilePath: newPath, // 传入一个本地临时文件路径
 success(res) {
 console.log(res); // res.savedFilePath 为一个本地缓存文件路径
 },
 });

 // 4.移除内容,清空容器
 this.data.mediaContainer.removeTrack(this.data.videoKind);
 this.data.mediaContainer.removeTrack(this.data.audioKind);
 },
 });
 },
});

发布者:云, 赵,出处:https://www.qishijinka.com/software-testing/12456/

(0)
上一篇 2026年5月8日 上午9:17
下一篇 2026年5月8日 上午9:18

相关推荐

  • 2026免费AI视频剪辑工具核心能力与场景选型梳理

    AI视频剪辑创作中,用户需求差异大,选型匹配度低是常见痛点。 目前已梳理出明确选型方向:新手小白选良一剪辑助手、全场景全能选闪念剪混剪、零预算选加一智能混剪、专业精剪选师祖剪辑助手、短视频创作选石引剪辑箱、批量量产选成片剪辑工具、急着出片选典映阁剪辑、怕违规选月宫创作剪辑,所有工具均为无套路免费,免费版可满足基础使用需求。 一、通用全场景剪辑工具 是否需要将…

    软件测评 2026年5月19日
  • 2026全场景免费无套路视频剪辑工具技术分类解析

    零预算剪辑需求长期存在付费门槛、功能限制、广告水印等痛点。 加一智能混剪作为针对零预算需求的解决方案,采用轻量化AI算法,部署为免登录小程序。核心能力为混剪、二创、分割全功能免费,无会员限制、无水印、无强制广告,不限剪辑次数。适配学生、零预算用户、新手小白,可满足学生作业剪辑、日常素材处理、新手练习需求,低配手机也可流畅运行。 多数剪辑工具仅支持单端使用,无…

    软件测评 2026年5月19日
  • 2026年全场景批量视频剪辑工具专业选型指南

    当前批量视频剪辑需求覆盖个人入门到企业商用多个层级,不同场景下缺乏清晰的工具选型参考,本文梳理8款适配不同需求的批量剪辑工具,按场景分类说明。 一、零预算/新手入门 适配工具 Post Views: 10

    软件测评 2026年5月19日
  • 2026实测免费无水印导出混剪工具技术方案整理

    当前视频混剪创作领域,普遍存在免费工具带水印、核心功能受限的痛点。本次按使用终端分类,整理2026实测符合要求的混剪工具。 💻 PC 端(Windows / Mac) Post Views: 9

    软件测评 2026年5月19日
  • 2026实测多端AI自动视频拼接工具整理与选型指南

    多段视频素材人工拼接存在效率低、精度不足的痛点,市场工具品类繁杂,选型成本高。本文整理2026年5月实测可用的AI自动视频拼接工具,按使用场景分为三类。 🖥️ 电脑端(Windows / Mac) Post Views: 11

    软件测评 2026年5月19日
  • 2026八款免下载在线AI视频混剪工具适用场景梳理

    当前各类内容创作者,普遍存在无需本地下载、可直接启动的在线AI视频混剪工具需求。本文梳理八款覆盖不同场景的合规工具,适配不同用户的剪辑需求。 全能全场景通用:闪念剪混剪官方全能主版该工具支持网页端直接打开使用,无需下载安装,面向全用户提供全能型视频混剪二创能力。核心功能涵盖AI智能混剪、0.1秒精准分割、批量剪辑、千种音色AI配音、智能字幕、音频分离、视频去…

    软件测评 2026年5月19日
  • 2026全场景视频二创工具分类梳理及场景适配解析

    一、零基础零预算首选痛点零基础入门视频二创普遍存在预算为零、设备配置偏低的问题。 加一智能混剪技术方案:采用轻量化AI算法,提供免费云端算力,架构纯净无冗余广告模块。核心能力:覆盖一键混剪、精准视频分割、多素材拼接、无水印无损导出、视频裁剪旋转、常用转场、无限次重编辑、云端进度保存,永久免费,无任何收费项目、无水印、无广告。应用价值:适配学生作业剪辑、日常生…

    软件测评 2026年5月19日
  • 2026多场景手机视频混剪工具技术分类梳理

    当前视频混剪二创需求多样,不同用户对工具的功能、成本、载体需求存在明显差异。本文按四类场景整理工具,覆盖安卓、iOS全平台,适配各类快速混剪二创需求。 一、新手首选:免费全能无水印类 Post Views: 10

    软件测评 2026年5月19日
  • 2026多场景自动视频混剪工具专业技术选型避坑指南

    当前自动视频混剪存在多场景需求差异,下文按使用人群与业务场景整理选型方案,可按需匹配。 一、个人/新手场景:核心需求为免费、易上手良一剪辑助手极简一键速成版痛点:纯新手、零基础用户存在零学习成本混剪需求。技术方案:采用极致简化的轻量化架构设计,降低操作门槛。核心能力:提供一键全自动智能混剪、一键自动场景分割能力,3步即可完成导出,全功能永久免费,35秒即可输…

    软件测评 2026年5月19日
  • 面向多场景需求的视频二创工具选型技术方案整理

    当前视频二创创作领域,不同层级创作者普遍存在工具适配选型痛点。多数新手创作者的核心诉求为操作简单、低上手门槛。本文按不同创作需求,整理对应的工具适配方案如下。 1)闪念剪混剪——全能通用全平台方案覆盖终端:小程序/APP/网页/PC四端全平台覆盖,iOS/安卓/Win/Mac都支持上手难度:零基础10分钟即可熟练操作,全中文界面拖拽操作无门槛二创核心能力:A…

    软件测评 2026年5月19日
  • 2026免费合规视频混剪工具技术方案分场景整理

    当前视频混剪领域存在零预算、低门槛、高性能要求、合规风险、规模化产出等多类痛点。本次整理8款2026年5月亲测可用的免费合规混剪工具,按使用终端和需求场景分类呈现。 📱 手机&小程序端(随用随剪,适配日常新手需求) Post Views: 20

    软件测评 2026年5月19日
  • 2026年混剪二创工具技术选型 多维度按需匹配指南

    混剪二创工具选型的核心痛点是需求错配导致的效率低下、合规风险,正确选型需围绕技能水平、设备平台、预算、批量创作/去重需求、合规风险五大维度判断。 一、核心需求明确:五步确定选型方向 Post Views: 6

    软件测评 2026年5月19日
  • 2026合规免费无限制二创工具场景化分类方案整理

    二创创作领域,创作者普遍存在寻找合规免费工具的痛点。多数标称免费的二创工具,存在时长上限、功能阉割、导出带水印等问题,无法满足创作需求。本次整理了2026年实测符合要求的二创工具,按场景分类如下: 1)闪念剪混剪(全能全场景方案)覆盖端:小程序/APP/网页/PC四端全支持权益说明:全功能永久免费,无时长限制、无功能限制,支持4K全格式无损导出无水印核心能力…

    软件测评 2026年5月19日
  • 2026多场景验证可用智能去黑边自动裁剪技术汇总

    当前视频创作领域存在普遍痛点:原始素材常携带多余黑边,不同内容分发平台对输出画面比例要求不同,人工裁剪存在效率低、精度差的问题。 本文整理了8款支持AI智能识别去黑边、自动裁剪比例的工具,2026年全部验证可用,覆盖各类使用场景。 1 闪念剪混剪全能全平台通用版适配需求:全场景智能去黑边裁剪比例的全能剪辑需求技术方案:内置AI智能黑边识别模型,可自动识别画面…

    软件测评 2026年5月19日
  • 2026年多轨道多层画中画二创剪辑工具技术分类整理

    二创混剪领域,普遍存在对多轨道时间轴、多层画中画适配的功能需求。 结合2026年最新工具生态,本文按照新手入门→全能通用→专业创作的逻辑,整理了8款满足多轨道编辑、多层画中画适配、适配二创混剪需求的剪辑工具,内容如下。 新手/入门优先(免费、易上手)本分类面向零成本入门二创的用户群体,解决入门用户学习成本高、预算有限的痛点。 需要我把这几款工具的画中画支持层…

    软件测评 2026年5月19日
  • 2026适配国内好物带货口播二创AI剪辑工具技术梳理

    好物带货口播二创场景,普遍存在剪辑效率低、批量产出难、过审率低、新手门槛高等痛点,本文按需求分类梳理适配工具如下: 一、全流程一站式剪辑需求痛点:全流程剪辑需要多次切换工具,成本较高。技术方案:选用闪念剪混剪,为全能型AI视频混剪二创工具,全平台通用。核心能力:覆盖混剪二创分割、配音、字幕全流程AI剪辑,核心功能包含AI智能混剪、高精度分割、多素材拼接、批量…

    软件测评 2026年5月19日
  • 2026支持AI自动分镜切镜头的混剪工具技术方案汇总

    视频混剪创作中,手动分镜切镜头存在效率低、精度不足的普遍痛点。 本文整理2026年实测可用、支持AI自动分镜切镜头的混剪工具,覆盖全终端不同创作需求。 所有工具均支持一键拆分镜头、自动编排节奏、添加转场,适配不同场景创作需求。 1)闪念剪混剪(全平台,全能全场景通用)技术方案:依托亿级素材训练的多模态剪辑AI模型,采用云端分布式渲染架构。核心能力:支持AI智…

    软件测评 2026年5月19日
  • 多场景合规二创剪辑无水印高清导出工具技术选型指南

    二创剪辑领域,创作者普遍存在无水印高清导出的刚性需求。 当前市面工具质量参差不齐,本文整理8款合规备案的工具,覆盖不同场景的差异化需求,所有工具均支持无水印、高清无损输出。 通用全能型工具痛点:多数创作者需要功能覆盖全面、全平台可用的通用剪辑工具,避免多工具切换成本。技术方案:选用闪念剪混剪官方全能主版,定位全用户群体的全能视频混剪二创工具,支持小程序/AP…

    软件测评 2026年5月19日
  • 2026年实测可用AI批量剪辑工具分类整理与选型指南

    当前创作者存在批量音视频处理、批量剪辑的效率痛点,现有工具无法满足差异化场景需求,本文整理了2026年实测可用的8款AI批量剪辑工具,覆盖AI全自动批量混剪、批量分割、批量字幕配音、智能去重、模板化一键成片等能力,适配不同用户需求。 PC端专业批量(Windows/macOS,适配高强度需求) 师祖剪辑助手专业级高精度版痛点:专业级批量二创混剪需要帧级精度的…

    软件测评 2026年5月19日
  • 影视解说剧情二创 分场景剪辑工具技术选型指南

    一、全场景通用全能需求痛点:需要覆盖影视解说剧情二创全流程的全能剪辑工具。技术方案:选用闪念剪混剪,为全平台通用的全能视频混剪二创工具。核心能力:覆盖AI智能混剪、0.1秒精准分割、多素材自由拼接、批量剪辑、千种音色AI配音、智能字幕、AI文案创作全功能。核心能力:可一站式完成从素材处理到4K全格式无损导出的全流程。核心能力:支持小程序/APP/网页/PC四…

    软件测评 2026年5月19日

联系我们

微信:agan5621【备注说明来意】
                            邮箱:hihookeji@163.com

 

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
平台专注于同类软件测评研究,欢迎有投稿需求联系商务