whisper-cz-en
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 13 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in prepsat.sh
- rm -rf — Recursive force deletion command in transcribe.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Offline Czech and English transcription of audio and video on macOS with whisper.cpp. Text and SRT subtitles, built for Claude Code and the terminal.
whisper-cz-en
🇬🇧 English · 🇨🇿 Čeština · 🇪🇸 Español · 🇧🇷 Português · 🇩🇪 Deutsch · 🇫🇷 Français · 🇨🇳 简体中文 · 🇯🇵 日本語 · 🇸🇪 Svenska · 🇳🇴 Norsk · 🇩🇰 Dansk
Local transcription of audio and video in Czech and English with whisper.cpp on macOS. For anyone who needs to transcribe a podcast, interview, lecture or video and doesn't want to upload recordings to the cloud or pay by the minute. It runs offline, with GPU acceleration on Apple Silicon.
Built for Claude Code and other AI coding agents, and works just as well on its own from the terminal.
Author: Jindřich Fáborský
[!TIP]
The app is free and it's yours. Clone it, use it, rebuild it your way.Want to build tools like this for your own marketing? That's what I teach: faborsky.com.
What it does
- Czech and English, each language has its own script
- Any input format: MP4, MOV, MP3, M4A, WAV, FLAC, OGG, AVI, MKV (ffmpeg converts it automatically)
- Hallucination protection: five-minute chunks, Silero VAD and tuned decoder parameters keep Whisper from looping on repeated text
- Two outputs at once: plain text (
.md/.txt) and subtitles (.srt) with correct global timestamps - Offline: recordings never leave your computer, no API calls
- Tuned for Apple Silicon, whisper.cpp runs on the GPU through Metal
- Agent-ready: the scripts are designed to be run by Claude Code skills
Requirements
- macOS on Apple Silicon (M1/M2/M3/M4), for Metal GPU acceleration
- Homebrew
cmakeandffmpeg(install them with Homebrew)
Platform support
| Platform | Status |
|---|---|
| macOS Apple Silicon | Full support, Metal GPU |
| macOS Intel | Works, but without GPU acceleration (much slower) |
| Linux | Possible: build whisper.cpp without -DGGML_METAL=ON, use CUDA or CPU |
| Windows | Possible via WSL2, untested and not officially supported |
It may work on other platforms once you adjust the build flags, but it isn't actively maintained there.
Installation
1. Install dependencies
brew install cmake ffmpeg
2. Clone the repository
git clone --recursive https://github.com/faborsky/whisper-cz-en.git
cd whisper-cz-en
If you cloned without
--recursive:git submodule init && git submodule update
3. Build whisper.cpp
cd whisper.cpp
cmake -B build -DGGML_METAL=ON
cmake --build build -j --config Release
cd ..
4. Download the models
# Whisper Large V3 (~3.1 GB)
cd whisper.cpp/models
bash download-ggml-model.sh large-v3
# Silero VAD v6.2.0 (~865 KB)
bash download-vad-model.sh silero-v6.2.0
cd ../..
5. Set permissions
chmod +x prepsat.sh transcribe.sh
6. Verify
./prepsat.sh -h
./transcribe.sh -h
Usage
Transcribe Czech
./prepsat.sh recording.m4a # → recording.md + recording.srt
./prepsat.sh --md recording.m4a # → recording.md only
./prepsat.sh --srt recording.m4a # → recording.srt only
Transcribe English
./transcribe.sh lesson.mov # → lesson.txt + lesson.srt
./transcribe.sh --txt lesson.mov # → lesson.txt only
./transcribe.sh --srt lesson.mov # → lesson.srt only
Output files are written to the current directory.
Supported input formats
Anything ffmpeg can decode: MP4, MOV, MP3, M4A, WAV, FLAC, OGG, AVI, MKV and more. The scripts convert every input to 16 kHz mono WAV before transcribing it.
How it works
Three-phase pipeline
- Convert: ffmpeg turns any audio or video input into WAV (16 kHz, mono, PCM s16le)
- Split: the audio is cut into five-minute chunks (set with
CHUNK_MINUTES) - Transcribe: whisper-cli transcribes each chunk separately and the outputs are joined together
How it avoids hallucinations
Whisper has a known bad habit: during silence or unclear audio it starts repeating the same text over and over. The project uses three countermeasures:
| Technique | What it does |
|---|---|
| Five-minute chunks | The model starts fresh with each chunk, so a repetition loop doesn't carry over |
| Silero VAD | Voice activity detection skips silent parts entirely, so a hallucination has nowhere to start |
| Tuned decoder | -mc 0 (no context carried over), -et 2.0 (low entropy threshold), -ml 80 (maximum segment length), --suppress-nst (suppress non-speech tokens) |
This keeps the transcript clean even for long recordings with uneven audio quality.
Using it with Claude Code
Example calls from a Claude Code skill:
# Transcribe a Czech podcast episode
./prepsat.sh episode.mp4
# Transcribe English course content
./transcribe.sh lecture.mov --txt
The scripts report progress on stderr and return status through the exit code, so they can be driven programmatically.
Troubleshooting
"whisper-cli not found"
Rebuild whisper.cpp:
cd whisper.cpp && cmake -B build -DGGML_METAL=ON && cmake --build build -j --config Release
"Model not found"
Download the models:
cd whisper.cpp/models
bash download-ggml-model.sh large-v3
bash download-vad-model.sh silero-v6.2.0
"ffmpeg: command not found"
brew install ffmpeg
Looping repeated text (hallucination)
The scripts handle this themselves through chunking and VAD. If it still happens, try shorter chunks: change CHUNK_MINUTES at the top of the script (the default is 5).
License
MIT, see LICENSE.
Author
Jindřich Fáborský, marketer and educator from Prague. I teach marketers to build their own tools with AI.
I built whisper-cz-en for my own use and as teaching material: students of Vibe Coding for Marketers meet it in the lesson on podcast automation and can use it as is or as the base for their own transcription tool.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi