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。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目