kacper6768 Opublikowano 18 godzin temu Zgłoś Udostępnij Opublikowano 18 godzin temu Potrzebuję aplikacji dla Windowsa 10 albo skryptu obojętnie czy w CMD albo PowerShellu czy w Pythonie żeby wsadowo przed każdym odtwarzaniem pliku mp3 odtwarzała się nazwa tego pliku czytana syntezatorem mowy bez .mp3. Nie znam żadnego języka programowania. ChatGPT wygenerował skrypt Add-Type -AssemblyName System.Speech $tts = New-Object System.Speech.Synthesis.SpeechSynthesizer $tts.SelectVoice("Microsoft Paulina Desktop") # <- możesz zmienić na dowolny z listy $ffmpeg = Join-Path $PSScriptRoot "ffmpeg.exe" $folder = "$PSScriptRoot\mp3" $tempWav = "$folder\_intro.wav" $tempMp3 = "$folder\_intro.mp3" $silence = "$folder\_silence.mp3" $joinList = "$folder\join_list.txt" # Sprawdź czy ffmpeg.exe istnieje if (!(Test-Path $ffmpeg)) { Write-Host "❌ Nie znaleziono ffmpeg.exe w katalogu skryptu!" -ForegroundColor Red exit } # 🔊 Generowanie TTS Write-Host "`n🔊 Generuję intro..." -ForegroundColor Cyan $text = "Plik audio został wygenerowany przez użytkownika" try { $tts.SetOutputToWaveFile($tempWav) $tts.Speak($text) $tts.Dispose() } catch { Write-Host "❌ Błąd generowania intro TTS!" -ForegroundColor Red exit } # 🎧 Konwersja WAV do MP3 & $ffmpeg -y -i $tempWav -ar 22050 -ac 1 -b:a 64k $tempMp3 # Sprawdź czy plik _intro.mp3 powstał if (!(Test-Path $tempMp3)) { Write-Host "❌ Błąd: nie udało się utworzyć pliku _intro.mp3!" -ForegroundColor Red exit } # 🔇 Generowanie ciszy 0.5 sekundy & $ffmpeg -y -f lavfi -i anullsrc=r=44100:cl=mono -t 0.5 $silence # Sprawdź czy katalog out istnieje, jeśli nie to utwórz if (!(Test-Path "$folder\out")) { New-Item -ItemType Directory -Path "$folder\out" | Out-Null } # 📂 Przetwarzanie plików MP3 Get-ChildItem "$folder\*.mp3" | Where-Object { $_.Name -notlike "_*" } | ForEach-Object { $file = $_.FullName $outputPath = "$folder\out\$($_.Name)" Write-Host "`n▶ Przetwarzanie: $($_.BaseName)" -ForegroundColor Yellow # 🔗 Tworzenie pliku listy do połączenia z zamianą backslash na slash $lines = @( "file '$($silence -replace '\\','/')'" "file '$($tempMp3 -replace '\\','/')'" "file '$($file -replace '\\','/')'" ) Set-Content -Path $joinList -Value $lines -Encoding ASCII # 🧬 Łączenie plików MP3 z rekompresją (zamiast -c copy) & $ffmpeg -y -f concat -safe 0 -i $joinList -acodec libmp3lame -ar 44100 -b:a 128k $outputPath 2>> "$folder\ffmpeg_error.log" if ($LASTEXITCODE -eq 0) { Write-Host "✅ Zakończono: $($_.Name)" -ForegroundColor Green } else { Write-Host "❌ Błąd łączenia dla: $($_.Name)" -ForegroundColor Red } } # 🧹 Czyszczenie tymczasowych plików Remove-Item $tempWav, $tempMp3, $silence, $joinList -Force Write-Host "`n✔ Wszystkie pliki zostały przetworzone!" -ForegroundColor Green i w PowerShellu jest napisane że wszystko wygenerowano pomyślnie ale w folderze mp3\out są wygenerowane puste pliki mp3. Najbardziej pasowałaby mi jakaś aplikacja od producenta żeby była bez wirusów i z interfejsem GUI żeby nie trzeba było męczyć się z komendami ale lepsze są skrypty niż nic. Odnośnik do komentarza
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się