| name | transkription |
| description | Transcribes audio/video files to text. Uses Whisper (openai-whisper) or Vosk (offline) as optional backend — both are detected via presence check. Without backend: placeholder mode with dummy output (dry-run). |
Deutsch — Offizielle Deutsch-Version / Documento Oficial en Deutsch.
Übersicht & Zweck
Convert audio/video files to text — locally, without mandatory cloud access. The skill
automatically detects whether Whisper or Vosk is installed and selects the best
available backend. Without a backend it runs in dry-run mode and returns a
placeholder text, so the workflow always works.
Transcripts are stored locally in transkription/store.db and can be queried.
Triggers
| Phrase | Action |
|---|
| "Transcribe this audio" | Transcribe audio file |
| "Transcribe [file]" | Transcribe named file |
| "Show my transcripts" | List latest transcripts |
| "Search transcript [term]" | Full-text search in transcripts |
| "Export transcript [ID]" | Export transcript as TXT |
Workflow & Vorgehen
- Backend check: Check whether
whisper or vosk is importable.
- File check: Input file must exist (audio: wav, mp3, m4a, ogg, flac; video: mp4, mkv, webm — extraction via ffmpeg).
- Transcription: Call backend and obtain raw text.
- Save: Store result with metadata (file, duration, language, backend, timestamp) in
store.db.
- Output: Return text; optionally export as
.txt.
CLI Entry Point
python transkription_core.py transcribe audio.wav
python transkription_core.py transcribe audio.mp3 --lang de
python transkription_core.py transcribe audio.wav --dry-run
python transkription_core.py list [--limit 20]
python transkription_core.py search "term"
python transkription_core.py export <id> [--out file.txt]
python transkription_core.py check
python transkription_core.py --store /tmp/test.db transcribe audio.wav --dry-run
Store
| Property | Value |
|---|
| Type | SQLite |
| Path (default) | skills/assist/transkription/store.db |
| Override | --store <path> or env TRANSKRIPTION_STORE |
| Tables | transcripts |
Schema transcripts
CREATE TABLE IF NOT EXISTS transcripts (
id TEXT PRIMARY KEY,
file_path TEXT NOT NULL,
file_name TEXT NOT NULL,
text TEXT NOT NULL,
language TEXT,
backend TEXT,
duration_s REAL,
created_at TEXT NOT NULL,
tags TEXT
);
Attitude
- Without an installed backend the skill works in dry-run mode (demo text).
- Whisper is preferred over Vosk (better German quality).
- The choice between Whisper and Vosk can be set via
assist/prefs.json (transkription_backend: "whisper"|"vosk"|"auto").
- ffmpeg for video extraction is needed separately and is not included in the skill.
Privacy
- All transcripts stay local — no cloud transfer without Whisper online mode.
- Whisper can be used locally (tiny/base/medium model) or via OpenAI API.
By default the local model is used.
store.db may contain sensitive conversation content — do not commit to Git.
- Recommendation: add
store.db to .gitignore.
Related Resources
- BACH
hub/_services/voice/voice_stt.py — backend pattern (inspiration, read-only)
- Skill
utilities/yt-transcriber — YouTube transcription (separate skill, not a duplicate: YT-specific)
tools/module-installer/module_installer.py — registry contains whisper + vosk
Änderungsprotokoll
| Version | Date | Change |
|---|
| 0.1.0 | 2026-06-22 | Initial creation — own SQLite store, Whisper/Vosk presence check |