浏览器里的 LLM 推理:jax-js 驱动 Whisper 语音识别与语音克隆全解析
2026/8/24 9:02:52 网站建设 项目流程

浏览器里的 LLM 推理:jax-js 驱动 Whisper 语音识别与语音克隆全解析

【免费下载链接】jax-jsJAX in JavaScript – ML library for the web, running on WebGPU & Wasm项目地址: https://gitcode.com/gh_mirrors/ja/jax-js

想在浏览器里直接跑大模型?jax-js 是一个纯 JavaScript 编写的浏览器机器学习框架,兼容 JAX/NumPy API,能把数组运算编译为 WebAssembly 与 WebGPU 内核,让你在 Web 端完成LLM 推理、Whisper 语音识别与语音克隆——全程本地运行,音频不出浏览器,隐私有保障。

为什么是浏览器端推理?

传统方案要把音频上传到服务器,而 jax-js 把整个推理链路搬进了前端:

  • 🚀三种后端:WebGPU(GPU 加速)、WebGL、Wasm(CPU),自动探测设备能力,代码见 src/backend/webgpu.ts 与 src/backend/wasm.ts
  • 📦体积小:gzip 后仅约 80 KB,零外部依赖
  • 🔒隐私安全:录音、权重、推理全部在客户端完成

浏览器兼容性一览:

平台CPU(Wasm)GPU(WebGPU)
Chrome / Edge
Firefox✅(macOS 26+)
Safari / iOS✅(iOS 26+)
Android Chrome

Whisper 语音识别:音频到文字的完整链路

演示代码位于website/src/routes/whisper/目录,共四步:

  1. 音频解码与重采样:用 Web Audio API 解码录音,统一为 16 kHz 单声道(features.ts)
  2. 特征提取:手写 STFT + Mel 滤波器,把波形转换为 80 维 log-mel 谱(30 秒窗口,3000 帧)
  3. 编码器 + 解码器:完整实现了 Whisper 的 Transformer 结构,支持tiny.enmedium全部 8 种规格,权重以 fp16 safetensors 加载(model.ts 中定义了各档 dModel 与层数)
  4. 带时间戳的解码:贪心采样 + 时间戳门控,输出带起止时间的分段文本(decoding.ts)

几个工程亮点值得学习:

  • KV Cache 加速:解码器逐 token 自回归,Key/Value 张量只增量更新,避免重复计算
  • jit 内核融合:编码器、交叉注意力 KV、单步解码各编译一次并缓存(model.ts)
  • 性能可视化:页面实时展示模型加载、prefill、逐 token 解码的耗时

语音克隆:Kyutai Pocket TTS 的浏览器实现

TTS 演示(website/src/routes/tts/)运行 Kyutai 开源的Pocket TTS模型,架构由两部分组成:

  • FlowLM:自回归 Transformer,预测音频潜变量(latent),配合流匹配解码(LSD)生成高质量波形(pocket-tts.ts)
  • Mimi 神经声码器:把潜变量还原为音频帧,每步输出 1920 个采样点

边生成边播放是关键体验优化:inference.ts 中的推理循环每生成一帧音频就立即推入播放器,页面还会实时统计帧率和实时率(RTF)。

🎙️ 如何克隆一个声音

页面内置 8 个预置声线(alba、cosette、jean 等),每个声线只是一份audio_prompt潜变量文件(+page.svelte)。克隆新声音的原理相同:把参考音频编码为语音潜变量,与文本嵌入拼接后作为条件输入——这就是"零样本语音克隆"的核心,整个流程见 inference.ts。

文本分词由浏览器内的 SentencePiece tokenizer 完成,权重解析则复用 packages/loaders/src/safetensors.ts 中的 safetensors 读取器,支持 OPFS 本地缓存,二次访问近乎秒开。

快速上手:3 步在浏览器中部署

  1. 引入框架:npm i @jax-js/jax,或直接在 HTML 中用 ES Module 引入 CDN 版本
  2. 复制website/src/routes/whisper/website/src/routes/tts/目录,作为你的语音应用起点
  3. 按你的需求替换模型权重 URL,页面会自动在 WebGPU / Wasm 后端间切换

总结

jax-js 证明了"浏览器即推理终端"的可行性:Whisper 语音识别做到了带时间戳的准实时转录,语音克隆做到了流式生成、边说边听,而这一切都发生在用户设备本地。对隐私敏感场景(会议记录、语音助手、无障碍产品)来说,这是一条值得关注的技术路线。核心功能与浏览器支持矩阵详见 FEATURES.md。

【免费下载链接】jax-jsJAX in JavaScript – ML library for the web, running on WebGPU & Wasm项目地址: https://gitcode.com/gh_mirrors/ja/jax-js

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询