Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Add-Type -AssemblyName System.Windows.Forms
- # Caminho para salvar a última pasta usada
- $lastFolderPathFile = "$HOME\lastFolderPath.txt"
- # Recupera a última pasta usada, se disponível
- if (Test-Path -Path $lastFolderPathFile) {
- $lastFolderPath = Get-Content -Path $lastFolderPathFile
- } else {
- $lastFolderPath = [System.Environment]::GetFolderPath("MyDocuments")
- }
- # 1. Abre o seletor de pasta atualizado
- $folderBrowserDialog = New-Object System.Windows.Forms.FolderBrowserDialog
- $folderBrowserDialog.Description = "Selecione a pasta contendo os arquivos de mídia"
- $folderBrowserDialog.SelectedPath = $lastFolderPath
- $folderBrowserDialog.ShowNewFolderButton = $false
- if ($folderBrowserDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
- $folderPath = $folderBrowserDialog.SelectedPath
- # Salva a última pasta usada para futuras execuções
- $folderPath | Out-File -FilePath $lastFolderPathFile -Force
- } else {
- # Toca um som de erro e encerra o script sem pausar
- $player = New-Object System.Media.SoundPlayer "C:\Windows\Media\Windows Error.wav"
- $player.PlaySync()
- exit
- }
- # 2. Percorre todos os arquivos de mídia na pasta selecionada e suas subpastas, ordenados por tamanho
- $mediaExtensions = @(".mp3", ".wav", ".mp4", ".mov", ".avi", ".mkv", ".ogg")
- $mediaFiles = Get-ChildItem -Path $folderPath -Recurse | Where-Object { $mediaExtensions -contains $_.Extension } | Sort-Object Length
- foreach ($file in $mediaFiles) {
- $outputPath = Split-Path -Path $file.FullName
- $outputFile = [System.IO.Path]::ChangeExtension($file.FullName, ".srt")
- # Verifica se o arquivo .srt já existe
- if (-Not (Test-Path -Path $outputFile)) {
- # 3. Executa o Whisper para transcrever o arquivo
- Write-Output "Transcrevendo $($file.FullName)..."
- & python -m whisper "$($file.FullName)" --language pt --model turbo -o "$outputPath" -f srt
- # Exibe mensagem de conclusão para cada arquivo
- Write-Output "Transcrição concluída para $($file.Name)."
- } else {
- Write-Output "Arquivo .srt já existe para $($file.Name), ignorando..."
- }
- }
- # 4. Toca um som de conclusão com volume reduzido e abre a pasta inicial ao finalizar o processo
- $player = New-Object System.Media.SoundPlayer "C:\Windows\Media\notify.wav"
- $player.PlaySync()
- Start-Process -FilePath "explorer.exe" -ArgumentList "$folderPath"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement