michimuc
Goto Top

Mit Batch: Entzippen und Dateien in Unterverzeichnissen verändern

Hallo zusammen,

ich nutze Whisper, um MP3-Dateien von Sprache in Text zu transkripieren. Ich bekomme von meinen Kollegen eine ZIP-Datei mit Unterverzeichnissen in 2 bis 3 Ebenen. Bislang entzippe ich alles manuell, wechsle dann per DOS in die verschiedenen Verzeichnisse und führe dort einzeln die Whisper-Aktion durch (z. B. whisper "*.mp3"). Dann wird von Whisper eine TXT-Datei mit dem gleichen Namen wie die MP3-Datei in diesem Verzeichnis erzeugt.

Um diese Arbeit zu automatisieren hätte ich gerne eine Batch-Datei, die folgende Aktionen ausführt:

1. Die ZIP-Datei im gleichen Verzeichnis entzippen.
2. Jedes Unterverzeichnis (in allen mindestens 3 Ebenen) nach MP3-Dateien durchsuchen.
3. Jede MP3-Datei mit dem Whisper-Befehl von MP3 in TXT transkripieren.
4. Die ZIP-Datei und die entzippten Verzeichnisse in das Verzeichnis "Erledigt" verschieben.


Kann mir bitte jemand weiterhelfen?

Vielen Dank
Michael

Content-ID: 668981

Url: https://administrator.de/contentid/668981

Ausgedruckt am: 21.11.2024 um 12:11 Uhr

MirkoKR
MirkoKR 24.10.2024 aktualisiert um 13:23:44 Uhr
Goto Top
Prinzipiell OK.
Offen ist die Frage, wo die Audio-Sprach-Dateien herkommen...

... und somit, ob die Unterstützung zur Speech2Text Umwandlung ggf
gegen die Richtlinien verstösst 🙏🤔

Mal abgesehen davon, das selbst High-End Anbieter schonmal Mist liefern - hier (im Screenshot von youtube) geht es um Home Assistent 🤣
1000039550
em-pie
em-pie 24.10.2024 um 07:12:02 Uhr
Goto Top
150704
Lösung 150704 24.10.2024 aktualisiert um 09:54:21 Uhr
Goto Top
Powershell ist wie immer dein Freund in allen Lebenslagen ...
# zip file path
$zipfile = "D:\Quelle\files.zip"  
# destination folder
$target = "D:\Ziel\erledigt"  
# path to whisper-faster exe
$whisper_exe = "d:\whisper-faster.exe"  
# ------ end of variables ----
# working directory is the path of the zip file
$workdir = Split-Path $zipfile -Parent
# expand the zip file
Expand-Archive -LiteralPath $zipfile -DestinationPath $workdir
# call the whisper process and process all files recursively in the workdir
&$whisper_exe $workdir --batch_recursive
# move everything in the workdir to the destination folder
move-item $workdir\* -Destination $target -Force

Batch
@echo off
set "zipfile=D:\Quelle\files.zip"  
set "target=D:\Ziel\erledigt"  
set "whisper_exe=d:\whisper-faster.exe"  

for /f "delims=" %%a in ("%zipfile%") do set "workdir=%%~dpa"  
cd "%workdir%"  
tar -xf "%zipfile%"  
"%whisper_exe%" "%workdir%" --batch_recursive  
xcopy "%workdir%" "%target%" /k /r /e /i /s /c /h  
MichiMuc
MichiMuc 24.10.2024 um 13:20:40 Uhr
Goto Top
Hallo Ted555,

vielen Dank! Das PowerShell-Skript hat schon 1a funktioniert. Wahnsinn.

Dürfte ich dich vielleicht noch um eine Kleinigkeit bitten?

Manchmal liegen mehrere ZIP-Dateien vor. Ginge es, dass der Name der ZIP-Datei nicht fest angegeben werden muss, sondern einfach alle vorhandenen nacheinander abgearbeitet werden?

Außerdem wäre es noch super, wenn die ZIP-Datei in einen Ordner entpackt wird, der genauso heißt wie die ZIP-Datei.

Und nochmal außerdem wäre es super, wenn das Skript die Dateien einfach liegen lässt oder in ein "Fehler"-Verzeichnis schiebt, wenn ein Fehler auftritt.

Das jetzige Skript zeigt einen kleinen Fehler an, funktioniert aber dennoch (siehe Bild).

Vielen Dank
Michael
1
150704
150704 24.10.2024 aktualisiert um 14:10:37 Uhr
Goto Top
Lesen & Lernen is the way to go ==>
Manchmal liegen mehrere ZIP-Dateien vor. Ginge es, dass der Name der ZIP-Datei nicht fest angegeben werden muss, sondern einfach alle vorhandenen nacheinander abgearbeitet werden?
Get-ChildItem
ForEach-Object
Und nochmal außerdem wäre es super, wenn das Skript die Dateien einfach liegen lässt oder in ein "Fehler"-Verzeichnis schiebt, wenn ein Fehler auftritt.
Try..Catch
Questionmark93
Questionmark93 24.10.2024 um 16:27:55 Uhr
Goto Top
Für so Fälle habe ich den CoPilot oder ChatGPT als gut empfunden, der hilft einem auch bei solchen Skript-Aufgaben und man kann es nach und nach erweitern
MichiMuc
MichiMuc 25.10.2024 um 09:28:09 Uhr
Goto Top
Vielen Dank für Eure Hilfe!

Ich versuche nun mal mein Glück. PowerShell ist für mich sehr ungewohnt, da ich bislang nur so einigermaßen mit VBA zurecht komme.

Grüße und schönes Wochenende.

Michael