阿飞字幕 (afei) — 基于 Apple Silicon 的离线语音转字幕工具

萝卜2026-07-20

缘起:为什么要做这个工具

在视频制作、播客整理、会议记录等场景中,语音转文字几乎是每个人的刚需。市面上的方案各有各的局限:

  • 在线 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      # 生成逐字时间戳

进度条实时显示转写进度,完成后自动将结果文件放到源文件旁。


速度到底有多快?

CLI 转写效果

在 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.cohf-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 做语音识别。


快速上手

  1. thinking.vip/afei 页面下载
  2. 打开软件,拖入音视频文件
  3. 选择输出模式(文本/字幕/逐字时间戳)
  4. 几秒钟后,在源文件同目录下获取结果文件

或使用 CLI:

afei transcribe 视频.mp4 --mode srt

写在最后

阿飞字幕是一个专注于「在 Apple Silicon 上获得极致离线语音识别体验」的作品。它不联网、不收费、不需要复杂的配置——打开即用,瞬间完成。如果你和我一样,经常和音视频、字幕、逐字稿打交道,希望这个工具能让你的工作流程更高效。

阿飞字幕 v0.2.0 · 使用 ❤️ 和 Swift 构建

2026-07-20 15:53:2516 次阅读