—— 帧影翻译(功能为视频翻译)实战记录

写在前面

花了不到一个月的时间,用 AI 开发了一款个人微信小程序:帧影翻译。这篇笔记记录整个过程的真实心得和开发步骤,想自己动手做小程序的朋友可以参考,也欢迎大家去小程序里试试效果。

 

先交代一下背景:我本人不是专业程序员,做之前小程序也没碰过。全程的代码都是 AI 智能体写的,我负责想清楚需求、定方向、测试、踩坑、迭代。用 AI 做小程序,门槛真的被拉得很低,但前提是你愿意花时间去打磨去迭代。

 

全文是我自己的真实经历,不是教程式的空话。翻译逻辑只讲原理,重点放在小程序怎么做。

一、先想清楚做什么

 

最初的最初,是有一个自己觉得好的想法,并且有能落地的信心。这个想法可大可小,但最好是真的有一些受众群体,尽量不要自嗨——做出来没人用,很快就没动力维护了。

 

我的想法:经常看外语视频(YouTube、TikTok 上的),没字幕看不懂。不管是海内外视频剪辑,还是外语学习,又或是跨境工作多语言需求者都有使用场景。做一个"视频翻译"小程序:用户上传视频 → 识别语音 → 翻译成目标语言 → 出字幕或烧进视频。这个需求不是只有我有,看外语视频的人很多,受众是实打实的。

 

有了想法后,先把它丢给 AI,让它帮你梳理:功能清单、技术选型、可能的风险。这一步很值,AI 会把你想不到的问题提前暴露出来(大文件上传、处理耗时、审核合规……)。

 

预算也可以先摸底:小程序注册认证 30 元 + 内网穿透一年几十块 + 语音识别用本地开源模型(免费)+ 翻译用大模型 API(按量付费,几块钱基本可以忽略)。我整个工程从头到尾,产生费用一共三四百块钱,硬件用的是家里旧笔记本,总体成本很低。

 

二、关于 AI 智能体(重点)

 

2.1 用的是什么

我用的不是豆包、元宝这类聊天机器人,而是能真正干活、执行命令的编程智能体(Claude 这类、Codex、或者最近新出的 WorkBuddy 等)。这类 agent 能自己读写文件、跑命令、改代码,你所有要做的就是跟它对话,让它按你的意愿和方向为你工作——它就是你专属的牛马。模型种类很多,可以根据预算自己挑,我全程用的是 Hermes(agent) + DeepSeek V4 Flash (大模型)的组合。

 

2.2 agent 也是要驯化的

这个非常重要,前期没做好后面全是坑:

 

  • 制定规则:一开始就跟它约定好工作方式,比如"改代码前先备份""动管线前必须先汇报""交付前自己验证质量"——我的 agent 最开始擅自删过我一个目录,把我气坏了,后来立了规矩:任何删除操作必须经我同意
  • 配置记忆库:让它记住你的偏好(比如我不喜欢啰嗦的回答、交付要先自测),跨会话也能保持
  • 保存副本:养成经常备份的习惯,改动前让 agent 先复制一份原文件,出问题随时回滚
  • 让它学会总结:每次改动让它记录到 changelog,事后能回溯"这功能为什么这么改"

 

2.3 一个屡试不爽的方法:AI 互审

把一个 AI 的产物发给另一个 AI 审核,让它们互相挑毛病,不断完善优化——这个方法我整个开发流程都在用,几乎零成本(我用豆包和 Qwen 辅助审核):

 

  • AI 写好的代码 → 发给另一个 AI 审查 → 列出问题清单
  • 问题逐条核对实际代码,确认是不是真的有问题(AI 也会误报)
  • 你永远是最终决策者:改不改、怎么改,听你的

 

模型之间互相看不顺眼,但挑出来的问题大多是真实存在的。

 

三、开发顺序:先本地,再小程序

 

我的做法和很多人不一样:第一步不碰小程序,先让 AI 在本地把整个功能跑通,验证没问题后再移植成小程序。两者的差别其实只是前端,后端逻辑完全一样。

 

  1. 前期先和 agent 聊天,探讨优化你的想法,让它出一份整体项目计划书
  2. 让 AI 按计划书开始干活——在本地(自己家的宽带和端口)搭建完整管线:上传 → 识别 → 翻译 → 烧录 → 下载,用命令行或网页测试
  3. 本地测试没问题了,再让 AI 把前端移植成小程序代码

 

好处:本地调试快、日志直接看、不用等微信审核。我当时的 workspace (文件夹:定义agent的工作空间)就放在家里一个不太重要的磁盘目录,所有不懂的地方都让 agent 去执行或教我。

 

四、准备:资质 + 开发者工具

 

4.1 注册小程序

去微信公众平台注册个人主体小程序,拿到 AppID。这一部分有点麻烦(要实名、要填一堆资料),可以让 AI 辅助你完成,大概一到两天能研究明白。个人主体能发布,只是部分类目受限,视频工具类没问题。

 

4.2 开发者工具

微信开发者工具,他是调试小程序代码最好的方式,我是这么认为的,但只有 Windows 和 Mac 版。我的本地环境是 Linux(老笔记本装 Linux 性能更好),所以装了个 Windows 虚拟机来跑开发者工具——虚拟机也是让 AI 帮我装的。

 

4.3 创建项目

新建项目填 AppID,从空项目开始。先看懂目录结构:当然看不懂也没关系,ai是懂的~

 

app.js / app.json / app.wxss    # 全局:启动逻辑、路由配置、全局样式

pages/index/                     # 页面(每个页面 4 件套)

  index.js / index.wxml / index.wxss / index.json

 

一个页面 = 4 个文件:wxml(结构)+ wxss(样式)+ js(逻辑)+ json(页面配置)。

 

五、登录:绕不开的第一关(不太重要)

 

小程序没有账号密码,登录流程:

  1. 前端 wx.login() 拿临时 code
  2. code 发给后端,后端拿去微信服务器换 openid(用户唯一身份)
  3. 之后所有请求带这个身份
  4. 以上其实不用太操心,ai就可以解决,是不是感觉被骗了

 

代码很简单,但我踩了个大坑:AI 生成的后端代码忘了 import requests 库,登录接口静默失败(异常被吞了),所有任务挂在假 id 下,历史记录全空,排查了很久。教训:AI 写的代码,跑通了不代表没问题,关键路径要自己验证。

 

另一个容易误解的点:用户删掉小程序重进,openid 不会变(账号级身份)。我一开始以为会变,白查了半天。

 

六、核心功能:选视频 → 上传 → 进度 → 结果

 

小程序的主干,也是踩坑最多的地方。

 

6.1 选视频

wx.chooseMedia(注意 wx.chooseVideo 已废弃,AI 容易写旧的)。

 

6.2 上传:小文件直传,大文件分片

  • 10MB 以内:wx.uploadFile 直传
  • 大文件:分片上传,每片 5MB (最多10MB)带序号,后端收齐合并
  • 可以选择同步乱序传输,会快很多

 

分片是必须的:微信有超时限制,大文件一次传必挂,分片断了能重传。

 

6.3 iOS 的 100MB 坑

iOS 上选视频后的临时文件,读取受 100MB 限制。我一开始用 copyFileSync 复制到本地再读——存储直接翻倍,大文件必炸。正确做法:按偏移量分段读取(readFileSync 支持 start/end),读一段传一段,传完就删。这个坑 AI 不会替你想,是真实用户反馈 + 实测发现的。

 

6.4 进度:轮询 + 环形进度

前端上传完拿到 task_id,每 2 秒轮询后端接口查进度,进度条用 Canvas 画环形。后台处理分阶段(识别/翻译/烧录),前端按阶段显示文案,用户知道卡在哪一步。

 

6.5 结果下载 + 2 小时有效期

结果文件 2 小时后自动清理(省硬盘➕保护隐私),前端同步判断过期:冷启动查服务器,2 小时内恢复结果卡,超时清掉。这里有个坑:小程序切后台超过 2 小时再回来,界面还停在旧结果卡(只有冷启动会检查过期,切后台回来不检查),后来补了切回页面的过期检查才修好。

 

七、翻译逻辑(原理版)

 

后端的事,前端完全不关心。原理四步:

 

① 提取音频:ffmpeg 抽音轨

② 语音识别:本地模型(faster-whisper)转文字 + 时间轴

③ 翻译:识别出的文字发给大模型翻译

④ 生成字幕/烧录:按时间轴生成 SRT,或用 ffmpeg 烧进视频

 

 

  • 识别用本地开源模型(免费,数据不出门)
  • 翻译用大模型 API(按量付费,很便宜)
  • 烧录用 ffmpeg(开源)

关键:前端和后端完全解耦。小程序只管上传、轮询、下载,后端排队处理。这个架构让 AI 可以分别生成两端代码,互不干扰。

 

八、后端:家里电脑当服务器

 

8.1 为什么不用云服务器

主要是性能好的云服务器硬盘流量和租金都贵;家里电脑 24 小时开机免费,还能用显卡跑语音识别。

 

8.2 内网穿透:natapp

家里网络没有公网 IP,需要穿透工具把本地服务暴露到公网,这样才能上线让用户访问,我用 natapp 付费版,几十块钱能搞半年的固定域名隧道,https 证书自动配好,全程傻瓜操作,一行命令启动(ai会帮你的):

 

本地 Flask(5000) ← natapp 隧道 → https://你的域名(小程序访问这个)

 

踩坑:natapp 会不定期掉线(多数是内存爆了被系统连带杀掉),掉线后小程序报"连接被重置"。排查思路:先看进程在不在,再看系统有没有 OOM 记录。

 

8.3 进阶:存储桶省流量(推荐)

如果流量成本敏感,可以配一个对象存储桶(COS 这类):大文件(视频)直传存储桶,小程序不走自己的服务器流量,服务器只处理接口请求,流量成本直线下降。这是进阶玩法,有需要可以搜搜,不在这详述。

 

8.4 Flask + SQLite + 开机自启

后端 Flask(Python 轻量框架)+ SQLite(单文件零配置)。接口就几个:上传、查进度、下载、登录。整个骨架 AI 生成,我改接口逻辑、补安全防护(文件大小限制、路径校验)。

 

配置 systemd 服务开机自启,重启电脑不用手动操作。

 

九、联调与真机调试

 

  1. 开发者工具里先跑通
  2. 真机调试:手机扫码预览。我主要用真机,方便看后台日志——关键是方便把日志复制给 AI 看,让它直接分析问题
  3. 一个细节:每次更新代码后,在工具里点"清除全部缓存",然后左边代码栏右上角刷新一下代码,再编译测试——不然会用到旧缓存,白测
  4. 模拟器和真机差异很大,必须真机测(模拟器一切正常、真机全废的情况不少见)

 

Linux 用户跑开发者工具

 

开发者工具只有 Win/Mac 版。Linux 用户装个 Windows 虚拟机跑。注意:虚拟机里访问宿主机服务用 NAT 模式特殊 IP(10.0.2.2),真机走穿透域名。

 

十、发布与审核

 

10.1 提审流程

开发者工具上传代码 → 公众平台提交审核 → 等待 → 通过后发布。

 

10.2 完善小程序信息

发布前要完善各种信息:名字、logo、简介、隐私指引、备案等等。这一部分需要小半个月,但大部分时间是等官方审核,需要你操作的不多,只是有点麻烦。简介要写清楚功能点,名字别用"神器"这类词(广告法)。

 

10.3 审核踩过的坑

  • 弹窗必须可关闭:用户须知弹窗"不同意就退不出"必拒
  • 敏感词过滤:有用户生成内容就要有敏感词过滤(前端过滤 + 提示即可达标)
  • 文案和功能一致:简介写了什么,小程序里就得有
  • 隐私授权:要配《用户隐私保护指引》,相册/存储权限声明,不然 iOS 打不开相册

 

10.4 体验版 → 正式发布

提交审核前可以发布体验版,让朋友帮你测试验证,没问题了再提审。等官方流程全部走完,就可以恭喜自己了——小程序马上就要面世了!

 

上线不是结束,后续继续迭代:比如我就刚刚扩展了链接导入支持的平台(粘贴 YouTube/TikTok 链接直接翻译)、后台管理面板升级……一个小程序是"上线才开始"。

 

十一、踩坑总结(真金白银)

 

wx.chooseVideo 已废弃——用 wx.chooseMedia

切后台回来的逻辑单独写——onShow 不检查的话,结果卡过期了界面还停在旧状态

openid 删号不变——账号级身份

分片上传必须有——大文件一次传必挂

审核弹窗要可关闭——不然过不了审

内网穿透会掉线——先查 OOM 再查进程

真机测试不能省——模拟器正常真机可能全废

agent 要先驯化——规则、记忆、备份,前期不做后期全是坑

AI 互审——一个 AI 的产物给另一个 AI 挑毛病,零成本提质量

 

结尾

 

做这个小程序,AI 帮我写了绝大部分代码,但踩坑、调试、审核、迭代,都是我自己扛过来的。AI 最大的价值不光是替你写代码,还把"从 0 到 1"的门槛降到了"从 1 到 100":想法、架构、初版代码,AI 几分钟给你;但能不能上线、上线后好不好用,靠的还是你自己。

 

如果你也想做,我的建议就三条:

  1. 先想清楚做什么(有受众,别自嗨),再让 AI 拆需求
  2. AI 写的每行代码都自己看懂、自己验证
  3. 先本地跑通,再移植小程序,一步步来

祝你的小程序早日面世。

 

看到最后,也判断一下这篇文章是不是ai写的~

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐