阿飞字幕 (afei) — 基于 Apple Silicon 的离线语音转字幕工具
缘起:为什么要做这个工具
在视频制作、播客整理、会议记录等场景中,语音转文字几乎是每个人的刚需。市面上的方案各有各的局限:
- 在线 API(如 Whisper、讯飞):按分钟计费,音频文件要上传云端,有隐私风险
- Whisper.cpp / 本地跑模型:虽能离线使用,但在 Apple Silicon 上未能充分利用神经网络引擎(ANE),速度不够理想
- macOS 内置听写:功能有限,不支持批量处理,也不支持字幕格式导出
于是 阿飞字幕 诞生了——一款完全离线、基于 Apple Silicon 神经网络引擎的语音转字幕工具,充分利用 M 系列芯片(M1/M2/M3/M4)的 CoreML 加速能力,在 M4 芯片上转写速度可达实时的 270 倍。
它能做什么
你只需要提供一个音视频文件(MP3、WAV、M4A、MP4、MOV 等常见格式均可),阿飞就能在本地完成识别,支持三种输出模式:
| 模式 | 说明 | 输出文件 | 适用场景 |
|---|---|---|---|
| 文本 | 完整的拼接文本 | .txt |
会议纪要、内容检索 |
| 字幕 | 带时间轴的字幕 | .srt |
视频加字幕、双语压制 |
| 逐字时间戳 | 每个字的精确时间 | .words.json |
数据分析、FunASR 兼容 |
三种模式在后端使用了不同的 ASR 模型:文本模式使用 SenseVoice,字幕和逐字时间戳模式使用 Paraformer(具备时间戳预测能力)。
两大使用方式
🖥️ Mac App(图形界面)

拖拽文件到窗口中即可开始转写,界面如下:
- 模型状态条:顶部彩色圆点直观显示模型加载状态(灰色=未加载,蓝色=加载中,绿色=就绪,红色=错误)
- 拖拽区域:支持拖放文件,也可点击选择文件。虚框悬停高亮,反馈清晰
- 模式切换:胶囊式按钮在「文本/字幕/逐字时间戳」间自由切换
- 进度与结果:转写中实时显示百分比进度条;完成后在绿色卡片上展示文件名、时长、耗时、倍速
- 最近文件:历史记录列表清晰呈现每一次转写的详细信息
- 版本检查:自动检测新版本,提示用户更新
⌨️ 命令行(CLI)
适合自动化脚本和批量处理:
afei transcribe 演讲.mp3 --mode srt # 生成字幕
afei transcribe 会议.m4a --mode text -y # 生成文本,覆盖已有文件
afei transcribe 访谈.wav --mode words # 生成逐字时间戳
进度条实时显示转写进度,完成后自动将结果文件放到源文件旁。
速度到底有多快?

在 Apple M4 芯片上,转写速度可达实时的 270 倍。拖入文件到拿到结果,几乎不需要等待。
注意:第一次下载模型会需要三五分钟,后续加载只需 0.1s 左右。
核心技术架构
┌─────────────────────────────────────┐
│ Mac App (SwiftUI) │ ← 拖拽、进度、结果展示
├─────────────────────────────────────┤
│ CLI (终端) │ ← 命令行、自动化
├─────────────────────────────────────┤
│ afeiCore (核心逻辑) │ ← 编排/模型/输出
├─────────────────────────────────────┤
│ FluidAudio (引擎库) │ ← VAD / ASR / 音频处理
├─────────────────────────────────────┤
│ CoreML / 神经网络引擎 │ ← M 芯片 ANE 加速
└─────────────────────────────────────┘
设计亮点:
1. 按模式懒加载,启动即用
用户选择「文本」模式时,只加载 VAD + SenseVoice(约 790MB);切换为「字幕」模式时,再下载加载 VAD + Paraformer(约 630MB)。不会在启动时加载所有模型,显著缩短首次进入时间。
2. 智能镜像测速
启动时自动检测 huggingface.co 和 hf-mirror.com(国内镜像)的首字节延迟,自动选择更快的源下载模型,在国内外网络环境都能获得最佳下载体验。
3. 全内存处理,不落盘
音频重采样为 16kHz 单声道 Float 格式全程在内存中完成,无需写入临时文件,既省磁盘 I/O 又保护隐私。
4. 智能字幕聚合
Paraformer 输出逐字时间戳后,聚合为字幕 cue 时遵循最长 7s 或 40 字断句、优先断在标点后的规则。英文单词间自动补充空格(Paraformer 本身不吐出空格 token)。
5. 进度按语音时间计算
进度 = 已处理语音段时间 ÷ 语音段总时间,静音段不计入进度,进度条真实反映有效工作量。
6. MVVM 分层架构
SwiftUI 视图(ContentView)不包含业务逻辑,由 AppModel(ViewModel)持有状态并调度 Orchestrator(业务层)进行转写。代码清晰、可测试、可复用——CLI 和 GUI 共用同一套 afeiCore 代码。
隐私至上
- 完全离线:所有模型下载后,之后的每次使用都不需要网络
- 不上传音频:音频文件只在本地处理,绝不离开你的电脑
适用场景
- 🎬 视频创作者:快速为视频生成字幕,支持 SRT 格式直接拖入剪辑软件
- 🎙️ 播客制作:将访谈逐字稿转成文本或字幕
- 📝 会议记录:录音文件转文字,方便存档和检索
- 📚 学习研究:网课/讲座录音转笔记
- 🔧 开发者:CLI 模式可集成到自动化工作流中批量处理
开源与技术栈
项目基于 Swift 6.0,兼容 macOS 14+,借助 CoreML 调用 M 系列芯片的神经网络引擎获得极致性能。底层依赖 FluidAudio 引擎库,使用 Silero VAD 做语音活动检测,SenseVoice / Paraformer 做语音识别。
快速上手
- 到 thinking.vip/afei 页面下载
- 打开软件,拖入音视频文件
- 选择输出模式(文本/字幕/逐字时间戳)
- 几秒钟后,在源文件同目录下获取结果文件
或使用 CLI:
afei transcribe 视频.mp4 --mode srt
写在最后
阿飞字幕是一个专注于「在 Apple Silicon 上获得极致离线语音识别体验」的作品。它不联网、不收费、不需要复杂的配置——打开即用,瞬间完成。如果你和我一样,经常和音视频、字幕、逐字稿打交道,希望这个工具能让你的工作流程更高效。
阿飞字幕 v0.2.0 · 使用 ❤️ 和 Swift 构建
