ubuntuusers.de

Transkriptionsprogramme

Als Transkription bezeichnet man in den (Geistes-)Wissenschaften u.a. die wörtliche Übertragung eines aufgenommenen Gesprächs in Schrift. Dies wird vor allem in den Sozialwissenschaften oft angewendet, um aufgenommene Interviews gründlich auswerten zu können.

Ein Transkriptionsprogramm erleichtert diese Aufgabe, indem es einen Audio- / Videoplayer und einen Texteditor in einem Programm kombiniert und idealerweise eine erweiterte Kontrolle beim Abspielen (Tastenkürzel für Abspielgeschwindigkeit, Rücklauf usw.) sowie Zusatzfunktionen beim Erstellen der Textdatei (automatisches Einfügen von Zeitstempeln, Kennzeichnung unterschiedlicher Sprecher, etc.) ermöglicht. Die dadurch gegenüber traditionellen Methoden mögliche Zeitersparnis kann beachtlich sein.

Neuerlich tauchen auch Möglichkeiten auf, Tonaufzeichnungen automatisch zu transskribieren.

Programme

easytranscript

easytranscript 🇩🇪 ist ein unter der GPL 3.0-Lizenz veröffentlichtes, plattformübergreifendes Transkriptionsprogramm von e-werkzeug, welches in Java geschrieben ist. Es orientiert sich vom Konzept her an den alten Versionen der proprietären Software f4transkript (siehe unten) und vereint in einem Fenster sowohl den Transkriptionstext als auch die Medienwiedergabe (Audio oder Video - die Wiedergabe erfolgt über VLC). Fußschalter werden unterstützt, die Tastenbefehle zum Abspielen der Mediendatei können angepasst werden und auf Wunsch ist auch eine Arbeitszeiterfassung möglich. Zudem werden - wie auch bei F4 - automatische Zeitmarken und Sprecherwechsel unterstützt und es können über Tastenkombinationen Textbausteine (zum Beispiel für Pausen) eingefügt werden. Ein sogenannter Stenographiemodus ermöglicht es, dass auf Wunsch bestimmte Kürzel ersetzt werden (et wird zu easytranscript). Installationshinweise sind auf der Webseite zu finden. 🇩🇪

Parlatype

Parlatype 🇬🇧 ist ein kompaktes Transkriptionsprogramm, das ab Ubuntu 18.04 in den Paketquellen verfügbar ist (PPA für vorherige Versionen). Es lässt sich über die Medientasten im Hintergrund steuern, hat eine konfigurierbare Zurückspringfunktion, Geschwindigkeitseinstellungen, eine graphische Anzeige der Audiowellen und es gibt integrierte Makros für LibreOffice, was das Transkribieren erleichtert.

./openscribe_logo.png

OpenScribe

Zu OpenScribe 🇬🇧 liegen nur wenige Informationen vor. Über die Projektseite wird eine Fremdquelle (PPA 🇬🇧) und Fremdpakete für die LTS-Versionen von Ubuntu angeboten. Auch ein Fußschalter wird unterstützt.

ELAN

ELAN 🇬🇧 ist ebenfalls ein Programm, zu dem noch wenig Informationen vorliegen. Als Voraussetzung dient Java. Mehr Informationen sind dem Handbuch 🇬🇧 und dem User Guide 🇬🇧 zu entnehmen.

EXMARaLDA

EXMARaLDA 🇩🇪 ist ein sprachwissenschaftliches Transkriptionspaket aus mehreren Komponenten, das durch weitere Werkzeuge ergänzt und für eine Vielzahl von Sprachen verwendet werden kann. Das Programm ist plattformunabhängig in Java geschrieben. Die Entwicklung wird u.a. von der Deutschen Forschungsgesellschaft, der Universität Hamburg und dem Bundesministerium für Bildung und Forschung getragen. Das Programm steht auf der Homepage als .tar.gz-Archiv oder via GitHub im Quellcode zum Download bereit. Einige Beispiele 🇩🇪 können einfach im Browser getestet werden.

PlayItSlowly

PlayItSlowly ist ein kleines Python-Programm, mit dem Aufnahmen in anderen Tempi abgespielt werden können. Dabei kann die Tonhöhe gehalten oder auch verändert werden; ebenso lässt sich ein Ausschnitt aus der Aufnahme wiedergeben. Insgesamt gesehen mehr für eine angepasste Musikwiedergabe als für Transkriptionen konzipiert.

f4transkipt

f4transkript 🇩🇪 ist ein unter Windows und Mac OS X weit verbreitetes, auf Java basierendes kommerzielles Programm, das zwischenzeitlich auch für Linux verfügbar war (wenn auch nur für 32-bit-Systeme). Mittlerweile wird es nicht mehr für Linux angeboten.

VLC und Textverarbeitung

Eine Alternative kann die Verwendung von VLC sein, da für dieses Programm globale Hotkeys ("Extras → Einstellungen → Hotkeys") definiert werden können, die eine Steuerung im Hintergrund erlauben. So kann in einem Textverarbeitungsprogramm wie z.B. LibreOffice geschrieben und ohne Fensterwechsel die Audiodatei in VLC pausiert werden. Ein automatisches Zurückspringen um ein paar Sekunden ist jedoch nicht möglich. Sollte die Belegung der Hotkeys nicht gleich funktionieren, hilft ggf. ein Neustart des VLC-Players.

Audacious und LibreOffice-Makro

Eine weitere Alternative ist die Nutzung des Audioplayers Audacious zusammen mit einem LibreOffice-Makro. Damit ist eine Audiosteuerung über F-Tasten, verlangsamtes Abspielen und automatisches Einfügen von Zeitstempeln möglich.

Audiosteuerung über F-Tasten

Zu Audacious gehört das Kommandozeilenwerkzeug audtool, mit dem es möglich ist, das Verhalten von Audacious sehr fein zu steuern. Über GNOME Tastenkürzel ist es möglich, die F-Tasten für die Transkription zu belegen:

Befehle für audtool
Taste Befehl Effekt
F9 audtool playback-seek-relative -3 3 Sekunden zurückspringen
F10 audtool playback-seek-relative -1 playback-pause 1 Sekunde zurückspringen und pausieren/starten
F11 audtool playback-seek-relative +3 3 Sekunden vorspringen

Tipp: Fußschalter, die vom System als Tastatur erkannt werden, können auf diesem Weg entsprechend konfiguriert werden. Es ist aber auch möglich, einfach eine zweite Tastatur an den PC anzuschließen und als günstigen Ersatz für einen Fußschalter auf den Boden zu legen.

Wiedergabe verlangsamen

Im Paket audacious-plugins findet sich das Plugin "SndStretch", dass sich in Audacious über Einstellungen → Plugins → Effekte aktivieren lässt. Damit ist es möglich, die Wiedergabe zu verlangsamen, ohne die Tonhöhe zu erhöhen.

Zeitstempel automatisch in LibreOffice-Writer einfügen

Mittels eines kleinen LibreOffice-Makros ist es möglich, über audtool den aktuellen Zeitstempel von Audacious auszulesen und ins Writer-Dokument einzufügen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
sub GetAudaciousTime

' timestamp in temporäre Datei schreiben
shellcmd = "/bin/bash -c 'audtool current-song-output-length > /tmp/aud-current-song-output-length'"
shell ( shellcmd )
wait( 40 ) 

' temporäre datei auslesen
Dim f1 As Integer
Dim audacioustimestampfile As String
Dim audacioustimestamp As String
f1=freefile()
audacioustimestampfile="/tmp/aud-current-song-output-length"
Open audacioustimestampfile For Input As #f1
Line Input #f1, audacioustimestamp
Close #f1

' Ergebnis formatieren
seconds = right(audacioustimestamp, 2)
minutes = left (audacioustimestamp, len(audacioustimestamp)-3)
if ( minutes>60 ) then 
	hours = cint( minutes )\60
	minutes = cint( minutes ) MOD 60 
else hours=0
end if
MyFormat = "00"
minutes = Format( minutes, MyFormat ) 
hours = Format( hours, MyFormat )
audacioustimestamp = chr(13) + "#" + hours + ":" + minutes + ":" + seconds + "# "

' ins Dokument schreiben
oDoc=thisComponent
oViewCursor=odoc.GetCurrentController.ViewCursor
oText=oDoc.text
oText.insertString(oViewCursor, audacioustimestamp,false)

end sub

Dieses Makro lässt sich in LibreOffice über "Extras → Anpassen → Tastatur" z.B. auf die Tastenkombination Alt + legen.

Youtube (automatisch)

Youtube transskribiert hochgeladene Videos automatisch. Wie lange es dauert, hängt im wesentlichen von der Filmlänge und der Klickzahl ab. Einsehen kann man es über die Funktion "Transskript Öffnen" im "..."-Menü. Herauskopieren lässt sich das Transskript mittels Strg+A und Strg+C. Clips mit 1...5 Min. Länge sind erfahrungsgemäß nach einem Tag transskribiert. Längere Filme kann man in viele Schnipsel zerstückeln und getrennt verarbeiten lassen, um die Wartezeit zu verkürzen. Um die Dateien erheblich zu verkleinern, kann man die Original-Videospur durch ein Standbild oder ähnliches ersetzen. Ein Verlangsamen des Films und die Veränderung der Tonhöhe kann die Erkennungsqualität erhöhen. Beispiel für Verlangsamung um 1,3 und Tonerhöhung um 1,1:

ffmpeg -i IN.mp4 -af atempo=1/1.1/1.3,aresample=48000/1.1,asetrate=48000 OUT_1.3x.mp3 # Audio extrahieren
ffmpeg -i OUT_1.3x.mp3 -f lavfi -i life=s=320x240:mold=10:r=30:ratio=0.1:death_color=#C83232:life_color=#00ff00 -vf format=yuv420p -crf 39 -shortest -movflags +faststart VOICES_1.3x.mp4 # Animation einfügen
ffmpeg -ss 00:00:00 -t 00:03:10 -i VOICES_1.3x.mp4 -c copy -movflags +faststart VOICES_1.3x_00-00-00.mp4 # Schnipsel erstellen
ffmpeg -ss 00:04:30 -t 00:01:00 -i VOICES_1.3x.mp4 -c copy -movflags +faststart VOICES_1.3x_00-04-30.mp4 # div. Passagen auslassen
[.....] 

Google Docs (automatisch)

Wenn man aus welchen Gründen auch immer kein Video auf Youtube hochladen kann oder möchte, lassen sich auch mit Google Docs Tonaufnahmen transskribieren, allerdings nur unter Chromium oder Google Chrome. Google Docs wählt unter Tools → Transskript automatisch ein Mikrofon aus. Die Aufnahme vorher zu verlangsamen (siehe oben unter Youtube) kann auch hier von Vorteil sein. Man kann die Tonaufnahme mittels Mediaplayer über Lautsprecher abspielen, doch das Ergebnis ist dann sehr bescheiden. Versucht man den Chromium-Eingabe-Stream mittels pavucontrol direkt auf den Mediaplayer umzuleiten, wird die Transskription sofort abgebrochen. Dies kann man mit folgendem Vorgehen aushebeln:

  • Zunächst einen Mediaplayer, z.B. VLC, mit einem Medium starten.

  • Alle anderen Programme schließen, die einen Ton produzieren könnten.

  • Dann Google Chome / Chromium starten.

  • Dann Google Docs aufrufen und ein leeres Dokument öffnen.

  • Nun folgenden Befehl ganz kopieren und absetzen:

    echo && echo "##### Jetzt innerhalb 10 Sek. Google Docs Tools-->Transskript starten" \
    && echo "##### und Mikrofonsymbol klicken." \
    && sleep 10 \
    && pacmd list-sources | grep -e 'source(s) available' -e 'index:' -e 'name:' -e device.description -e device.string -e '-input-' \
    && pacmd list-source-outputs | grep -e 'source output(s) available' -e 'index:' -e 'source:' -e 'client:' -e 'direct on input:' 
  • In der dann folgenden Ausgabe (beispielhaft) die markierten Indexwerte merken.

    2 source(s) available.
        index: 0
    	name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    		device.description = "Monitor of Eingebautes Tongerät Analog Stereo"
    		device.string = "0"
      * index: 1
    	name: <alsa_input.pci-0000_00_1b.0.analog-stereo>
    		device.string = "front:0"
    		device.description = "Eingebautes Tongerät Analog Stereo"
    		analog-input-internal-mic: Internes Mikrofon (priority 8900, latency offset 0 usec, available: unknown)
    				device.icon_name = "audio-input-microphone"
    		analog-input-dock-mic: Mikrofon der Docking-Station (priority 7800, latency offset 0 usec, available: no)
    				device.icon_name = "audio-input-microphone"
    		analog-input-mic: Mikrofon (priority 8700, latency offset 0 usec, available: no)
    				device.icon_name = "audio-input-microphone"
    	active port: <analog-input-internal-mic>
    5 source output(s) available.
        index: 4
    	source: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
    	client: 55 <PulseAudio-Lautstärkeregler>
        index: 5
    	source: 1 <alsa_input.pci-0000_00_1b.0.analog-stereo>
    	client: 55 <PulseAudio-Lautstärkeregler>
        [.....]
        index: 54
    	source: 1 <alsa_input.pci-0000_00_1b.0.analog-stereo>
    	client: 62 <Chrome input>
  • Den Mediaplayer pausieren und den gewünschten Start einstellen.

  • Folgenden Befehl nun ganz in einen Editor kopieren, die Indexwerte passend ersetzen und dann im Terminal starten.

    echo && echo "##### Jetzt innerhalb 5 Sek. Mediaplayer starten" \
    && echo "##### und Google Docs Mikrofonsymbol klicken." \
    && sleep 5 \
    && pacmd move-source-output $((54 + 1)) 0 \
    && pacmd set-source-mute 1 1 \
    && pacmd list-source-outputs | grep -e 'source output(s) available' -e 'index:' -e 'source:' -e 'client:' -e 'direct on input:' \
    && echo "##### In der vorstehenden Ausgabe sollte unter dem Index (54 + 1)" \
    && echo "##### der client <Chrome input> auftauchen, sonst ist ws schief gelaufen." \
    && echo "##### Nun nichts mehr am Rechner anklicken und warten bis das Transskribieren" \
    && echo "##### abgeschlossen ist (kann auch durch längere Stille passieren)." \
    && echo "##### Anschließend nicht vergessen das Mikrofon wieder zu aktivieren" \
    && echo "##### mit: pacmd set-source-mute 1 0" 
  • Zum Abschluss das Mikrofon wieder aktivieren und das Google-Dokument abspeichern.

  • Um den Abbruch des Transskribierens in Stille-Phasen zu verhindern, kann man auch auf das Muten des Mikrofons verzichten, und die Lücken mit dezentem Geräusch füllen.

Das Verfahren ließe sich sicher auch mit einem raffinierten Bash-Skript bewerkstelligen (z.B. das Erscheinen des Chrom-Aufnahme-Streams mittels Schleife im Sekundentakt abfragen, und dann sofort umschalten und VLC sekundengenau starten).

Verbesserungen können hier diskutiert werden.

Ein alternativer Weg könnte evtl. auch mittels

pacmd set-default-source SOURCE 

funktionieren. Dabei müsste dann in Google Docs nach Aktivieren des Transskript-Tools mittels Klicken auf das Kamera-Symbol in der Browser-Adresszeile das Mikrofon "Standardeinstellung" ausgewählt werden.

Ein mit Google Docs erstelltes Transskript ist nicht so hochwertig, wie ein mit Youtube erstelltes. Das liegt vermutlich daran, dass dies auf Youtube asynchron verarbeitet wird, und so mehr CPU-Zeit zur Verfügung steht. Auch fehlen im Google Docs Transskript die Zeitstempel.

Diese Revision wurde am 16. Mai 2020 19:38 von UlfZibis erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Übersicht, Wissenschaft, Bildung, Büro