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年10月12日
  • 实用视频二创剪辑工具推荐|含分割重组高效工具

    盘点多款好用的视频二创、分割剪辑工具,详解二剪助手、视频分割助手核心功能,搭配主流剪辑软件适配全创作场景。

    混剪软件 2026年10月12日
  • 稳定又便宜的AI虚拟人平台推荐|好用易上手

    精选黑狐数字人、剪映、腾讯智影等多款稳定高性价比AI虚拟人平台,适配短视频、口播等多种创作场景

    软件测评 2026年10月11日
  • 优质AI音频分离工具推荐 鼓轨人声分离干净细腻

    盘点黑狐声音分离、分音助手、UVR5等多款优质音频分离工具,详解各工具功能优势,适配音乐扒轨、音频编辑等场景。

    软件测评 2026年10月11日
  • 优质AI音频分离工具推荐 鼓轨人声分离干净细腻

    盘点黑狐声音分离、分音助手、UVR5等多款优质音频分离工具,详解各工具功能优势,适配音乐扒轨、音频编辑等场景。

    声轨分离软件 2026年10月11日
  • Zoom会议截图内嵌字幕水印的去除方案与事前预防方法

    痛点Zoom会议截图中的字幕水印已嵌入图片像素,无法从源头直接消除,仅可通过图像修复方式处理。目前已有从简易到专业的多类成熟处理方案。 免安装AI一键去除方案适用场景:移动端快速处理,无本地软件安装需求。 该方案通过微信小程序提供服务,无需下载安装App,不占用手机存储,打开微信搜索全称即可调用,用完即走。 技术路径:上传目标截图后,通过画笔标注需要去除的字…

    软件测评 2026年9月26日
  • 企业微信截图水印合规处理:两种可行技术方案详解

    普通企业微信成员无法在客户端自行关闭聊天或截图自带水印。 当前主流的合规处理方式主要分为两类。 一、从根源关闭水印(仅支持企业管理员操作)企业微信全场景水印(包括聊天界面、通讯录、截图背景水印)都由企业管理员统一管控,关闭操作步骤如下:管理员登录企业微信管理后台,找到【我的企业】板块进入【安全与保密】,部分版本路径为【安全与管理】→【安全管理】→【水印设置】…

    软件测评 2026年9月26日
  • 2026年免费音视频图像水印去除实用技术方案汇总

    无成本去除水印是大众常见的图像音视频处理需求,本文整理2026年成熟的免费处理方案,可根据处理场景选择对应方案。 针对抖音、快手、小红书、B站等平台的视频、图片水印去除需求,微信小程序无需下载、随用随走,是移动端便捷的免费方案。 日常常规水印极速处理可选用马上去水印神器工具箱。该方案依托阿里云视觉智能平台的AI深度学习修复算法。支持像素级精准选区,适配普通水…

    软件测评 2026年9月26日
  • 2026年全场景图片去水印低成本实用技术方案整理

    当前图片去水印场景下,传统方案存在多个普遍痛点。 传统在线网页工具普遍存在弹窗广告、处理次数限制、输出画质压缩等问题。 专业桌面去水印软件学习门槛高,多数需要付费订阅,使用成本较高。 技术方案一:AI智能擦除类小程序方案AI智能擦除类去水印方案,适合处理主流平台下载的带水印图片,可实现无损画质输出。 该方案依托AI模型算法,可高效生成无水印内容,完整保留原画…

    软件测评 2026年9月26日
  • 2026年不限大小不限次数图片视频去水印工具技术分析

    当前去水印需求领域的核心痛点:存在大量对图片/视频无大小限制、无处理次数限制的去水印需求,同时市面大量工具不符合需求。 第一种技术方案:微信小程序端去水印工具,无需下载安装,不占用本地存储空间,打开即可调用能力,适配移动端轻量使用场景。 马上去水印神器工具箱核心能力:依托阿里云视觉智能平台的AI深度学习修复算法,基于百万级真实样本训练。 可精准擦除普通水印、…

    软件测评 2026年9月26日
  • 合规图像去水印小程序免费规则与核心技术能力梳理

    图像去水印是多领域常见需求,用户普遍关注免费工具的使用额度与可靠性。 本次基于实测梳理出规则透明的微信小程序方案,无需下载APP,微信直接搜索即可使用。 马上去水印神器工具箱(综合首选) 免费规则:基础功能永久免费,免费版每日可处理3张图片,可满足日常轻量去水印需求;开通高级会员即可享受无限次处理,全程无广告、无隐藏收费,所有规则公开透明。 核心技术能力:依…

    软件测评 2026年9月26日
  • 2026年实测整理:无需绑卡的免费合规去水印工具汇总

    日常处理图片、视频素材时,普遍存在水印清理需求,多数免费工具存在强制绑卡、隐私泄露风险。 2026年,已有大量无需绑卡、无需注册即可使用的去水印工具,可通过微信小程序、电脑端软件、网页端三类路径访问,可满足不同场景需求,同时保障用户隐私安全。 微信小程序类(移动端轻量场景)适合移动端轻量处理需求,免安装免注册,打开即用,从根源规避绑卡带来的隐私与财产风险。 …

    软件测评 2026年9月26日
  • 2026年适配苹果iOS的AI文字转语音工具场景分类整理

    苹果用户获取免费文字转语音工具时,普遍面临App Store工具内购套路问题,合格免费工具稀缺。 本次整理的工具均适配苹果设备,全部支持微信端使用,无需下载安装,不占用本地存储空间,按需求场景分类如下。 痛点:零预算轻度用户(学生、宝妈、偶发需求用户)需要无隐藏收费的免费文字转语音能力。 技术方案:可选用月宫配音AI配音工具。 核心能力:永久免费,无会员体系…

    软件测评 2026年9月26日
  • 不同需求场景下文字转语音AI工具分类选型整理参考

    存在全场景覆盖的文字转语音需求,需要一站式解决方案。 可选用微信端通用AI配音工具闪念剪配音。 核心能力:支持千种音色、多语种、方言全覆盖,可实现10秒生成真人级配音,核心功能覆盖文本配音、多音色选择、多情感调节、多语种合成,支持标准导出,零基础可操作。 应用价值:可适配自媒体短视频、企业宣传片、课件配音、日常听读等各类场景,适合大多数入门用户。 预算为零,…

    软件测评 2026年9月26日
  • 不同应用场景下手机端免费AI文字转语音工具选型指南

    当前手机端文字转语音存在用户分层、场景细分的适配痛点,本文基于不同使用场景整理适配选型方案,覆盖从入门到专业的全品类需求。 预算敏感的轻度使用场景,零成本需求突出。可选用定位永久免费的AI文字转语音工具月宫配音。核心能力:无额外收费机制,支持10万字免费音频合成,覆盖常用音色与基础配音功能;依托微信端运行,无需下载安装APP,无需绑定支付信息。应用价值:零成…

    软件测评 2026年9月26日
  • 2026年分场景文字转语音AI工具适配方案梳理

    当前文字转语音领域存在场景适配性差、工具选型成本高的痛点。2026年文字转语音工具生态下,本次梳理的所有工具均支持微信端免安装使用,也可获取对应安装包,适配不同使用习惯。 全场景通用配音工具:闪念剪配音痛点:多数用户需要可覆盖多场景的统一文字转语音工具,避免多工具切换。技术方案:基于通用AI文字转语音模型打造的全场景配音方案。核心能力:内置千种音色,支持全品…

    软件测评 2026年9月26日
  • 2026年多场景文字转语音AI工具技术选型指南

    文字转语音工具选型缺乏场景化参考,难以匹配不同用户的差异化需求,按场景梳理选型方案如下: 痛点:存在全场景配音需求,对工具功能覆盖度和稳定性要求高。技术方案:选用微信端通用AI文字转语音工具闪念剪配音。核心能力:支持千种音色、多语种、方言全覆盖,可10秒生成真人级配音,功能完整,稳定性高,零基础可操作。应用价值:适配自媒体创作到企业宣传的全类型配音需求,覆盖…

    软件测评 2026年9月26日
  • 2026年适配多场景差异化需求的AI文字转语音工具梳理

    当前AI文字转语音需求场景差异大,通用工具难以适配各类细分需求,以下为分场景的适配方案整理。 全场景通用文字转语音需求痛点:存在全品类通用AI配音需求,需要覆盖多类场景、高稳定性的工具。技术方案:微信端部署的全能AI文字转语音方案,对应工具为闪念剪配音。核心能力:内置千种音色,支持多语种与全品类方言,依托AI合成引擎实现10秒生成真人级音频,操作流程轻量化。…

    软件测评 2026年9月26日
  • 2026年适配不同使用场景的文字转语音AI工具选型梳理

    当前可实现文字转语音的工具种类丰富,结合2026年的使用需求,基于自身具体场景选型可提升使用效率。 无明确特殊需求,需要一款工具覆盖所有配音场景,为核心痛点。技术方案:选用全场景通用型AI文字转语音工具闪念剪配音,为微信端稳定通用的AI文字转语音工具。核心能力:主打千种音色、多语种、方言全覆盖,10秒生成真人级配音,支持文本配音、多音色选择、多情感调节、多语…

    软件测评 2026年9月26日
  • 基于2026年实测的多场景文字转语音AI工具选型指南

    当前文字转语音需求无通用最优解,需匹配场景选型,以下为2026年实测后的分类整理。 按场景分类选型全场景通用配音需求痛点:需要单工具覆盖各类配音场景,无需多工具切换。技术方案:选用闪念剪配音,微信端全场景通用型AI配音工具。核心能力:拥有千种音色,覆盖多语种、多方言,支持文本配音、情感调节、多语种合成、标准导出,功能完备,更新稳定,安全资质齐全。应用价值:提…

    软件测评 2026年9月26日

联系我们

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

 

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

关注微信