Transkriber norske video- og lydfiler til tekst med automatisk taler-identifikasjon.
- VTT-fil med undertekster og taler-markering (kan importeres i Dovetail, YouTube, etc.)
- Tekstfil gruppert etter hvem som snakker
Input: inn/eksempel.mp4 (17 sekunder video)
Output ut/eksempel/eksempel.diarized.vtt:
WEBVTT
1
00:00:00.000 --> 00:00:03.000
<v SPEAKER_00>Hva jeg ville ha sagt til en som gir blod?
2
00:00:05.000 --> 00:00:10.000
<v SPEAKER_00>Jeg ville ha sagt at det er livsnødvendig for at jeg skal kunne leve et normalt liv.
3
00:00:11.000 --> 00:00:16.000
<v SPEAKER_00>Ja, så tusen, tusen takk for at du gir blod.
Output ut/eksempel/eksempel.diarized.txt:
SPEAKER_00:
Hva jeg ville ha sagt til en som gir blod?
Jeg ville ha sagt at det er livsnødvendig for at jeg skal kunne leve et normalt liv.
Ja, så tusen, tusen takk for at du gir blod.
- macOS (testet) eller Linux
- Python 3.9+
- ffmpeg
- Ca. 10 GB ledig diskplass for modeller
# macOS
brew install cmake ffmpeg python@3.11
# Eller Linux (Ubuntu/Debian)
sudo apt install cmake ffmpeg python3-pip python3-venvgit clone git@github.com:fredrik-lindseth/transkriber.git
cd transkriber
# Lag virtuelt miljø
python3 -m venv venv
source venv/bin/activate
# Installer Python-pakker
pip install --upgrade pip
pip install torch openai-whisper pyannote.audioPyannote-modellene krever at du godtar bruksvilkår:
-
Lag konto på huggingface.co
-
Gå til Token-innstillinger og lag en token med "Read" tilgang
-
Godta vilkårene for disse modellene (klikk "Agree and access repository"):
-
Sett token som miljøvariabel:
cp .env.example .env # Rediger .env og sett inn din tokenEller eksporter direkte:
export HF_TOKEN="hf_din_token_her"
source venv/bin/activate
python3 transcribe-diarize.py ./din-video.mp4Output havner i ./ut/din-video/:
din-video.diarized.vtt- Undertekster med taler-markeringdin-video.diarized.txt- Ren tekst gruppert etter talerdin-video.diarized.log- Loggfil
# Angi output-mappe
python3 transcribe-diarize.py video.mp4 -o ./min-mappe
# Bruk mindre modell (raskere, men mindre nøyaktig)
python3 transcribe-diarize.py video.mp4 -m medium
# Transkriber engelsk lyd
python3 transcribe-diarize.py video.mp4 -l enHvis du har en VTT-fil uten taler-markering og vil legge til taler-bytte basert på pauser:
python3 vtt-to-dovetail.py ./ut/video/video.vtt
# Juster pause-terskel (standard 2 sekunder)
python3 vtt-to-dovetail.py ./ut/video/video.vtt 3.0For raskere transkribering uten å identifisere hvem som snakker, bruk whisper.cpp:
# Klon whisper.cpp
git clone https://github.com/ggml-org/whisper.cpp.git
# Kjør setup-scriptet
./setup-nb-whisper.sh# Legg filer i inn-mappen
cp din-video.mp4 ./inn/
# Kjør transkribering
./transcribe.shOutput havner i ./ut/din-video/din-video.vtt
Prosjektet bruker:
- nb-whisper-large - Norsk Whisper-modell fra Nasjonalbiblioteket/NB-AiLab
- pyannote-audio - State-of-the-art taler-identifikasjon
- OpenAI Whisper - Tale-til-tekst modell
Omtrentlig tid per minutt med lyd (på M1 Mac):
| Modell | Tid | Nøyaktighet |
|---|---|---|
large |
~2-3 min | Best |
medium |
~1 min | God |
small |
~30 sek | OK |
Taler-identifikasjon legger til ca. 30 sek per minutt lyd.
Sett HF_TOKEN miljøvariabel, se oppsett steg 3.
Du må godta vilkårene for pyannote-modellene på HuggingFace. Se lenker i oppsett steg 3.
Aktiver virtuelt miljø: source venv/bin/activate
Prøv en mindre modell: -m medium eller -m small