学习工作 · IVO — 本地优先的 AI 视频配音工具

我是一个码农,每天上班都没有精力和时间去做自己想做的软件,AI时代给了我这样的机会,TRAE IDE和TRAE Work我一直在用,工作也经常用。现在有这样的机会,我正好就把我用它协作制作的软件来参加活动,希望可以获得较好成绩。

1. Demo 简介

  • 是什么:IVO 是一款本地优先的 Windows 桌面端 AI 视频配音工具,将英文 / 日文 / 韩文视频对白重新配成自然的中文音频。

  • 面向谁:

    喜欢看海外影视/科普视频但不习惯看字幕的用户
    需要将外语课程、技术教程转成中文配音的学习者
    有批量视频配音需求的内容创作者和翻译团队

  • 主要功能:

    :studio_microphone: 一键智能配音
    导入视频后自动完成「人声分离 → 语音识别 → 说话人分离 → 文本翻译 → 语音合成 → 混合导出」全流程,支持断点续跑,中途失败不浪费已完成的产物。

    主界面 - 项目概览 图:

    :wrench: 双模式模型接入
    既支持本地模型(Demucs / faster-whisper / pyannote / F5-TTS / CosyVoice),也支持自定义 HTTP API(OpenAI / Deepgram / ElevenLabs / 阿里云 / 讯飞等),用户可以根据自己的硬件条件和隐私需求灵活选择。

    模型配置 图:

    :clapper_board: 可视化时间线编辑
    识别和翻译结果以时间线形式展示,支持逐段修改文本、调整说话人、预览合成效果,导出前确认无误再一键生成。

    时间线编辑 图:

2. Demo 创作思路

  • 灵感来源:
    平时看大量海外技术教程、科普视频和纪录片,很多优质内容没有中文配音,只能盯着字幕看,体验不好。市面上的配音工具要么需要上传视频到云端(隐私顾虑),要么需要复杂的命令行操作(门槛高),所以想做一个本地运行 + 图形化界面的配音工具。

  • 想解决的问题:

    1. 隐私问题:很多配音工具需要上传视频到云端,对一些敏感素材不放心
    2. 使用门槛高:开源模型功能强但需要命令行操作,普通用户不会用
    3. 流程割裂:分离、识别、翻译、合成各环节要用不同工具,手动拼接太麻烦
    4. 失败成本高:跑到一半出错就得重来,浪费时间
  • 为什么做这个方向

    1. 刚需明确:外语视频中文化是真实存在的需求,尤其是 AI 能力起来后质量已可用
    2. 技术可行:Demucs + faster-whisper + F5-TTS 等开源模型组合起来就能完成全流程
    3. 差异化:现有工具要么是云端 SaaS(隐私问题),要么是纯命令行(门槛高),做一个本地优先 + 图形化界面的桌面工具有明确的用户价值
    4. 用 TRAE 正好合适:项目涉及 Python 后端 + Vue 前端 + Electron 桌面壳 + 本地模型集成,正好能发挥 TRAE 全栈开发和多文件协同的能力

3. Demo 体验地址(三选一)

4. TRAE 实践过程

  • 4.1 项目架构设计

    一开始先跟 TRAE 梳理清楚项目的分层架构:Electron 壳 + Vue 3 渲染层 + FastAPI 服务层 + 本地模型层,四层通过 HTTP/WebSocket 通信。TRAE 帮我设计了适配器模式(Adapter Pattern)来统一本地命令和 HTTP API 两种接入方式,让每个阶段(分离/识别/翻译/合成)都可以自由切换后端。

    关键决策:

    • 用 SQLite 存项目数据,不引入 ORM,保持轻量
    • 流水线阶段化设计,每个阶段独立记录状态,支持断点续跑
    • Pydantic v2 做数据校验,mypy strict 模式保证类型安全

    4.2 桌面 UI 开发

    前端用 Vue 3 + Naive UI,从项目创建、模型配置、时间线编辑到运行日志,整个界面都是跟 TRAE 一步步迭代出来的。印象比较深的是运行日志页面的滚动交互,前后改了好几版才达到满意的效果——只有日志区域独立滚动,阶段列表和项目信息固定不动,TRAE 帮我从外层布局链一路排查到 grid 行高问题,最终解决。

    4.3 本地模型集成

    模型集成是最复杂的部分——每个模型有自己的 Python 环境依赖,互相冲突。TRAE 帮我设计了 LocalCommandAdapter(本地命令适配器),每个模型在自己的 venv 里跑,通过 Jinja2 模板渲染命令参数,读取输出 JSON。这样既解决了依赖冲突,又保持了统一的接口。

    还做了一键安装脚本和模型状态检测,用户打开软件就能看到哪些模型装好了、哪些缺依赖,不用自己折腾环境。

    4.4 迭代优化

    开发过程中边做边测,发现了很多体验问题,都是跟 TRAE 一起快速迭代修复的,比如:

    • 依赖检查太慢 → 改成异步并行检测,秒级出结果
    • 播放按钮报错 → 原来是安全路径校验策略太严,从白名单改成黑名单
    • 项目状态显示不对 → 新增 paused 生命周期状态,暂停的项目不再显示"生成中"
    • 长文本不换行 → 加了 overflow-wrap 和 word-break 处理长 ID 显示

    每次发现问题,跟 TRAE 说一下,它就能快速定位根因并给出修复方案,迭代效率非常高。


    关键任务 Session ID

    1. 项目架构设计 — Session ID: 3546342377665370:f0a21826f4bec5c2482a5a162eb01cb4_6a27b116d58ee51e9408a792.6a336368935d0f49df7c98ef.6a336368935d0f49df7c98ed:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/18 11:18:00)
    2. 前端 UI 开发与交互优化 — Session ID: 3546342377665370:7e5267f6851624e7486389073151ba61_6a27b116d58ee51e9408a792.6a3382a7935d0f49df7caf23.6a3382a6935d0f49df7caf21:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/18 13:31:19)
    3. 本地模型集成与依赖管理 — Session ID: 3546342377665370:d8d41305e7a4f1e112e99a6f5d8f4d76_6a27b116d58ee51e9408a792.6a369b39456e86137a1afc1c.6a369b39456e86137a1afc1a:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/20 21:52:57)
    4. Bug 修复与体验优化 — Session ID: 3546342377665370:63cdafcdcf5e7923f27e63421daf953d_6a27b116d58ee51e9408a792.6a37f74ff0af689376148e33.6a37f74ff0af689376148e31:TRAE Work CN.0.1.25.no_sid.no_ppe.T(2026/6/21 22:38:07)

5. 报名审核通过的帖子链接

我看完这个项目后,比较喜欢你们把“本地优先”和“断点续跑”放进视频配音全流程里,因为外语课程、技术教程或敏感素材的配音需求,最怕上传云端有隐私顾虑,也怕长任务跑到一半失败后全部重来,这两个设计很直接地解决了真实使用成本。
小建议:可以在帖子开头补一个更短的评委体验路径,比如“导入视频 → 选择本地模型或 API → 跑完整配音流水线 → 时间线微调 → 导出中文配音视频”,这样评委能更快看懂它从素材到成片的完整价值。
我们也在生活娱乐赛道做了《衍境》,偏互动影游创作系统,欢迎来互评:【生活娱乐赛道】衍境 Demo:EvoMap 驱动的互动影游智能体创作系统