senstella/parakeet-mlx
An implementation of the Nvidia's Parakeet models for Apple Silicon using MLX.
Parakeet MLX – Apple Silicon 上的语音转文字
简介 – 这是一个 Python 包,利用 MLX 推理框架在 Apple Silicon Mac 上运行 Nvidia 的 Parakeet 自动语音识别 (ASR) 模型。它提供命令行工具和 Python API,可将音频文件(或实时音频流)转换为带有时间戳的转录文本。
主要功能 (摘自 README)
| 功能 | 详细信息 |
|---|---|
| 模型支持 | 从 Hugging-Face 加载 Parakeet 变体 (TDT, RNNT, CTC, TDTCTC) (例如 mlx-community/parakeet-tdt-0.6b-v3)。 |
| Apple-silicon 加速 | 使用针对 M 系列 GPU/CPU 优化的 MLX 库。 |
| CLI | parakeet-mlx <audio_files> [OPTIONS] – 批量转录、可选输出格式 (txt, srt, vtt, json 或全部)、单词级时间戳、长文件分块、束搜索解码、精度控制 (bf16 / fp32) 以及用于内存效率的长音频局部注意力模式。 |
| Python API | from_pretrained 加载模型;model.transcribe(path, …) 返回包含完整文本与句子/标记时间戳的 AlignedResult。 |
| 解码选项 | 贪婪 (默认) 或束搜索 (束大小、长度惩罚、耐心值、持续时间奖励)。 |
| 分块与流式传输 | 将长音频分割为重叠块;transcribe_stream 支持具备可配置注意力上下文与深度的实时转录。 |
| 局部注意力 | 切换至滑动窗口注意力 (rel_pos_local_attn) 以减少超长输入的内存占用。 |
| 输出模板 | 使用 {filename}, {parent}, {index}, {date} 的自定义文件名模式。 |
| 安装 | 通过 uv (推荐) 或 pip;需要系统安装 ffmpeg。 |
如何使用
CLI 快速入门
# 基本转录
parakeet-mlx audio.mp3
# 带有单词级时间戳的 VTT 字幕
parakeet-mlx *.mp3 --output-format vtt --highlight-words
# 生成所有支持的格式
parakeet-mlx audio.mp3 --output-format all
Python 示例
from parakeet_mlx import from_pretrained, DecodingConfig, Beam
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
# 简单贪婪解码
res = model.transcribe("audio.wav")
print(res.text)
# 带有自定义参数的束搜索
cfg = DecodingConfig(decoding=Beam(beam_size=5, length_penalty=0.013,
patience=3.5, duration_reward=0.67))
res = model.transcribe("audio.wav", decoding_config=cfg)
print(res.sentences)
谁会觉得它有用?
- 开发语音功能 macOS 应用的开发者,需要无需将数据发送到云端的设备端转录功能。
- 在 Apple 硬件上进行 ASR 流水线原型设计的研究人员,利用 Nvidia 训练的 Parakeet 模型。
- 内容创作者,希望为播客或视频快速生成本地字幕 (SRT/VTT)。
限制与待办事项 (列出如下)
- 尚未内置单词准确度增强功能。
- 仅部分支持具有连续上下文的分块;流式传输功能旨在填补此空白。
许可
Apache 2.0 – 可免费进行商业与研究用途。
以上所有信息均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- 项目
- 项目