【免费下载链接】whistle
Whistle 是一款只有 16.9 MB 的端侧语音识别(speech-to-text)模型,无需 GPU、无需任何依赖,通过命令行即可完成音频转写、逐词时间戳对齐,还能用一条needle whistle compare命令把 Whistle 和 Whisper 放在同一段音频上直接对比。本文带你从零上手,把这条命令行工作流完整跑通。
为什么值得试试 Whistle 🎙️
Whistle 面向手机、可穿戴设备、机器人、汽车和微控制器等场景,特点是"小"和"本地":
- 体积极小:整个模型就是单个 whistle.cact 文件,仅 16.9 MB
- 零依赖运行:自带 C++ / WebAssembly 运行时,不依赖 GPU 和框架
- 多语言支持:英语、德语、法语、西班牙语、意大利语、荷兰语、波兰语共 7 种语言,默认自动检测语言
- 行为可靠:输入静音时返回空文本,而不是"编造"一句话
模型细节(16 kHz 采样率、单次 30 秒窗口、80 ms 帧长、cactus-quants 128 组量化等)都写在 config.json 里,可以按需查阅。
第一步:安装并跑通你的第一条转写命令 🚀
Whistle 的 Python 侧由cactus-needle包驱动:
pip install cactus-needle16 kHz 的 WAV 或原始采样直接就能用;如果需要其它采样率或麦克风采集,再额外安装[mic]扩展即可。安装完成后,一行 Python 就能拿到转写结果:
import needle print(needle.transcribe("clip.wav")["text"]) # turn off the kitchen lights每次调用都会返回文本、检测到的语言、首 token 延迟(毫秒)以及解码 token 速度。引擎和权重只会在首次运行时下载一次,之后走本地缓存。
第二步:一条命令拿到逐词时间戳 ⏱️
Whistle 对每个词都给出开始时间、结束时间和置信度,且时间戳直接来自解码器自身注意力对齐,可用于字幕高亮、按词跳转、精准剪辑等场景。
先下载对应平台的引擎二进制和模型文件:
needle download macos-arm64 needle download whistle然后一条命令完成转写 + 时间戳输出:
./macos-arm64/needle --model whistle.cact --audio clip.wav --audio-word-timestamps几个常用参数值得记住:
| 参数 | 作用 |
|---|---|
--audio-word-timestamps | 输出每个词的开始 / 结束 / 概率 |
--audio-stream | 对长音频或麦克风做流式转写,两次一致即提交 |
--audio-depth | 选择解码器层数(2 层起步),按设备算力挑型号 |
在 Python 侧等价写法是word_timestamps=True。如果你要处理的人名、地名、产品词经常识别错,用keywords=[...]传入词表,搜索阶段会优先匹配这些词——这就是官方的 keyword biasing 能力。
第三步:needle whistle compare 一键对比 Whisper 🆚
这是最省事的"考试"方式:
needle whistle compare该命令会把Whistle、Whisper 和 Moonshine放在同一段音频上并排输出结果,直观看到差异。
官方在完整测试集上的 WER 基准(用 Whisper 的 normalizer 计分)显示:Whistle 在 86,174 条语句上完成评测,WER 与速度表现对得上同量级的 Whisper 与 Moonshine;在 Apple M4 Pro 上 10 秒音频的首 token 时延和 token 解码速度也在同一档。详细数字与统计口径说明见 README.md。
实用小贴士 📌
- 指定语言:自动检测不准时,用
language="de"强制指定,比让模型猜更稳 - 长音频:30 秒以内单次直出,超过 30 秒会自动分窗处理;实时流可以用
--audio-stream一直挂着 - 嵌入向量:
needle.Whistle()支持embed(audio),输出编码器嵌入(每 80 ms 一帧),可直接用于语音检索,完全不用解码文本 - 与 Needle 混跑:同一个引擎既能转语音又能跑文本对话,
needle --model needle3.cact --model whistle.cact --audio clip.wav一次调用同时输出工具调用和语音字段
仓库文件速查 🗂️
| 文件 | 说明 |
|---|---|
| whistle.cact | 自包含模型容器,引擎直接加载 |
| config.json | 模型配置:语言、采样率、量化参数 |
| checkpoints/whistle.safetensors | 权重文件 |
| README.md | 完整文档:基准、部署与 API |
| LICENSE | Apache-2.0 许可 |
一句话总结:pip install cactus-needle装好环境,needle whistle compare看差距,--audio-word-timestamps拿时间戳——Whistle 的端侧语音识别命令行工作流,三条命令就跑通了。
【免费下载链接】whistle
相关推荐
终极Vim命令行历史时间戳:5个简单步骤显示命令执行时间
终极Vim命令行历史时间戳:5个简单步骤显示命令执行时间 想要追踪Vim中每个命令的执行时间吗?Vim命令行历史时间戳功能让你轻松掌握命令执行的时间信息,提高工
文档教程开发工具gsd:phase 命令实战:用一条命令完成 ROADMAP.md 的阶段增、插、删、改
gsd:phase 命令实战:用一条命令完成 ROADMAP.md 的阶段增、插、删、改 本文围绕 gsd core 提供的统一阶段管理命令 /gsd:phas
CANN/catlass GEMV示例
Basic Matmul TLA GEMV Example Readme Note: The community package does not suppor
算子库人工智能高性能计算
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考