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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668981
Url: https://administrator.de/forum/mit-batch-entzippen-und-dateien-in-unterverzeichnissen-veraendern-668981.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
7 Kommentare
Neuester Kommentar
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 🤣
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 🤣
Powershell ist wie immer dein Freund in allen Lebenslagen ...
Batch
# 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
Lesen & Lernen is the way to go ==>
ForEach-Object
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-ChildItemForEach-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