Stammtisch 2024-12-06: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
Zeile 137: Zeile 137:
 
# Als nächstes tippe den Befehl "whisper" in die letzte Zeile der Konsole <code><$>PFAD/Audioverzeichnis '''whisper'''</code>
 
# Als nächstes tippe den Befehl "whisper" in die letzte Zeile der Konsole <code><$>PFAD/Audioverzeichnis '''whisper'''</code>
 
# Nun ziehe mit der Maus (Drag & Drop) die zu bearbeitende Datei einfach runter in die Konsole hinter den Befehl "whisper"; das sieht dann so aus: <code><$>PFAD/Audioverzeichnis whisper '''/Audiofile.mp3'''</code>
 
# Nun ziehe mit der Maus (Drag & Drop) die zu bearbeitende Datei einfach runter in die Konsole hinter den Befehl "whisper"; das sieht dann so aus: <code><$>PFAD/Audioverzeichnis whisper '''/Audiofile.mp3'''</code>
# Man kann nun noch auswählen, mit welchem der fünf Sprachmodell man arbeiten möchte (siehe Box unten); wir entscheiden uns für das beste (und größte und damit auch langsamste) Sprachmodell ''large'', was so aussieht: <code><$>PFAD/Audioverzeichnis whisper Audiofile.mp3 '''--model large'''</code>
+
# Man kann nun noch auswählen, mit welchem der fünf Sprachmodelle man arbeiten möchte (siehe Box unten); wir entscheiden uns für das beste (und größte und damit auch langsamste) Sprachmodell ''large'', was so aussieht: <code><$>PFAD/Audioverzeichnis whisper Audiofile.mp3 '''--model large'''</code>
  
 
Nun wird die die Audiodatei untersucht, nachdem (automatisch die Sprache Deutsch für die zu erstellende Textdatei gewählt wurde &ndash; innerhalb von 30 Sekunden kann man mit einem angehängten <code>'''--language german (oder english, etc.)'''</code> die Sprache noch ändern.
 
Nun wird die die Audiodatei untersucht, nachdem (automatisch die Sprache Deutsch für die zu erstellende Textdatei gewählt wurde &ndash; innerhalb von 30 Sekunden kann man mit einem angehängten <code>'''--language german (oder english, etc.)'''</code> die Sprache noch ändern.
Zeile 159: Zeile 159:
 
  ... (und so weiter)
 
  ... (und so weiter)
  
Wie man sieht, gibt es in der Konsole weder Großschreibung, noch Satzzeichen. Außerdem ist die Erkennung der biblischen (hebräischen) Namen sehr dürftig; im Sprachmodell "small" war es meiner Erinnerung nach sogar besser. Das muss ich noch austesten; den Stammbaum mit extrem vielen hebräischen Namen zu wählen, war wohl nichts das Schlaueste.
+
Wie man sieht, wird in der Konsole weder Großschreibung, noch Satzzeichen beachtet. Außerdem ist die Erkennung der biblischen (hebräischen) Namen sehr dürftig; im Sprachmodell "small" war es meiner Erinnerung nach sogar besser. Das muss ich noch austesten; den Stammbaum mit extrem vielen hebräischen Namen zu wählen, war wohl nichts das Schlaueste.
 +
 
 +
Allerdings habe ich es nach der obigen &ndash; in meinen Augen recht schlechten Transkription &ndash; mit dem "schlechteren" Sprachmodell ''small'' versucht. Danach war die Ausgabe fast fehlerfrei (Groß- und Kleinschreibung korrekte, Satzzeichen gesetzt, die biblischen Namen relativ gut erkannt (allerdings scheint er auf die englische Schreibweise der Namen zurückzugreifen). Und der Vorgang lief nun ''deutlich (!)'' schneller ab.
 
   
 
   
 
  INFO:  
 
  INFO:  
 
  verfügbare Sprachmodelle in Whisper OpenAI
 
  verfügbare Sprachmodelle in Whisper OpenAI
    Winzig (tiny): ca. 40 MiB
+
    Basis (base): ca. 70 MiB
+
      ==================================
    Klein (small): ca. 250 MiB
+
      | Winzig (tiny)   | ca. 40 MiB   |
    Normal (medium): ca. 750 MiB
+
      --------------------------------
    Gross (large): ca. 1.500 MiB
+
      | Basis (base)   | ca. 70 MiB   |
 +
      --------------------------------
 +
      | Klein (small)   | ca. 250 MiB |
 +
      --------------------------------
 +
      | Normal (medium) | ca. 750 MiB |
 +
      --------------------------------
 +
      | Gross (large)   |ca. 1.500 MiB |
 +
      ==================================
  
  

Version vom 7. Dezember 2024, 20:36 Uhr

06.12.2024 - 20:00 Uhr, Online-Stammtisch auf https://bbb.ch-open.ch/rooms/ulf-nm2-y26/join

wöchentlicher Online-Stammtisch

Auf dem Stammtisch Mai 2020 beschlossener wöchentlicher Stammtisch jeden Freitag ab 20:00 Uhr anstelle des monatlichen Stammtisches im realen Leben.


Anwesende

  • Holger
  • Ulf
  • Plocki
  • Bertram




Themen



Zeitstempel für Audiodateien erstellen und auf Homepage anbieten

Holger hat schon seit Jahren vor, die Audiodateien seiner Homepage Audio-Bibel NeÜ so zu bearbeiten, dass man sie nicht nur kapitelweise, sondern auch versweise abspielen kann.

Dazu muss aber erst mal ein Zeitstempel hinterlegt werden [Datei anhören, Zeit notieren, wenn Übergang von Vers 1 zu Vers 2 usw. und dies in einer (zum Beispiel) RSS-Datei hinterlegen].

Ulf hilft Holger, erst mal Tools zu finden – und auch eine Vorgehensweise zu überdenken, um dies dann dem interessierten Hörer anzubieten –; so könnte man zum Beispiel die Audiodateien auch über einen Podcast anbieten, dort die Suchfunktion nutzen, um dann ganz konkret in ein bestimmtes Buch, dort in ein bestimmtes Kapitel und dort wiederum zu einem (oder mehreren auzuwählenden) Vers(en) springen.

Hier findet sich eine Liste der in Frage kommenden Programme / Vorgehensweisen:

  1. mp3tag.de Community – Kapitelmarkierungen zu Audio- und Videodateien hinzufügen
  2. Wikihow.com: In Audacity Track-Marker einfügen --> wenig hilfreich, da Audacity-Version unbekannt und die beschriebene Vorgehensweise nur schwer nachvollzogen werden kann
  3. Podcaster.de Einfügen von Kapitelmarken
  4. forecast.fm – MP3 encoder with chapters --> wenig hilfreich; die empfohlene Anwendung läuft nur auf MacOS
  5. gnulinux.ch – Kapitelmarken im Podcast mit mp3chaps
  6. Das Kid3-Handbuch --> "Kid3" ist ein Editor für die Metadaten von Audiodateien (es gibt noch andere, zum Beispiel NTag, oder auch Wikipedia: Tag-Editor. Oder einfach die Suchmaschine bemühen ...
  • Ulf empfiehlt Holger zunächst den Metadaten-Editor Kid3 grafisch über den "Discover" (Softwareverwaltungstool unter openSUSE) zu installieren, was Holger umsetzt, während er seinen Bildschirm teilt.
  • Danach installiert Holger über die Konsole die Anwendung mp3chaps, was sich für ihn nicht ganz einfach gestaltet.
<$> pipx install mp3chaps.
INFO
ubuntuusers.de: pipx – Installation und Benutzung ist ein Hilfsprogramm, mit dem Python-Module, welche ausführbare Programme enthalten, installiert werden können.
Die pipx-Befehle werden ohne vorangestellten "sudo" (Systemadministrator) ausgeführt. Hier findet sich noch die Hilfe zu pipx: pipx --help
Das Programm 'pipx' kann in den folgenden Paketen gefunden werden:
  * python310-pipx [ Pfad: /usr/bin/pipx, Repository: base-oss ]
  * python311-pipx [ Pfad: /usr/bin/pipx, Repository: base-oss ]
  * python312-pipx [ Pfad: /usr/bin/pipx, Repository: base-oss ]

Wie wir der Konsolenausgabe entnehmen, werden drei verschiedene Repositorys für pipx angeboten; auf Ulfs Empfehlung wählt Holger das mittlere (phython311-pipx).

<$> sudo zypper in python311-pipx

Unter Holgers openSUSE Tumbleweed-Slowroll werden "automatisch" die argcomplete-Pakete mit installiert, welche beim Nutzen der Tab-Taste die Auto-Vervollständigungs-Funktion im pipx-Paket mit einbauen.

Nun kann das Paket mp3chaps installiert werden.

<$> pipx install mp3chaps

Und jetzt noch dem System erlauben, auf die ausführbaren Skripte (werden als symbolischer Link abgelegt) zuzugreifen

<$> python3 -m pipx ensurepath

Laut Ubuntuusers.de sollte man sich noch aus- und wieder einloggen; bei Holger hat es auch ohne Ab- und Anmeldung funktioniert.

Was pipx nun tut, erfahrt Ihr, wenn Ihr den obigem Link von ubuntuusers.de unter der Überschrift "Benutzung" nachlest.

In Holgers Fall (es war ein anderer Pfad vorangegeben) musste noch Handarbeit geleistet werden; über den Joe-Editor musste in der Datei '~/.bashrc noch der Pfad verändert werden und die Autovervollständigung (python-argcomplete) für pipx hinterlegt werden:

<$> ~> joe ~/.bashrc
^K  I A  ~/.bashrc (Modified)(conf)                                                                                                                      Row 30   Col 1   

# Sample .bashrc ['rc steht (vermutlich) für 'resource' = Systemdateien werden beim Start eines Terminals verändert]
# Copyright (c) SUSE Software Solutions Germany GmbH

# There are 3 different types of shells in bash: the login shell, normal shell
# and interactive shell. Login shells read ~/.profile and interactive shells
# read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all
# settings made here will also take effect in a login shell.
#
# NOTE: It is recommended to make language settings in ~/.profile rather than
# here, since multilingual X sessions would not work properly if LANG is over-
# ridden in every subshell.

#Include local und sik Linux/Skripte/ path
test -d ${Linux/Skripte} && test $(echo ${PATH} | grep ${Linux/Skripte}) || export PATH=${PATH}:${LinuxScripte}

# change dir
alias dir="ls -ahl"
test -s ~/.alias && . ~/.alias || true


export EDITOR=/usr/bin/joe
echo "Holgers Willkommenstext bei Konsolenöffnung"

# Created by `pipx` on 2024-12-06 20:28:59
export PATH="$PATH:/home/holger/.local/bin"

eval "$(register-python-argcomplete pipx)"

Die Änderungen an der Datei werden mit <Strg> + <C> und einem darauf folgenden <X> und durch Drücken der "N"-Taste ("N" für nein, Dateiänderungen akzeptieren) übernommen.

Holger muss jetzt erst mal alles in Ruhe sichten und dann einen Plan machen und experimentieren, wie genau er denn vorgehen wird. Er wird vermutlich als erstes

  1. eine RSS-Datei erstellen, in dem neben Buchtitel, Kapitel- und Versauswahl (mit Zeitstempel im Format hh:mm:sss) auch noch weitere Meta-Infos (wie Author, Link zur Webseite, Copyright, Textstand und Aufnahmedatum, etc.) aufgeführt werden; quasi ein "Inhaltsverzeichnis".
  2. schauen, mit welchem Tag-Editor er arbeiten wird

Eins ist klar: die 66 Bücher der Bibel mit ihren (ungefähr) knapp 1.200 Kapiteln und (ungefähr – je nach Bibelübersetzung – über 31.000 Versen in den Audiodateien versweise mit einem Zeitmarker zu versehen, dauert eine Weile ...



Fortschritte beim Zeichnen mit "Krita" übers Zeichentablett

  1. Einstellung Stiftgeschwindigkeit erhöhen, ermöglicht "flüssigeres" Zeichen (weniger krakelig)
  2. Funktion "Ausfüllen" (kolorieren) spart viel Zeit

Bertram demonstriert seine Erfolge mit dem Zeichenprogramm "Krita" per Bildschirmfreigabe. Die sind wirklich sehr ansehnlich geworden!




Installation von Whisper (von OpenAI) auf openSUSE über die Konsole

Holger moniert, dass sein Whisper nicht läuft; es erscheint nur ein Fenster, in dem Mikrofoneingang und Lautsprecherausgang gewählt werden können. Aber wie die Anwendung dann genutzt werden kann, erschließt sich Holger nicht.

Ulf weist darauf hin, dass es sich hier – bei Holgers Whisper von Flathub nicht um das (schon von Bertram installierte und genutzte Whisper openAI handelt. Das von Holger zuvor über die Softwareverwaltung "Discover" grafisch installierte Tool (auszugsweises Zitat aus dem Englischen übersetzt):

... erlaubt es, über die Lautsprecherausgänge die Mikrofoneingabe zu hören, um zum Beispiel das Mic zu testen, oder die eigene Stimme zu hören ...

Mehr aber auch nicht.

Das von Bertram schon genutzte Whisper OpenAI dagegen ermöglicht es, gesprochene Sprache zu erkennen und in eine Textdatei zu speichern – dabei kann der Text nicht nur erkannt und als Textdatei gespeichert werden, sondern sogar auch noch in eine andere Sprache übersetzt werden (z. B. deutsches Audio wird in englischen Text übersetzt und als Textdatei gespeichert). Und das wäre für Holger ein Anwendungsfall. Entweder die von ihm produzierten Schulungsvideos mit deutschen Untertiteln unterlegen, oder für englischsprachig Interessierte diese mit auf Englisch übersetzten Untertiteln anzubieten.

So wird Whisper openAI über die Konsole (ohne "sudo" – wie bei dem Artikel weiter oben Installation mp3chaps beschrieben – mit dem Hilfsprogramm pipx installiert:

<$>pipx install openai-whisper
  1. Jetzt wähle in Deinem Dateimanager – idealerweise Dolphin (KDE-Desktop ist Voraussetzung) – die zu transkribierende Audio-Datei (oder auch Videodatei) aus und öffne im Dateimanager (im Dolphin per Tastaturkürzel <F4>) die Konsole; das sieht in der Konsole des Dateimanagers dann so aus:<$>PFAD/Audioverzeichnis
  2. Als nächstes tippe den Befehl "whisper" in die letzte Zeile der Konsole <$>PFAD/Audioverzeichnis whisper
  3. Nun ziehe mit der Maus (Drag & Drop) die zu bearbeitende Datei einfach runter in die Konsole hinter den Befehl "whisper"; das sieht dann so aus: <$>PFAD/Audioverzeichnis whisper /Audiofile.mp3
  4. Man kann nun noch auswählen, mit welchem der fünf Sprachmodelle man arbeiten möchte (siehe Box unten); wir entscheiden uns für das beste (und größte und damit auch langsamste) Sprachmodell large, was so aussieht: <$>PFAD/Audioverzeichnis whisper Audiofile.mp3 --model large

Nun wird die die Audiodatei untersucht, nachdem (automatisch die Sprache Deutsch für die zu erstellende Textdatei gewählt wurde – innerhalb von 30 Sekunden kann man mit einem angehängten --language german (oder english, etc.) die Sprache noch ändern.

Whisper erkennt nun satzweise den gesprochenen Text und erstellt (zunächst auf der Konsole) verschiedenen Textdateien in den Formaten .txt, jason,

So sieht das dann aus:

user@linux:~/PFAD/Audioverzeichnis> whisper /PFAD/Audioverzeichnis/MatthaeusKapitel01.mp3 --model large
/home/user/.local/share/pipx/venvs/openai-whisper/lib64/python3.11/site-packages/whisper/__init__.py:150: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(fp, map_location=device)
/home/user/.local/share/pipx/venvs/openai-whisper/lib64/python3.11/site-packages/whisper/transcribe.py:126:  UserWarning: FP16 is not supported on CPU; using FP32 instead
  warnings.warn("FP16 is not supported on CPU; using FP32 instead")
Detecting language using up to the first 30 seconds. Use `--language` to specify the language
Detected language: German
[00:00.000 --> 00:15.480]  das evangelium nach matthäus kapitel 1 buch des ursprungs von jesus christus dem nachkommen von
[00:15.480 --> 00:26.820]  könig david und dem stammvater abraham abraham wurde der vater von isaak isaak der vater von
[00:26.820 --> 00:37.200]  jakob und jakob der vater von juda und seinen brüdern juda wurde der vater von peres und serach
[00:37.200 --> 00:48.600]  ihre mutter war tamar peres wurde der vater von hetzen (statt Hezron) und hetzen der von rahmen (statt Raman) wurde
[00:48.600 --> 00:56.520]  der vater von amina dab (statt Aminadab) amina dab von nach schon (statt Nachschon) nach schon von salmon

... (und so weiter)

Wie man sieht, wird in der Konsole weder Großschreibung, noch Satzzeichen beachtet. Außerdem ist die Erkennung der biblischen (hebräischen) Namen sehr dürftig; im Sprachmodell "small" war es meiner Erinnerung nach sogar besser. Das muss ich noch austesten; den Stammbaum mit extrem vielen hebräischen Namen zu wählen, war wohl nichts das Schlaueste.

Allerdings habe ich es nach der obigen – in meinen Augen recht schlechten Transkription – mit dem "schlechteren" Sprachmodell small versucht. Danach war die Ausgabe fast fehlerfrei (Groß- und Kleinschreibung korrekte, Satzzeichen gesetzt, die biblischen Namen relativ gut erkannt (allerdings scheint er auf die englische Schreibweise der Namen zurückzugreifen). Und der Vorgang lief nun deutlich (!) schneller ab.

INFO: 
verfügbare Sprachmodelle in Whisper OpenAI

     ==================================
     | Winzig (tiny)   | ca. 40 MiB   |
      --------------------------------
     | Basis (base)    | ca. 70 MiB   |
      --------------------------------
     | Klein (small)   | ca. 250 MiB  |
      --------------------------------
     | Normal (medium) | ca. 750 MiB  |
      --------------------------------
     | Gross (large)   |ca. 1.500 MiB |
     ==================================




Zurück zur Übersicht