2作者: muthukrishnanwz大约 2 个月前原帖
嗨,HN, 我开发了一个完全在浏览器中运行的语音助手。 没有后端,也没有API调用。一切都在您的设备上运行。 这个项目的目标是看看基于浏览器的人工智能已经发展到什么程度,以及是否可以在客户端实现完整的语音处理管道,并且延迟在可接受范围内。 它的工作原理: - 语音转文本:通过WebAssembly运行的Whisper tiny en - 大语言模型(LLM):通过llama.cpp的WASM移植运行的Qwen 2.5 0.5B - 文本转语音:原生浏览器的SpeechSynthesis API 响应实时流式传输。文本转语音在生成句子后立即开始说话,而不是等待完整的回复。 在首次加载后,它可以完全离线工作。没有任何数据离开设备。 为什么这很重要: - 展示了现代浏览器、小型LLM和WASM现在所能实现的可能性。 注意事项: - 由于WASM线程需要SharedArrayBuffer,要求使用Chrome或Edge 90及以上版本 - 初始下载约为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或基于浏览器的机器学习方面进行实验的人,以及关于提高性能或移动支持的想法。