simonw/speech-analyzer-cli — explained in plain English
Analysis updated 2026-05-18
Transcribe interviews or recordings into plain text or word level JSON entirely on-device.
Generate SubRip or WebVTT subtitle files from an audio recording for video captioning.
Build a pipeline that processes many audio files locally without sending them to a cloud transcription service.
| simonw/speech-analyzer-cli | andyhuo520/inkdiary | ddasy/sleepbar | |
|---|---|---|---|
| Stars | 20 | 20 | 20 |
| Language | Swift | Swift | Swift |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 2/5 | 3/5 | 1/5 |
| Audience | developer | vibe coder | general |
Figures from each repo's GitHub metadata at analysis time.
Requires macOS 26+ on Apple silicon and Xcode 26 or its command line tools to build.
speech-analyzer-cli is a small macOS command line tool that transcribes prerecorded audio files using Apple's own on-device SpeechAnalyzer and SpeechTranscriber technology. It takes an audio file and turns the spoken words into text, and can output that text in several formats: plain text, JSON with word level timing and confidence scores, JSONL with one word per line, or subtitle formats like SubRip and WebVTT for video captioning. Because it relies on Apple's newest on-device speech framework, it only runs on macOS 26 or later, on Apple silicon Macs that the framework supports, and needs Xcode 26 or the matching command line tools installed to build. The first time someone transcribes audio in a given language, the tool may need to download a language model from Apple over the network, but the actual transcription itself happens entirely on the device rather than being sent to a server. Installation is done through a shell script that builds a small application bundle and places a command called speech-analyzer on the user's path. That bundle exists mainly to supply the permission information macOS requires before it will let an app use Speech Recognition, so the first run prompts the user to grant that permission through System Settings. The JSON output includes the source file path, the detected or chosen language locale, the full transcribed text, and a list of individual words with their start and end times. The README notes that these word level timings are useful for syncing captions to playback but should not be treated as exact silence boundaries. The tool also supports listing all available language locales and choosing one directly when transcribing.
A macOS command line tool that transcribes audio files entirely on-device using Apple's SpeechAnalyzer, with text, JSON, and subtitle output formats.
Mainly Swift. The stack also includes Swift, macOS, SpeechAnalyzer.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.