Slik får jeg gjort automatisk transkribering av intervjuer på min egen maskin
Grundige, søkbare notater, uten at jeg har brukt penger på det eller kompromisset på personvern.
Da jeg begynte med dybdeintervjuer til boka mi om produktledelse, trengte jeg å gjøre intervjuene om til søkbare notater.
Og jeg fant en gratis og GDPR-vennlig måte, med hjelp fra min tidligere kollega, Dag-Inge Aas!
Løsningen er å gjøre det lokalt på din egen maskin ved hjelp av Whisper, et verktøy som er basert på åpen kildekode. Bruksanvisning lenger ned.
Imponerende resultater
Jeg lagde et testlydklipp på 38 sekunder. Når modellen var ferdig installert, spyttet den ut denne 100% korrekte transkriberinga (OK, en ordelingsfeil) på sekunder:
Dette er meg som prater helt vanlig, tror jeg. Litt sånn som jeg pleier å prate egentlig.
Jeg har tenkt til å gjøre noen dybde intervjuer med folk i forbindelse med boka mi om produktledelse.
En av de tingene jeg har tenkt er at det er viktig å ha norske eksempler, norske erfaringer, som gjør det mer interessant for folk å lese boka,fordi det er eksempler som er mer relaterbare enn det for eksempel Amazon og Netflix er.
Det skal sies at jeg snakker Oslo-dialekt, så jeg forsøkte å gi den litt større utfordringer. Det sunnmørske uttrykket “fole kjekt” tok den ikke, og den feilstavet “Sunnmøre” og “sutre”, men ellers ganske imponerende:
Nå skal jeg prøve å bare snakke litt med rotete, enda mer mumlete, kanskje avbryter meg selv, kanskje gråt, suttre.
Kanskje jeg snakker litt på dialekt, sørlandsdialekt. Det er en dialekt som jeg kan prøve å snakke.
Ellers er det fullt sjekt her på Sundmøre, så dialektene har mye å si for om transkriberingen blir bra.
Men det hender den blir litt vel kreativ også, dette dukket opp på slutten av et timeslangt intervju jeg nylig transkriberte:
00:54:04.000 --> 00:54:07.000 Da snakkes vi før eller senere. Ha det bra.
00:54:07.000 --> 00:54:10.000 Ha det.
00:54:10.000 --> 00:54:14.480 [Tekstet av Nicolai Winther]
Med andre ord, ta transkriberinga med en klype salt. Den er supernyttig for å lete i og navigere lydopptak, men kan ikke erstatte lydopptaket når du faktisk trenger sitatene. Da må du dobbeltsjekke hva som faktisk blir sagt.
Dette trenger du
en halvtime (jeg brukte lenger på installasjonen, men da skrev jeg denne guiden samtidig).
en relativt ny datamaskin (det går raskere jo kraftigere maskinen er). Jeg brukte en Macbook M1 fra 2020.
rettigheter til å bruke programmet Terminal på macen din
3GB ledig lagringsplass på maskinen din
lydopptak
Her kommer en bruksanvisning på norsk som forsøkvis ikke skal kreve supermye tekniske ferdigheter (men litt tålmodighet). Du kan også lese den litt mer tekniske forklaringen til Dag-Inge som er på engelsk.
1. Gjør maskinen din klar
1.1 Sett opp Xcode
Xcode er Apple sitt utviklerverktøy. Det vi skal installere gjør at det du kan bygge mer avanserte ting på datamaskinen din enn du i utgangspunktet kan.
Åpne programmet på macen din som heter Terminal, og lime inn følgende tekst og trykke enter:
xcode-select --install
Oppgi passordet til macen din hvis du blir spurt.
1.2 Installer Homebrew
Så skal du installere Homebrew. Det gjør du også i Terminal. Lim inn følgende tekst og trykke enter:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Du må skrive inn passordet til macen din og trykke enter og vente litt for å få installert Homebrew. Det er litt teknisk men prøv å følg instruksjonene du får inne i Terminal!
1.3 Installer Whisper
Fortsatt inne i Terminal, klipper og limer du dette og trykker enter:
git clone https://github.com/ggerganov/whisper.cpp.git
1.4 Hent språkmodellen
Fortsatt i Terminal, skriver du følgende og enter:
cd whisper.cpp
Whisper har en enkel modell og en stor modell. Den enkle modellen er raskere, men vi har troa på at den store gir mer nøyaktige resultater, så det er den vi ønsker å hente. Det gjør vi slik:
bash ./models/download-ggml-model.sh large
Den er 3GB, for meg tok det 2 minutter å laste ned.
Et siste steg for å ferdigstille modellen. Skriv inn og trykk enter:
make large
1.5 Installer ffmpeg
Jeg gjør opptakene med QuickTime på macen min, og da lagres de i formatet .m4a. De må gjøres om til en spesifikk .wav-format før vi kan bruke Whisper.
ffmpeg skal vi bruke til å konvertere lydfilene. Inn i Terminal igjen:
brew install ffmpeg
Hent deg en kaffe nå. (Den brukte 6-7 minutter hos meg på å installere dette steget).
Og så er du snart klar til å transkribere!
2. Gjør lydfilene klare
2.1 Flytt lydfilene inn i Whisper-mappa
Her får vi litt hjelp av Terminal igjen.
Skriv følgene og trykk enter:
open .
Da åpner Finder whisper.cpp-mappa. (Hvis det ikke er den mappa som åpner seg, må du skrive cd whisper.cpp
først).
Her lager du en ny mappe som du kaller data
:
Denne mappa ville jeg også lagt i snarveien i siden av Finder, så du enklere finner tilbake til den senere hvis du vil legge flere lydfiler der.
I mappa legger du så lydfilene dine. Åpne f eks et Finder-vindu til, og dra dem inn i data-mappa du nettopp laget.
Her har jeg laget mappen data
og dratt fila whisper-test.m4a
fra mappa Lydopptak
og inn i mappa data
:
2.2 Konverter lydfilene dine til .wav
Åpne Terminal igjen, og skriv inn dette og trykk enter:
mkdir -p output;
for i in ./data/*; do
f=$(echo "${i##*/}");
filename=$(echo $f | cut -d'.' -f 1);
ffmpeg -i "$i" -acodec pcm_s16le -ac 1 -ar 16000 "./output/$(echo $filename).wav";
done
NB! Hvis du gjør dette i flere omganger, vær bevisst på at denne kommandoen konverterer alle lydfilene som ligger i data-mappa. Så flytt ut igjen de du allerede har konvert. Husk også at du må stå i riktig mappe for at dette skal funke, så neste gang du åpner Terminal må du antagelig skrive cd whisper.cpp
først.
3. Transkribering!
3.1 Transkriber lydfilene dine
Hvis du som meg har lastet ned den store modellen (large
) og har norsk språk (no
), så blir kommandoen for å transkribere alle lydfilene i mappa vi lagde i stad følgende:
for i in output/*.wav; do ./main -m ./models/ggml-large.bin -l no --output-vtt -f "$i"; done
Etter en liten stund vil du ha en mappe inne i Whisper-mappa som heter output
, og i den ligger det både en lydfil i wav
-format, og en tekst-fil i vtt
-format.
NB! Hvis du gjør dette i flere omganger, vær bevisst på at denne kommandoen transkriberer alle lydfilene som ble lagt output-mappa da vi konverterte til wav i steg 2.2. Så flytt ut igjen de du allerede har transkribert, hvis ikke ender du opp med å transkribere samme fila flere ganger.
Du finner mappa enkelt med å bruke samme kommando som vi brukte i stad, som alltid åpner Finder i samme mappe som Terminal befinner seg:
open .
(Hvis det ikke er den mappa som åpner seg i Finder, må du skrive cd whisper.cpp
først).
3.2 Enkel navigering i den transkriberte lydfilen
Her kan du bruke den gratis editoren til Happy Scribe, som også prosesserer filene lokalt på maskinen din (de blir ikke lastet opp). Du kan bruke det til også å rette transkriberingen, eller bare navigere den mer effektivt.
Du laster opp både .wav-fila og .vtt-fila fra output-mappa fra i stad:
Jeg håper dette var pedagogisk nok til at du får det til på egen hånd! Jeg fikk en god del hjelp av Dag-Inge underveis, men har forsøkt å skrive ned alt jeg lurte på hvert fall :)
Skulle gjerne hjulpet deg hvis du sliter med installasjonsguiden, men jeg tror rett og slett jeg ikke er kompetent, så jeg må bare si, lykke til!!
Har testet litt mer. Blant annet et 90 minutter langt opptak av panelsamtale på engelsk om den siste boka til Espen Ytreberg om Media and events in history, som fikk nesten alle fagord og akademikere riktig (bortsett fra noen nordiske). Testet også å bytte ut "--output-vtt" med "--output-txt" i koden. Der fungerte helt fint (og er greit dersom en kun vil ha teksten UTEN tidskoder). Oppdaget forøvrig at mine tidligere opptak i 20 bit wav ikke fungerer; kun 16 bit. Men det er jo en smal sak å gjøre om før jeg tekster.
Takk!