A minimal macOS application that transcribes audio files to text using configurable ASR engines, with optional LLM-powered refinement and summarization. Also includes a CLI for pipe-based transcription.
- Drag & drop or select audio files
- Supported formats:
wav,mp3,m4a,flac,aac,alac,aiff,caf,mp4,mov,m4v(incl. audio-only video containers) - File size limits: WAV ≤ 200 MB, other formats ≤ 60 MB
- Multi-language support: Chinese (Simplified / Traditional), English, Japanese, Korean
- Real-time progress indication with cancel support
- Result export: Copy to clipboard or auto-save to
~/Library/Application Support/VoiceGum/Result/
| Type | Engine | Model | Notes |
|---|---|---|---|
| Online | OpenAI | Whisper API (whisper-1 / whisper-large) |
OpenAI-compatible endpoints, API key in Keychain |
| Online | Volcano Engine | Streaming ASR | ByteDance cloud API, requires App ID / Access Token / Resource ID |
| Local | SenseVoice | GGUF (Q8_0 / FP16 / FP32) | In-process via ggml + Metal, 5 languages, auto-unloads after idle |
| Local | FunASR-Nano | GGUF (Encoder + Decoder) | End-to-end LLM-based ASR, 31 languages, Qwen3-0.6B decoder |
Local models are downloaded on demand from HuggingFace (primary) and ModelScope (mirror), with resume support for interrupted downloads.
- Text Refinement: Auto-polish transcribed text (punctuation, formatting, error correction)
- Summarization: Generate concise summaries of transcriptions
- Custom Prompts: User-configurable system prompts for both tasks
- Providers: OpenAI-compatible, Anthropic, Ollama (local)
- Trigger: Automatic after transcription
- Persistent transcription history with raw text, refined text, and summaries
- Per-entry metadata: source file, engine used, language, duration
# Transcribe a file
voicegum-cli audio.mp3
# Pipe audio from stdin
cat audio.mp3 | voicegum-cli
# Specify language and output file
voicegum-cli audio.mp3 -l zh -o out.txt
# Use FunASR-Nano for 31-language support
voicegum-cli audio.mp3 --engine nanoSee voicegum-cli --help for full usage. Install with make install-cli.
- macOS 14+
- Xcode 16+ / Swift 6 toolchain
- Apple Silicon (M1+) recommended for local models
- Apple Developer Program ($99/year) required for distribution signing and notarization. Local development works without it (
make run-appuses ad-hoc signing)
make build # Build release binaries (GUI + CLI)
make run # Run GUI from build output
make run-app # Build, bundle, sign, and launch as .app
make run-cli # Run CLI from build output
make install # Install GUI app to /Applications
make install-cli # Install CLI to /usr/local/bin
make clean # Clean build artifactsswift build -c releaseBinaries are at .build/release/VoiceGum and .build/release/VoiceGumCLI.
- Launch the app to open the main window.
- Drop an audio file or click to select.
- Go to Settings → ASR to choose your engine (online or local).
- (Optional) Go to Settings → LLM to configure refinement / summarization.
Local models are stored in ~/Library/Application Support/VoiceGum/Models/<id>/:
| Model | Size | Precision |
|---|---|---|
| SenseVoice Q8_0 | ~230 MB | Quantized |
| SenseVoice FP16 | ~350 MB | Half-precision |
| SenseVoice FP32 | ~700 MB | Full-precision |
| FunASR-Nano | ~1.1 GB | Encoder FP16 + Decoder Q8_0 |
Models are downloaded from HuggingFace on first use. They auto-unload 5s after transcription finishes to free memory.
| Provider | Base URL | Requires API Key |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
✅ |
| Anthropic | https://api.anthropic.com |
✅ |
| Ollama | http://localhost:11434 |
❌ |
API keys are stored in UserDefaults (per-provider, configurable in Settings).
- Microphone: Reserved for future recording features. Not used by current build.
Copyright © 2026 VoiceGum. All rights reserved.