From a7740292a7bc7ce6478ab9dce5de4e2dec747900 Mon Sep 17 00:00:00 2001 From: Yuriy Date: Sun, 14 Jan 2024 21:39:35 -0500 Subject: [PATCH] first commit --- .../Elegantthemes-Beautiful-Flat-Speaker.ico | Bin 0 -> 161862 bytes Assets/Git.ico | Bin 0 -> 190763 bytes Assets/Main_Screen2.png | Bin 0 -> 36534 bytes Compile Transcriber to EXE.ahk | 97 +++ Lib/RunCMD.ahk | 50 ++ Models/.gitignore | 0 Pull-Updates-From-Git.ahk | 58 ++ README.md | 39 + Whisper-AHK.ahk | 761 ++++++++++++++++++ 9 files changed, 1005 insertions(+) create mode 100644 Assets/Elegantthemes-Beautiful-Flat-Speaker.ico create mode 100644 Assets/Git.ico create mode 100644 Assets/Main_Screen2.png create mode 100644 Compile Transcriber to EXE.ahk create mode 100644 Lib/RunCMD.ahk create mode 100644 Models/.gitignore create mode 100644 Pull-Updates-From-Git.ahk create mode 100644 README.md create mode 100644 Whisper-AHK.ahk diff --git a/Assets/Elegantthemes-Beautiful-Flat-Speaker.ico b/Assets/Elegantthemes-Beautiful-Flat-Speaker.ico new file mode 100644 index 0000000000000000000000000000000000000000..4d95cab1fdfe2a19607fc5f88fd2fd02ea0ae0b8 GIT binary patch literal 161862 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 T_s)HHs2#dge<~gGFz^2dh7Qy( literal 0 HcmV?d00001 diff --git a/Assets/Git.ico b/Assets/Git.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c57dd8273a895f8e2ea299c8bb2cc07b3ed1a7d GIT binary patch literal 190763 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 60 Mins) + +; Gui, Add, Text +Gui, Font, Bold +Gui, Add, Text,x%GUIRowTwoXPos% y+15 w200 center,Other Settings +Gui, font, normal +Gui, Add, Checkbox, vKeepCMD, Keep CMD Open After Model Completion +Gui, Add, Checkbox, vShowTooltip checked%ShowTooltip%, Show Tooltip of Progress at Top of Screen +Gui, Add, Checkbox, vNTFY checked%NTFYURLCheckStatus%, NTFY After Each Transcription +Gui, Add, Checkbox, vContinueAfterCMDClose checked%ContinueAfterCMDCloseCheckStatus%, Start After Current Running Transcription Ends + + + + +gui, add, text, y%GUIMargin% x%GUIRowThreeVerticalLineXPos% 0x11 h270 ; 0x11 is a "line" ; refer to here: https://autohotkey.com/board/topic/50910-draw-line-gui/ +Gui, font, Bold +gui, font, s12 +Gui, Add, text,y%GUIMargin% w%TranscribeButtonWidth% x%GUIRowThreeXPos% h20 Center, Status Log +gui, font, normal +gui, font, s7 +Gui, Add, Edit, y+%GUIMargin% w%TranscribeButtonWidth% x%GUIRowThreeXPos% h200 vStatusLog + +Gui, font, Bold +Gui, Font, s12 +Gui, Add, Button, y+20 x%GUIRowThreeXPos% w%TranscribeButtonWidth% h40 gSubmit Center, Transcribe +gui, font, normal +Gui, Font, s9 +Gui, Add, Button, y+%GUIMargin% x%GUIRowThreeXPos% w%TranscribeButtonWidth% h15 gReloadScript Center, Restart + +Gui, Font, s5 +Gui, Add, StatusBar,Center,This Node: Minutes Transcribed by Node: Total Minutes Transcribed by All Nodes: Total Minutes of All Podcasts: || Everyone: Podcasts Transcribed + +gui, show, w%GuiWidth%, %ScriptName% %ScriptVersion% +Return + +UpdateGUI: +Gui, Submit, NoHide ; , Param2, Param3, Param4] +; msgbox % SelectedDirectoryPath +Return + + + +SelectFile: +if(SelectedDirectoryPath){ + Msgbox, Your already have a directory selected. `nThis script can only handle one or the other at the moment. + return +} +FileSelectFile, SelectedFiles, M3 ; M3 = Multiselect existing files. +if (SelectedFiles = "") +return + +GUIFilesText := StrReplace(SelectedFiles, "`n", "|") + +GuiControl, Text,FilesFilepath, %GUIFilesText% +return + +SelectDirectory: +if(SelectedFiles){ + Msgbox, Your already have individual files selected. `nThis script can only handle one or the other at the moment. + return +} + +; have user select a file within the directory they want transcribed. +; Will later get the directory name from this file +FileSelectFile, SelectedDirectoryPath +if (SelectedDirectoryPath = "") +return + +GuiControl,Text,SelectedDirectoryPath, %SelectedDirectoryPath% + +return + + +GuiClose: +ExitApp + +ReloadScript: +Reload +ExitApp + +Submit: +gui, Submit, NoHide + +if(NTFY){ + IniRead, NTFYURL, Settings.ini, %ScriptName%, NTFYURL, %A_space% + ; Msgbox % "NTFYURL: " NTFYURL + if(!NTFYURL){ + InputBox, NTFYURL, Input NTFY URL, Please input NTFY url for notifications.`nGenerate a URL at: https://ntfy.sh/app + if(ErrorLevel){ + NTFY := 0 + } + else, { ; save url to settings.ini + IniWrite, %NTFYURL%, Settings.ini, %ScriptName%, NTFYURL + } + } + +} + +IniWrite, %CPUThreads%, Settings.ini, %ScriptName%, CPUThreads +IniWrite, %ShowTooltip%, Settings.ini, %ScriptName%, ShowTooltip +IniWrite, %MinutesToPauseBetweenTranscriptions%, Settings.ini, %ScriptName%, MinutesToPauseBetweenTranscriptions +; IniWrite, %ContinueAfterCMDClose%, Settings.ini, %A_ScriptName%, ContinueAfterCMDClose + +if(SelectedDirectoryPath){ + IniWrite, %SelectedDirectoryPath%, Settings.ini, %ScriptName%, SelectedDirectoryPath +} +else, { + IniWrite, %A_space%, Settings.ini, %ScriptName%, SelectedDirectoryPath +} + + +if(!SelectedFiles AND !SelectedDirectoryPath){ + msgbox, Please select individual files or a directory that you want Transcribed. + return +} + + +Status := RunCMD("ffmpeg") +; Msgbox % "Status: " Status +if(!InStr(Status, "ffmpeg version")){ + MsgBox, Error:, FFMPEG was not found in System PATH.`nPlease install it and add it to System PATH to automatically convert files to the Whisper.cpp required 16-bit WAV file + return +} + +Message = Creating Required Variables +ShowTooltipText(Message) + +; if files selected, add them all to array +if(SelectedFiles){ + + SelectedAudioFilesArray := [] ; Create array + + ; loop through all selected files and add them to the array + Loop, parse, SelectedFiles, `n + { + if (A_Index = 1){ + AudioFilesDIR = %A_LoopField% + ; MsgBox, The selected files are all contained in %A_LoopField%. + } + else + { + AudioFileFP = %AudioFilesDIR%\%A_LoopField% + SelectedAudioFilesArray.Push(AudioFileFP) ; Append an item to the array + ; SelectedAudioFilesVAR .= AudioFileFP . "," + } + } +} + + +; if directory selected, loop through all files and add them to the array +if(SelectedDirectoryPath){ + SplitPath, SelectedDirectoryPath, OutFileName, AudioFilesDIR, OutExtension, OutNameNoExt, OutDrive + ; msgbox, adding files in directory to var + SelectedAudioFilesArray := [] ; Create array + + Text = Creating Array of Whitelisted Files (%WhitelistedMediaFilesExtensions%) `nin Directory: %AudioFilesDIR% + ShowTooltipText(Text) + PrePendToErrorLogText(text) + + Loop, files, %AudioFilesDIR%\*.*, F + { + + SplitPath, A_LoopFileFullPath, FileNameWExt, FileDir, FileExt, FileNameNoExt, + + if(InStr(WhitelistedMediaFilesExtensions, FileExt)){ + SelectedAudioFilesArray.Push(A_LoopFileFullPath) + } + } +} + + +; If directory selected, add all files to array + + +; Msgbox % "AudioFilesDIR: " AudioFilesDIR + + + +; KeepCMD := 0 +OverwritePreviousTranscriptions := 0 + +if(KeepCMD){ + KeepCMD := "K" +} +else, { + KeepCMD := "C" +} + +; clear variable from GUI +TranscriptionModelsSelected := + +; push to array each quality selected +if(TinyM Or AllMQualities){ + TranscriptionModels.Push("Tiny") ; Append an item to the array + TranscriptionModelPaths.Push(tinyM_FP) ; Append an item to the array + TranscriptionModelsSelected .= "Tiny|" +} +if(SmallM Or AllMQualities){ + TranscriptionModels.Push("Small") ; Append an item to the array + TranscriptionModelPaths.Push(smallM_FP) ; Append an item to the array + TranscriptionModelsSelected .= "Small|" +} +if(BaseM Or AllMQualities){ + TranscriptionModels.Push("Base") ; Append an item to the array + TranscriptionModelPaths.Push(baseM_FP) ; Append an item to the array + TranscriptionModelsSelected .= "Base|" +} +if(MediumM Or AllMQualities){ + TranscriptionModels.Push("Medium") ; Append an item to the array + TranscriptionModelPaths.Push(mediumM_FP) ; Append an item to the array + TranscriptionModelsSelected .= "Medium|" +} +if(LargeM Or AllMQualities){ + TranscriptionModels.Push("Large") ; Append an item to the array + TranscriptionModelPaths.Push(largeM_FP) ; Append an item to the array + TranscriptionModelsSelected .= "Large|" +} + + +if(TranscriptionModelsSelected = ""){ + ToolTip + Text = Please Select at Least ONE Model to Transcribe With + msgbox, %Text% + return +} +; save selected models to ini files +IniWrite, %TranscriptionModelsSelected%, Settings.ini, %ScriptName%, TranscriptionModelsSelected + +TranscriptionLengthsSelected := +(ShortPodcasts)?(TranscriptionLengthsSelected .= "Short|"):("") +(MediumPodcasts)?(TranscriptionLengthsSelected .= "Medium|"):("") +(LongPodcasts)?(TranscriptionLengthsSelected .= "Long|"):("") + +if(TranscriptionLengthsSelected = ""){ + ToolTip + Text = Please Select the Audio Length you'd like to Transcribe + msgbox, %Text% + return +} + +IniWrite, %TranscriptionLengthsSelected%, Settings.ini, %ScriptName%, TranscriptionLengthsSelected + + +; msgbox + + +text = Creating Required Directories +ShowTooltipText(Text) +FileCreateDir, %AudioFilesDIR%\Transcriptions +FileCreateDir, %AudioFilesDIR%\WAVFiles + + +text = Starting Transcription +ShowTooltipText(Text) +PrePendToErrorLogText(text) + + + +; loop through the array and transcribe using options selected +; Msgbox % TranscriptionModels.Length() ; Display total number of items in the array +; ArrayLenght := TranscriptionModels.Length() ; Save total number of items in the array + + +if(ContinueAfterCMDClose and WinExist("Podcast-Transcription-In-Progress")){ + ; msgbox, cmd found. + Text = Waiting for Current Running Transcription to Finish in CMD + ShowTooltipText(Text) + PrePendToErrorLogText(text) + WinWaitClose, ahk_class ConsoleWindowClass ;, WinText, Seconds [, ExcludeTitle, ExcludeText] + ; msgbox, cmd closed +} + + +; loop for each selected audio file +loop % SelectedAudioFilesArray.Length() { + + + Filepath := SelectedAudioFilesArray[A_Index] + OriginalFilepath := SelectedAudioFilesArray[A_Index] + + SplitPath, Filepath, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive + + ; Convert the file to 16-bit WAV file as required by whisper.cpp + WavFilepath = %AudioFilesDIR%\WAVFiles\%OutNameNoExt%.wav + + ; loop through each selected transcription model + Loop % TranscriptionModels.Length() { + + ModelName := TranscriptionModels[A_Index] + ModelPath := TranscriptionModelPaths[A_Index] + + + ; create filepaths where outputs will be saved to + OutputPath = %AudioFilesDIR%\Transcriptions\%OutNameNoExt%_%ModelName% + OutputModelTxtFile = %AudioFilesDIR%\Transcriptions\%OutNameNoExt%_%ModelName%.txt + OutputTxtFP = %OutputPath%.txt + LogFileFP = %OutputPath%.log + + + Text = Checking for Previous Transcription + ShowTooltipText(Text) + + ; If .txt Transcription file exists, move on to next model + if(FileExist(OutputModelTxtFile)){ + Message :="Skipping " . OutFileName . " - already transcribed with " . ModelName . " Model" + PrePendToErrorLogText(Message) + Continue + } + + ; otherwise check if log file exists from a previous run, or current run on different node (if using shared folder) + if(FileExist(LogFileFP)){ + FileGetTime, LogFileFPModificationTime, %LogFileFP%, M ; + ; EnvSub, Var, Value [, TimeUnits] + EnvSub, LogFileFPModificationTime, A_Now, S ; get hours SINCE last modified + + ; Check if log file was last added to more than 24 hours ago + ; No podcast transcription should take more than that, and it means that a node started, but never finished it + LogFileFPModificationTime := (LogFileFPModificationTime * -1 ) + ; Msgbox % "LogFileFPModificationTime: " LogFileFPModificationTime + if((LogFileFPModificationTime < 86400)){ + text = Skipping %OutFileName% with Model:%ModelName% - Currently being Transcribed by a different node. + PrePendToErrorLogText(text) + ShowTooltipText(Text) + ; sleep, 1000 + Continue + } + } + + + + ; get information about audio file + Obj := Filexpro(Filepath,, + , "Length" + , "Size" ) + AudioLength := obj["Length"] + + AudioLengthArray := StrSplit(AudioLength,":") + TotalTimeInSeconds := ((AudioLengthArray[1] * 60 ) * 60) + (AudioLengthArray[2] * 60) + AudioLengthArray[3] + + + if(ShortPodcasts){ + if(TotalTimeInSeconds > 1860){ ; greater than 31 minutes + Text = Podcast is longer than 30 minutes. Skipping + ShowTooltipText(Text) + PrePendToErrorLogText(text) + ; msgbox, skipping medium/Long podcast + Continue + } + + } + + if(MediumPodcasts){ ; if less than 31 minutes or greater than 61 minutes + if(TotalTimeInSeconds < 1860 OR TotalTimeInSeconds > 3660){ + Text = Podcast is either shorter than 30 minutes or longer than 60 minutes. Skipping + ShowTooltipText(Text) + PrePendToErrorLogText(text) + Continue + } + } + + if(LongPodcasts){ + if(TotalTimeInSeconds < 3660){ + Text = Podcast is shorter than 60 minutes Skipping + ShowTooltipText(Text) + PrePendToErrorLogText(text) + ; msgbox, skipping short/medium podcast + Continue + } + + } + + + + if(FileExist(WavFilepath)){ ; re-use previously converted wav file if it exists + Filepath := WavFilepath + }else, { + text = Converting File: %OutFileName% To 16-bit WAV file + ShowTooltipText(Text) + PrePendToErrorLogText(text) + runwait, %ComSpec% /%KeepCMD% ffmpeg -i "%Filepath%" -ar 16000 -ac 1 -c:a pcm_s16le "%WavFilepath%" + } + + + ; msgbox, checking filepath + if(!FileExist(WavFilepath)){ + Message = WAV file not found at:`n%WavFilepath%`nConversion failed for some reason.`nPlease select the "Keep CMD Open" checkbox and run again to see the error.`nClick OK to exit. + PrePendToErrorLogText(text) + Continue + } + + + + FormatTime, TodayDate , YYYYMMDDHH24MISS,hh:mm + text = Transcription in Progress`nModel: %ModelName% CPU Threads: %CPUThreads% Length: %AudioLength%`nFile: %OutNameNoExt%`nStart Time: %TodayDate% + LogToTextFile(text, LogFileFP) + PrePendToErrorLogText(text) + ShowTooltipText(Text) + ; msgbox + + UStartTime := A_TickCount ; start time + + runwait, %ComSpec% /%KeepCMD% title Podcast-Transcription-In-Progress & %A_scriptdir%\Whisper\main.exe -m %ModelPath% -f "%WavFilepath%" -t %CPUThreads% -otxt -ovtt -osrt -owts -ocsv -of "%OutputPath%" + + URunTime := round(((A_TickCount - UStartTime) / 1000), 2) ; end time + Message = Time to Transcribe: %URunTime% seconds + LogToTextFile(Message, LogFileFP) + + ; get time it took to transcribe in seconds + TranscriptionLength := round(((A_TickCount - UStartTime) / 1000), 2) + + ; if more than 1 hour, convert time to hours:minutes for NTFY message + (TranscriptionLength > 3600)?(NTFYTranscriptionTime := round((TranscriptionLength / 3600),2) . " Hours"):(NTFYTranscriptionTime := TranscriptionLength . " Seconds") + + SecondsToTranscribe1Sec := round((TranscriptionLength / TotalTimeInSeconds), 2) + + ; TotalTimeInSeconds + text = Transcription of %WavFilepath% took a total of %TranscriptionLength% Seconds + LogToTextFile(text, LogFileFP) + PrePendToErrorLogText(text) + + if(NTFY){ + Message = Transcription Complete `nNode: %A_ComputerName% `nFile: %OutNameNoExt% `nAudio Length: %AudioLength%`nModel: %ModelName%`nCPU Threads: %CPUThreads% `nTTTS: %NTFYTranscriptionTime%`nTTS 1 (s): %SecondsToTranscribe1Sec% Seconds + SendMessagetoNTFY(Message, NTFYURL) + } + + } + ; / All transcriptions have been looped through + + ; take a short rest so CPU has time to cool down + ; IF the last model tool longer than 10 seconds to complete (AKA not skipped over) + if(MinutesToPauseBetweenTranscriptions AND TranscriptionLength > 1000){ + if(ModelName = "Medium" OR ModelName="Large"){ + text = Waiting for %MinutesToPauseBetweenTranscriptions% Minutes before moving on to next item + ShowTooltipText(Text) + PrePendToErrorLogText(text) + + MilisecondsToSleep := MinutesToPauseBetweenTranscriptions * 60000 + sleep, %MilisecondsToSleep% + } + + ; reset timer for next loop + TranscriptionLength := + } + + + } + ToolTip + + if(NTFY){ + Message = Node: %A_ComputerName% Has Completed Transcribing ALL Selected Files! ;`nFile: %OutNameNoExt% `nModel: %ModelName%`nCPU Threads: %CPUThreads% `nLength: %AudioLength%`nTime: %TranscriptionLength% Seconds + SendMessagetoNTFY(Message, NTFYURL) + } + + + msgbox, All Transcriptions have been completed. + return + + ; Functions + ;------------------------------------------------ + LogToTextFile(Text, Filepath){ + ; ErrorLoggingFile := Filepath + FileAppend, %Text%`n`n, %Filepath% + } + + ShowTooltipText(Text){ + if(ShowTooltip){ + TooltipFirstLine := StrSplit(Text, "`n") + TooltipFirstLine := TooltipFirstLine[1] + ToolTipLen := StrLen(TooltipFirstLine) + TooltipXPos := A_ScreenWidth / 2 - ((ToolTipLen * 9) / 2) + ; Msgbox % "TooltipXPos: " TooltipXPos + ToolTip, %Text%, %TooltipXPos%, 0 + } + } + + PrePendToErrorLogText(Text){ + ErrorLogText := Text "`n`n" . ErrorLogText + + GuiControl, Text,StatusLog, %ErrorLogText% + } + + + SendMessagetoNTFY(Message, URL){ + + command = powershell (Invoke-RestMethod -Method 'Post' -Uri %URL% -Body '%Message%' -UseBasicParsing) + Status := RunCMD(Command) + ; Msgbox % "Status: " Status + } + + + + + ; -------------------------------FileXPro Get File Attributes------------------------------- + ;https://www.autohotkey.com/boards/viewtopic.php?t=59882 + + Filexpro( sFile := "", Kind := "", P* ) { ; v.90 By SKAN on D1CC @ goo.gl/jyXFo9 + Local + Static xDetails + + If ( sFile = "" ) + { ; Deinit static variable + xDetails := "" + Return + } + + fex := {}, _FileExt := "" + + Loop, Files, % RTrim(sfile,"\*/."), DF + { + If not FileExist( sFile:=A_LoopFileLongPath ) + { + Return + } + + SplitPath, sFile, _FileExt, _Dir, _Ext, _File, _Drv + + If ( p[p.length()] = "xInfo" ) ; Last parameter is xInfo + { + p.Pop() ; Delete parameter + fex.SetCapacity(11) ; Make room for Extra info + fex["_Attrib"] := A_LoopFileAttrib + fex["_Dir"] := _Dir + fex["_Drv"] := _Drv + fex["_Ext"] := _Ext + fex["_File"] := _File + fex["_File.Ext"] := _FileExt + fex["_FilePath"] := sFile + fex["_FileSize"] := A_LoopFileSize + fex["_FileTimeA"] := A_LoopFileTimeAccessed + fex["_FileTimeC"] := A_LoopFileTimeCreated + fex["_FileTimeM"] := A_LoopFileTimeModified + } + Break + } + + If Not ( _FileExt ) ; Filepath not resolved + { + Return + } + + + objShl := ComObjCreate("Shell.Application") + objDir := objShl.NameSpace(_Dir) + objItm := objDir.ParseName(_FileExt) + + If ( VarSetCapacity(xDetails) = 0 ) ; Init static variable + { + i:=-1, xDetails:={}, xDetails.SetCapacity(309) + + While ( i++ < 309 ) + { + xDetails[ objDir.GetDetailsOf(0,i) ] := i + } + + xDetails.Delete("") + } + + If ( Kind and Kind <> objDir.GetDetailsOf(objItm,11) ) ; File isn't desired kind + { + Return + } + + i:=0, nParams:=p.Count(), fex.SetCapacity(nParams + 11) + + While ( i++ < nParams ) + { + Prop := p[i] + + If ( (Dot:=InStr(Prop,".")) and (Prop:=(Dot=1 ? "System":"") . Prop) ) + { + fex[Prop] := objItm.ExtendedProperty(Prop) + Continue + } + + If ( PropNum := xDetails[Prop] ) > -1 + { + fex[Prop] := ObjDir.GetDetailsOf(objItm,PropNum) + Continue + } + } + + fex.SetCapacity(-1) + Return fex + + } ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + ; Misc + ;------------------------------------------------ +; Escape::ExitApp \ No newline at end of file