返回首页
最新
嗨,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或基于浏览器的机器学习方面进行实验的人,以及关于提高性能或移动支持的想法。