2作者: muthukrishnanwz6 个月前
大家好,HN, 我构建了一个完全在浏览器中运行的语音助手。 没有后端,没有 API 调用。一切都在您的设备上运行。 目标是看看基于浏览器的 AI 发展到了什么程度,以及完整的语音流程是否可以在客户端以可接受的延迟运行。 工作原理: * 语音转文本:通过 WebAssembly 使用 Whisper tiny en * LLM:通过 llama.cpp WASM 端口运行 Qwen 2.5 0.5B * 文本转语音:原生浏览器 SpeechSynthesis API 回复实时流式传输。TTS 在句子生成后立即开始说话,而不是等待完整的回复。 首次加载后,它完全离线工作。任何数据都不会离开设备。 这为什么重要: * 展示了现代浏览器、小型 LLM 和 WASM 现在可以实现的功能 注意事项: * 需要 Chrome 或 Edge 90+,因为 WASM 线程需要 SharedArrayBuffer * 初始下载大约 380MB,之后会被缓存 * 目前仅支持英语 * 0.5B 模型功能有限,但足够小,可以在本地运行 已在 macOS 和 Linux 桌面浏览器上测试。由于内存和线程限制,我无法在移动设备上可靠地运行它。 由于许多底层的 WASM 和浏览器问题,让所有这些在浏览器中运行花费的时间比预期的要长得多。 演示 [https://ava.muthu.co](https://ava.muthu.co) 源代码 [https://github.com/muthuspark/ava](https://github.com/muthuspark/ava) 我非常欢迎反馈,特别是来自任何正在尝试本地 AI 或基于浏览器的 ML 的人,以及关于改进性能或移动设备支持的建议。