浏览器本地跑中文 TTS:我们将 Kokoro 1.1 转为 FP16,替换了 Piper 中文配音

简介: Timeline Studio v1.0.0 实现中文TTS浏览器端本地运行:将Kokoro multi-lang v1.1转为FP16,通过sherpa-onnx WASM+Web Worker在前端高效推理,支持中英混读、4种音色,全程离线、隐私安全,已开源。

大模型一定要部署在云端,通过 API 才能使用吗?

在 Timeline Studio v1.0.0 中,我们尝试了另一条路线:将 Kokoro multi-lang v1.1 转换为 FP16 半精度模型,通过 sherpa-onnx WASM 直接在浏览器中运行,用它替换原有的中文 Piper/VITS ONNX 配音。

升级后的中文配音支持四个音色以及中英文混合文案。用户的视频、音频、配音文案和生成结果都留在浏览器本地,不需要上传到我们的编辑服务器。

项目已经开源:

如果你关注浏览器 AI、WebAssembly、ONNX 或视频编辑,欢迎在 GitHub 点个 Star。

从 Piper 中文配音说起

Timeline Studio 是一个本地优先的开源 AI 视频编辑器。

项目将多轨时间线、AI 配音、自动字幕、AI 音乐、画面分析和浏览器导出放在同一个编辑界面中。用户选择本地视频或图片后,可以直接在浏览器中完成剪辑和 AI 处理。

在早期版本中,我们使用 Piper/VITS ONNX 提供中文配音。

Piper 的优势很明确:

  • 模型相对紧凑;
  • ONNX 部署路径成熟;
  • 可以在浏览器端运行;
  • 不需要调用第三方 TTS API;
  • 适合快速建立完整的配音工作流。

不过,随着 Timeline Studio 从技术原型逐渐进入真实创作场景,原有中文声音的局限也越来越明显。

用户不仅需要“把文字读出来”,还需要更自然的语气、更多可选音色,以及对中英文混合文案更好的支持。

例如下面这类视频文案非常常见:

Timeline Studio 是一个 local-first AI 视频编辑器,
支持 WebGPU、WebAssembly 和浏览器本地模型推理。

如果把中文与英文分别交给不同模型生成,再将音频拼接起来,往往会出现音色不一致、停顿突兀和语速变化。

因此,我们决定替换中文 Piper 路径。

为什么选择 Kokoro multi-lang v1.1?

选择 Kokoro multi-lang v1.1,主要基于三个原因。

第一,它在中文语音自然度上具备更好的产品潜力。

第二,它能够将中文和句子中的英文作为同一个语言单元处理,更适合科技产品、软件教程和开发者内容。

第三,同一套模型可以提供多个 Speaker。用户切换音色时,不需要分别下载四套完整模型。

不过,原始模型能够运行,并不意味着它已经适合浏览器产品。

浏览器环境没有服务器端那么充足的内存和稳定的运行条件。模型交付需要同时解决下载体积、内存占用、主线程阻塞、缓存容量、版本固定和网络线路等问题。

将模型转换为 FP16

为了降低模型传输及运行压力,我们将 Kokoro multi-lang v1.1 转换为 FP16 半精度版本,并打包为 sherpa-onnx WASM 可加载的浏览器运行时。

完整链路如下:

用户文案
   ↓
文本规范化
   ↓
选择 Speaker ID
   ↓
加载 Kokoro v1.1 FP16
   ↓
sherpa-onnx WASM 推理
   ↓
返回 PCM 采样
   ↓
浏览器编码 WAV
   ↓
加入素材库和配音轨

FP16 相比 FP32 可以降低模型文件和运行时内存带宽压力,使体量更大的 TTS 模型更有机会进入浏览器。

我们没有对外宣称 FP16 可以解决所有性能问题。模型首次使用仍然需要下载,实际生成速度也会受到设备、浏览器、内存和网络环境影响。

但相比把中文配音固定在服务器 API 上,FP16 加 WASM 给了我们一条可缓存、可复用并且本地执行的路径。

使用 Web Worker 隔离模型推理

如果直接在主线程加载并运行语音模型,模型初始化和语音生成可能阻塞编辑器界面。

对于视频编辑器来说,这是无法接受的。用户在等待配音时,仍然需要查看时间线、调整文案和操作素材。

因此,Timeline Studio 将 Kokoro 运行时放入独立 Web Worker。

编辑器主线程负责:

  • 传入文案、音色和语速;
  • 展示模型下载及初始化进度;
  • 接收生成状态;
  • 将音频写入素材库;
  • 更新配音轨和字幕状态。

Worker 负责:

  • 获取模型清单;
  • 下载运行时与模型分片;
  • 校验文件完整性;
  • 组装模型数据;
  • 初始化 sherpa-onnx WASM;
  • 执行语音推理;
  • 返回生成的音频采样。

首次初始化完成后,Worker 会在当前页面继续存活。用户修改文案再次生成时,可以复用已经创建的 TTS 会话。

大模型文件并行下载与完整性验证

浏览器加载模型不能只调用一次 fetch(),然后默认返回内容一定正确。

我们的 Kokoro 浏览器运行包包含:

  • sherpa-onnx WASM;
  • JavaScript 运行时;
  • TTS 包装层;
  • FP16 模型数据;
  • Tokenizer 及其他语音资源;
  • 模型清单和来源说明。

较大的数据文件会被拆分为多个部分。Worker 根据模型清单并行下载各个文件,同时累计并上报整体进度。

下载完成后,运行时会:

  1. 验证每个文件的预期大小;
  2. 验证清单中记录的 SHA-256;
  3. 按顺序重新组装模型数据;
  4. 再次验证组装后文件的哈希;
  5. 验证通过后才创建 TTS 会话。

这能够降低文件被代理缓存截断、下载不完整或者模型版本不一致导致的异常。

ModelScope 与 Hugging Face 双镜像

模型下载是浏览器 AI 在国内落地时绕不开的问题。

仅提供一个海外模型地址,很容易让模型功能在部分网络环境中变得不可用。反过来,只提供单一国内来源,也无法覆盖所有用户。

因此,Timeline Studio 将语音模型同步到项目自有的 ModelScope 与 Hugging Face 镜像,并固定到不可变版本。

模型来源策略为:

  • 中文及国内环境优先访问 ModelScope;
  • 其他环境优先访问 Hugging Face;
  • 当前来源下载失败时自动尝试另一个镜像;
  • 两个来源映射到同一个模型缓存身份;
  • 切换来源后不重复缓存相同版本;
  • 不依赖可能随时变化的上游 main 分支。

这里有一个比较容易被忽略的问题:同一个模型在 ModelScope 和 Hugging Face 上的 Revision 并不相同。

如果直接用完整 URL 作为 Cache Storage 的 Key,浏览器会认为它们是两个不同的模型,可能重复保存几百 MB 的相同文件。

Timeline Studio 会对两个镜像地址进行规范化,将它们映射到同一个内部缓存身份。模型可以从任意可用来源下载,但浏览器只保留一份有效缓存。

四个中文音色共享一个模型

新版中文配音提供四个音色:

音色 Speaker 声音特点
晴岚 zf_001 自然、清晰的女声
若溪 zf_073 柔和、舒缓的女声
云舟 zm_009 稳定、自然的男声
景澈 zm_010 年轻、明亮的男声

四个音色共享同一个 FP16 模型,通过 Speaker ID 选择目标声音。

在编辑器内部,它们分别映射为:

晴岚 → zh_f_qinglan → Speaker 0
若溪 → zh_f_ruoxi  → Speaker 1
云舟 → zh_m_yunzhou → Speaker 2
景澈 → zh_m_jingche → Speaker 3

音色并不是越多越好。浏览器视频编辑器的音色目录更需要明确、稳定和可试听。

因此,我们只选择了四个差异比较清晰的声音,并为每个声音提供使用相同 Speaker 生成的真实中文试听样本。

中文和英文作为一个完整语句生成

新版文字处理链路允许中文、英文、数字和常用标点进入同一次推理。

例如:

使用 Timeline Studio,
可以在浏览器里完成 AI video editing 和自动字幕。

这段话不会被拆成多个语言片段,而是作为一个完整语句交给 Kokoro multi-lang v1.1。

这样可以保留:

  • 相同的说话人音色;
  • 连续的语气和语速;
  • 标点产生的自然停顿;
  • 中文与英文之间的上下文;
  • 一条完整且易于编辑的音频素材。

对于包含英文品牌、API、模型名称和技术术语的中文内容,这项能力非常实用。

浏览器存储空间也需要管理

模型可以缓存,并不代表可以无限缓存。

Timeline Studio 中除了语音模型,还有字幕、视觉分析、AI 音乐、语音克隆和其他浏览器 AI 模型。如果每次升级都保留一份旧模型,很快就会占满浏览器存储空间。

新版语音运行时会在模型初始化前进行容量预检查,并在版本升级时执行缓存迁移:

  • 识别旧的语音模型版本;
  • 复用没有变化的文件;
  • 删除已经变化的模型分片;
  • 移除历史遗留的 Kokoro FP32 文件;
  • 避免 Piper 文件在多个缓存中重复保存;
  • 空间紧张时优先清理不再使用的语音模型。

缓存升级是浏览器 AI 工程中不太显眼但非常重要的一环。如果只考虑第一次下载,不考虑第二次发布和第三次升级,产品最终很容易被旧模型缓存拖垮。

生成音频只是工作流的开始

Timeline Studio 不是一个独立的 TTS 演示页面。

通过 Kokoro 生成的中文配音会直接进入视频编辑工作流。用户可以继续:

  • 试听和重新生成;
  • 调整语速与输出增益;
  • 将音频加入“我的素材”;
  • 放入独立的配音轨;
  • 移动、裁切和重新排列;
  • 生成并编辑字幕;
  • 混合视频原声、配音和背景音乐;
  • 导出 MP4 或 WebM;
  • 保存可继续编辑的 .timeline 项目。

这也是我们替换中文 Piper 的真正原因。

模型效果的提升只有进入完整创作链路,才能转化为用户实际感知到的产品升级。

Piper 并没有被完全移除

本次更新替换的是中文 Piper 路径,而不是删除整个 Piper 体系。

当前语音路由大致如下:

语言或场景 浏览器模型
中文及中英混合 Kokoro multi-lang v1.1 FP16
英文 Kokoro 82M ONNX
德语 Piper/VITS ONNX
西班牙语 Piper/VITS ONNX
法语 Piper/VITS ONNX
意大利语 Piper/VITS ONNX
巴西葡萄牙语 Piper/VITS ONNX

不同语言使用不同的专用模型,比强行使用一套模型覆盖全部语言更容易获得稳定结果。

总结

这次中文配音升级主要完成了以下工作:

  • 使用 Kokoro multi-lang v1.1 替换中文 Piper;
  • 将模型转换为适合浏览器交付的 FP16 版本;
  • 使用 sherpa-onnx WASM 进行本地推理;
  • 通过 Web Worker 隔离模型初始化和生成任务;
  • 提供两条女声和两条男声;
  • 支持中文与英文混合生成;
  • 使用模型清单、文件大小和 SHA-256 验证下载内容;
  • 接入 ModelScope 与 Hugging Face 双镜像;
  • 为不同镜像建立统一缓存身份;
  • 加入存储容量预检查和旧版本缓存迁移;
  • 将生成结果接入完整的视频编辑时间线。

浏览器 AI 的价值不只是“无需安装”,而是让模型、用户素材和编辑状态处于同一个本地工作流中。

我们还会继续探索更多可以真正进入视频创作流程的浏览器 AI 能力。

项目采用 MIT License 开源。如果这项工作对你有参考价值,欢迎 Star、Fork、提交 Issue 或参与贡献:

相关文章
|
1月前
|
缓存 人工智能 监控
Qwen3.8-Max 深度使用实战:从 2.4 万亿参数到生产级智能体落地
Qwen3.8-Max 是阿里云通义千问 2026 年 8 月最新发布的旗舰基座模型,2.4 万亿参数 MoE 架构、1M 上下文窗口、原生多模态(文本+图像+视频),具备"自主编程十数天交付完整项目"的长程闭环能力。本文不是又一篇"怎么调 API"的入门教程,而是一线团队将 Qwen3.8-Max 从 PoC 推向生产的深度实践记录:百炼平台开通与 API Key 管理、OpenAI 兼容协议接入、多模态与 Function Calling 进阶、思考模式与上下文缓存调优、Token Plan 订阅选型、生产环境避坑实录。
|
1月前
|
数据采集 人工智能 算法
为什么你的品牌在AI里查无此人?GEO优化的五个关键动作
本文为技术实践分享,介绍AI搜索时代企业亟需的GEO(生成式引擎优化)——不同于SEO,GEO聚焦让AI“认识、信任并推荐”品牌。文章提炼罗小军提出的五大关键动作:诊断AI可见度、结构化知识资产、建设权威信源、布局场景词矩阵、建立持续监测机制,助力企业抢占AI决策入口。(239字)
|
1月前
|
数据采集 人工智能 数据挖掘
他山科研 Skills 上架 Qoder:18 个 Skills,覆盖从调研到答辩全流程
他山团队推出20项AI科研Skill,覆盖文献检索、实验设计、学术写作到论文审查全流程,已在Qoder CN技能市场上线。含论文检索、深度研究、假设生成、统计分析、科研绘图等高频工具,助力科研提效。
296 0
|
1月前
|
人工智能 自然语言处理 数据可视化
阿里千问办公上线!一句话产出 PPT、数据报表、完整网页,注册送2000积分
千问办公是阿里巴巴推出的AI原生办公平台,基于Qwen3.8大模型,支持一句话交付PPT、文档、视频、网页等成果;深度集成钉钉,打通本地文件与浏览器,覆盖桌面端、网页端及企业协同场景。千问办公官网:https://t.aliyun.com/U/805n7O
427 0
|
1月前
|
人工智能 缓存 移动开发
浏览器本地运行中文 AI 配音:Hojo TTS Light 80M 的 WebGPU、WASM 与模型切片实践
Timeline Studio 将 Hojo TTS Light 80M 集成至浏览器,实现纯前端中英混合配音:基于 WebGPU 自回归推理 + WASM 波形解码,支持 ONNX 模型分片下载、双镜像(ModelScope/HF)自动回退、智能分句与音频优先时间线同步,全程无需上传隐私数据。
|
1月前
|
存储 人工智能 数据处理
基于 YOLO11 的车辆品牌 Logo 检测:从数据标注到云上训练工程化实践
本文介绍基于YOLO11的车辆品牌Logo检测工程实践:涵盖31类、5697张图像的数据集构建,从Label Studio标注、云上OSS存储与版本管理,到YOLO11训练调优、小目标增强及多维度评估,实现端到端可复现、可迭代的AI落地流程。(239字)
基于 YOLO11 的车辆品牌 Logo 检测:从数据标注到云上训练工程化实践
|
1月前
|
安全 算法 测试技术
医院电子病历越权与下载攻防全解析:从水平越权、垂直提权到JWT防线与目录穿越
本文以医院电子病历系统为案例,完整复盘一次安全测试:从水平越权(篡改ID查他人病历)、垂直越权(伪造角色提权)、JWT鉴权原理,到目录穿越与文件名枚举攻击及层层防御演进,揭示越权本质是“客户端身份不可信”的悖论,强调服务端校验、签名防护与随机化命名等关键防御实践。(239字)
110 2
医院电子病历越权与下载攻防全解析:从水平越权、垂直提权到JWT防线与目录穿越
|
1月前
|
JSON 缓存 API
为什么 ACC Core 不能和 OpenAPI、MCP 或 gRPC 绑死?
ACC 提出“Core + Binding”分层治理模型:Core 定义跨协议统一的Agent能力治理语义(如风险、审批、主体等),Binding 负责将语义无损映射到 OpenAPI/gRPC/MCP 等具体协议。避免因传输方式不同导致治理含义漂移,确保同一业务能力(如创建退款)在各系统中治理一致。(239字)
|
1月前
|
JavaScript 前端开发 Java
医院随访系统源码,基于Java+Vue+SpringBoot技术架构的智能化管理平台
医院随访系统面向门诊、住院患者,对接HIS/EMR自动获取信息。采用Java+SpringBoot+Vue技术栈,含随访管理、智慧云库、满意度调查及系统配置等模块。
62 2
|
1月前
|
缓存 JSON 文字识别
PaDoc:让端到端文档解析不再串行——吞吐翻倍、延迟减半,质量还没掉
PaDoc创新性提出“布局串行+内容并行”解码范式,通过祖先注意机制与vLLM前缀缓存,在保留整页上下文前提下实现区域级并发生成。同骨干模型下吞吐翻倍、P95延迟减半,质量不降反升(OmniDocBench 94.24),为端到端文档解析提供高效落地新路径。(239字)

热门文章

最新文章