audio-transcription
Skill0 starsChanged 5 months agoMITView on GitHub
Transcribe audio or video files (Hebrew or any language) into timestamped Markdown using faster-whisper, with the ivrit-ai/whisper-large-v3-turbo-ct2 fine-tune as the default Hebrew model. Triggers whenever the user asks to transcribe, tafmel, תמלל, תמלול, or analyze a recording — phone calls, meetings, Google Meet recordings, voice memos, lectures, interviews. Saves transcripts to a project-local path (default: `transcripts/` or alongside the source) and Hebrew transcripts are auto-wrapped in `<div dir="rtl">` so they render correctly.
- Installs packages
7 other projects use a version of this.
Adopted by
Most recently taken up by
- ucsb-dreamlab/skillstheir own version, first seen Nov 8, 2026
- PostPlusAI/postplus-skillstheir own version, first seen Nov 5, 2026
- patrick-fu/awesome-skillstheir own version, first seen Oct 22, 2026
- mitsuhiko/agent-commandstheir own version, first seen Oct 8, 2026
- OpenBMB/PilotDecktheir own version, first seen Oct 8, 2026
- mitsuhiko/agent-stufftheir own version, first seen Oct 8, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- OpenBMB/PilotDeck★ 5ksame name
- mitsuhiko/agent-commands★ 3.2ksame name
- mitsuhiko/agent-stuff★ 3.2ksame name
- patrick-fu/awesome-skills★ 69same name
- PostPlusAI/postplus-skills★ 27same name
- aryankumar06/claude-code-skills★ 16same name
- ucsb-dreamlab/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 1 is distinctive, and 4 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 111
When invoked inside a project, save the transcript under the project's working tree, not next to the source file in Downloads.
- Very specific: line 115
If the recording is conference/event-related → conference/transcripts/
- Very specific: line 116
If it's interview source material for a review → sources/transcripts/
- Very specific: line 133
If you have an NVIDIA GPU, --device cuda --compute-type float16 is 5-20× faster than CPU.
- Very specific: line 146
Consider --beam-size 8 and revisit segments with low semantic coherence.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Audio Transcription
Reusable local audio transcription via faster-whisper. Hebrew-first (uses the ivrit-ai fine-tune by default), but works for any language. Point it at a recording, get a timestamped Markdown transcript. Nothing leaves the machine.
When to use
- The user has a recording (phone call, Google Meet, voice memo, interview, lecture, podcast) and wants it transcribed.
- The user asks to "תמלל", "תמלול", "transcribe", "convert speech to text".
- A workflow needs to read what was said in audio/video before proceeding (e.g. drafting a document from a kickoff call, extracting decisions from a meeting).
When NOT to use
- The recording is already transcribed (.txt / .srt / .vtt / .md beside it) — read that instead.
- The user asks for diarization (who-said-what speaker labels). This skill does not do diarization out of the box (see "Future work" below). Acknowledge the limitation and offer either: timestamped transcript + context-based attribution, or a separate pyannote.audio setup.
- The audio is on a remote service requiring API auth (YouTube link, Zoom cloud, etc.) — first get a local file.
Setup
pip install faster-whisper
# plus ffmpeg from your system package manager - see ../install-whisper/Quickstart
# Hebrew (default model: ivrit-ai/whisper-large-v3-turbo-ct2)
python transcribe.py "<path-to-audio>" -l he -o transcripts\<name>.md
# English / auto-detect
python transcribe.py "<path-to-audio>" -o transcripts\<name>.mdThe script is also invokable from bash:
python transcribe.py "<path-to-audio>" -l he -o transcripts/<name>.mdDefaults & flags
| Flag | Default | Notes |
-l/--language | auto-detect | Pass he for Hebrew to force the ivrit-ai model |
-m/--model | ivrit-ai/whisper-large-v3-turbo-ct2 for he, else large-v3 | Any HF CT2 model or built-in size (tiny/base/small/medium/large-v3) |
-o/--output | <audio>.transcript.md | Prefer an explicit path under <project>/transcripts/ |
--device | auto | cuda if available, else cpu |
--compute-type | default | CPU: int8 is fastest. GPU: float16. |
--beam-size | 5 | Raise to 8 for noisy phone audio; lower to 1 for speed |
--no-vad | off (VAD on) | Silero VAD pre-filter is on by default — helps phone calls with long silences |
--initial-prompt | none | Bias the decoder toward proper nouns: --initial-prompt "Ada, Lin, ACME, roadmap" |
--word-timestamps | off | Adds word-level timing inside each segment (slower) |
Output format
Markdown with one segment per paragraph:
# Transcript: <filename>
- Source: ...
- Model: ...
- Language: he (99%) (forced)
- Duration: 0:14:36
- VAD: Silero (on)
- Beam size: 5
---
<div dir="rtl">
`00:00:00` שלום, אז דיברנו על...
`00:00:08` כן, אני חושב שצריך לבדוק...
</div>Hebrew transcripts are automatically wrapped in <div dir="rtl"> for correct
RTL rendering on GitHub and in Markdown previewers.
Recipe: project-local placement
When invoked inside a project, save the transcript under the project's working tree, not next to the source file in Downloads. Pick the most specific subdirectory available:
- If the recording is conference/event-related →
conference/transcripts/ - If it's interview source material for a review →
sources/transcripts/ - Generic working call →
transcripts/
Filename convention: <YYYY-MM-DD>-<short-slug>.md. Example:
2026-05-27-team-call.md.
Performance expectations
On CPU (no GPU), expect roughly:
large-v3/ivrit-ai/...turbo-ct2: 0.3-1.4× realtime depending on CPU and how much silence the VAD skipsmedium: 1-2× realtimesmall: 4-6× realtime
The first run downloads the model (~1.5-3 GB) into the HuggingFace cache. Subsequent runs are warm and fully offline.
If you have an NVIDIA GPU, --device cuda --compute-type float16 is 5-20×
faster than CPU.
Hebrew quality notes
- ivrit-ai/whisper-large-v3-turbo-ct2 is the state-of-the-art Hebrew
Whisper fine-tune. It significantly outperforms vanilla
large-v3on Hebrew WER, especially for spontaneous speech and accented Hebrew. - For mixed Hebrew/English calls, the ivrit-ai model handles code-switching well; English-only segments will transcribe correctly too.
- Numbers/dates often come out as words; let the user polish if they need digits.
- Phone-line audio (8 kHz) is noticeably worse than meeting-quality audio.
Consider
--beam-size 8and revisit segments with low semantic coherence.
Future work (not implemented)
- Speaker diarization (who-said-what): would require
pyannote.audio+ PyTorch + a HF-gated model accept. For two-speaker calls, an LLM can often re-attribute speakers post-hoc from context. - SRT/VTT output: easy to add — currently only Markdown is emitted.
- Force-alignment / phrase-level confidence: faster-whisper exposes
word_timestampsand per-segment probabilities; not surfaced in MD yet.
Privacy
The transcription is fully local — audio never leaves the machine. Models are downloaded once from HuggingFace; runtime is offline.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

