Hacker News · AI· tlack·· 15 小时前AI 评分72
Thomas Lackner 发布 BabyTalk:在 ESP32 上离线运行的语音识别与合成库
Show HN: Babytalk: Offline speech to text and text to speech on ESP32
AI 摘要
开发者 Thomas Lackner 发布了 BabyTalk,这是一个支持 ESP32-S3 和 ESP32-P4 芯片的开源软件库,能够在无云、无网络环境下实现英语语音到文本(STT)及文本到语音(TTS)的完整闭环。
该项目的核心突破在于其自研的 MMRT(micromodels runtime)推理引擎。针对 ESP32 内存极度受限的特性,MMRT 实现了模型从 Flash 直接读取(Read-in-Place),无需将庞大的权重文件复制到 RAM;同时采用层权重缓存机制,仅在每层计算时加载一次权重而非每一帧音频都重新读取,并配合手写的 SIMD 汇编指令进行算子融合。这一架构使得原本需要 39MB 的 NVIDIA Citrinet-256 模型被压缩至 6MB(4-bit 量化),在 ESP32-S3 上的推理速度达到约 0.35 秒处理 1 秒音频,比官方 ESP-DL 快 13 倍。
BabyTalk 目前仅支持英语,依赖 16kHz PCM 输入,且 STT 与 TTS 共享 84.5KB 的内部 RAM 块,导致两者无法并发运行。虽然项目展示了在嘈杂环境下的微调能力,但受限于量化精度和硬件算力,其在非安静场景下的准确率仍显著低于云端方案。对于需要在 LoRa 等低带宽链路传输文本或构建完全离线的语音交互设备而言,BabyTalk 提供了一个经过实测验证的低成本替代方案。
来源:Hacker News · AI · github.com