Stworzenie bardzo dokładnej aplikacji do transkrypcji za pomocą trzech kliknięć wydaje się trudne, ale tak nie jest. Wprowadźmy Whisper do AutoHotkey.

Whisper OpenAI to jedno z najpotężniejszych rozwiązań do przekształcania głosu w tekst. Jednak Whisper może być również irytujący w użyciu, ponieważ musisz wpisać polecenia, aby przepisać plik audio na tekst. Ale po co to robić, skoro mamy AutoHotkey?

Dzięki AutoHotkey możemy bez wysiłku stworzyć podstawowy graficzny interfejs użytkownika dla aplikacji wiersza poleceń, takich jak Whisper. Zróbmy to i zobaczmy, jak możesz stworzyć własną aplikację do transkrypcji, łącząc supermoce AutoHotkey do tworzenia GUI z Whisper OpenAI jako „mózg” za przyciskami.

Kładziemy podwaliny pod Whisper i AutoHotkey

Możesz tworzyć fajne skrypty za pomocą AutoHotkey, ale to nie wszystko, co potrafi. W tym projekcie użyjemy AutoHotkey do stworzenia GUI dla Whisper. To pozwoli nam korzystać z narzędzia sztucznej inteligencji do rozpoznawania głosu OpenAI, klikając przyciski i dostosowując jego funkcjonalność za pomocą menu zamiast wpisywania poleceń.

instagram viewer

Oznacza to jednak, że musisz mieć zainstalowane zarówno AutoHotkey, jak i Whisper, aby śledzić.

W przypadku pierwszej części równania możesz pobierz AutoHotkey z oficjalnej strony, następnie uruchom jego instalator i postępuj zgodnie z przedstawionymi krokami.

Pamiętaj, że użyjemy starszej wersji „v1” języka skryptowego, a nie nowej v2. Jest to ważne, ponieważ obie wersje używają nieco innej składni. To, co zobaczymy tutaj, może nie działać, jeśli używasz nowej wersji v2.

Druga część jest bardziej skomplikowana, ale możesz dowiedzieć się, jak to zrobić, sprawdzając nasz artykuł na temat jak zamienić głos w tekst za pomocą OpenAI's Whisper dla Windows.

Po zainstalowaniu obu, nasz plan działania jest następujący:

  1. Stwórz GUI z elementami dla zmiennych i wartości Whispera.
  2. Twórz funkcje do pobierania wartości z interfejsu, wybieraj pliki i foldery i składaj wszystko w użyteczną komendę Whisper.
  3. Uruchom polecenie Whisper, aby uzyskać wyniki.

Oczywiście zawsze możesz skorzystać z wbudowanej obsługi systemu Windows do pisania głosowego, jak widzieliśmy w naszym artykule na temat jak rozpocząć pisanie głosowe w systemie Windows 11. Mimo to, jak zobaczysz podczas korzystania z niego, Szept jest znacznie dokładniejszy (ale także wolniejszy).

Z bardziej osobistego punktu widzenia powinienem wyjaśnić, że nie jestem programistą, a ten projekt jest „remiksem” rozwiązania stworzonego na własny użytek.

Jak zrobić nowy skrypt AutoHotkey

Pierwszym krokiem jest utworzenie nowego pustego pliku skryptu. Przechowuj go we własnym folderze, na wypadek gdybyś zdecydował się go ulepszyć lub zbudować na nim, tworząc więcej plików.

  1. Uruchom swój ulubiony menedżer plików (lub naciśnij Klucz Windowsa + mi w celu uruchomienia Eksploratora Windows) i utwórz folder dla aplikacji do transkrypcji w dowolnym miejscu.
  2. Kliknij prawym przyciskiem myszy puste miejsce w oknie i wybierz Nowy > Skrypt AutoHotkey aby utworzyć pusty plik skryptu.
  3. Shift + prawy przycisk myszy kliknij plik, aby uzyskać dostęp do pełnego menu kontekstowego i wybierz, aby otworzyć go za pomocą ulubionego edytora kodu lub tekstu. Własny Windows Notatnik zrobi.
  4. Pomimo tego, że jest to „pusty skrypt”, Twój plik AHK będzie już wstępnie wypełniony pewnymi „rzeczami”. Są to przydatne zmienne i flagi AutoHotkey, które określają, jak powinien działać na pulpicie. Zignoruj ​​je, zostaw tak, jak są, i pisz pod nimi całą swoją przyszłość.

Zapoznanie się z flagami Whisper

Ponieważ tworzymy GUI dla aplikacji wiersza poleceń, warto mieć odniesienie do jej głównych zmiennych i flag, których będziemy używać w naszym projekcie. Możesz je sprawdzić, czytając dokumentację Whisper, odwiedzając jego oficjalna strona Githubi uruchamiając go w swoim terminalu.

Wymienimy te, których użyjemy w tym projekcie dla wygody. Sugerujemy dodanie ich do skryptu jako komentarzy (w osobnych wierszach, każdy zaczynający się od znaku „;”, po którym następuje spacja).

; Szeptane flagi:; --initial_prompt PROMPT_TEXT; --output_format txt; -o FOLDER_WYJŚCIOWY; --model MODEL_TO_USE; --task TRANSKRYBUJ/TŁUMACZ; --język EN/EL

Tworzenie GUI za pomocą AutoHotkey

Sugerujemy podzielenie skryptu na sekcje za pomocą komentarzy, tak jak my to zrobiliśmy, aby zachować porządek. Zaczniemy od zdefiniowania niektórych zmiennych, przejdziemy do rzeczywistego GUI, a skończymy na zdefiniowaniu jego funkcji.

Zaczniemy od sekcji, w której zdefiniujemy zmienne, które możemy chcieć zmienić w przyszłości, ale nie tak często, żebyśmy chcieli je ujawniać za pomocą GUI, nadmiernie komplikując to. Możesz wpisać „Nazwa_zmiennej = zawartość lub wartość zmiennej” z jedną parą zmiennych i wartości w wierszu.

Dla tego projektu zdefiniowaliśmy a Format wyjściowy zmienna, którą ustawiamy na „tekst„wartość i A WhisperPlik wykonywalny zmienna stwierdzająca Nazwa pliku wykonywalnego Whisper. W ten sposób, jeśli w przyszłości będziemy chcieli korzystać z tego samego rozwiązania do tworzenia plików napisów SRT zamiast dokumentów TXT lub szepnij/przełącz się na alternatywną aplikację, możemy dostosować wartości tych zmiennych w tym jednym miejscu zamiast w całym scenariusz.

OutputFormat = txtWhisperExecutable = szept

Konfigurowanie opcji użytkownika

Podczas korzystania z Whisper w wierszu poleceń trzy jego flagi pozwalają zdefiniować:

  • Jeśli robisz tłumaczenie Lub transkrypcja
  • Plik audio język
  • Język Model chcesz użyć (dostępne są różne rozmiary, z których każdy wpływa na wydajność VS jakość wyników).

Najłatwiejszym sposobem na zaoferowanie tej samej funkcjonalności za pomocą GUI są wypróbowane i przetestowane listy rozwijane. Składnia dodawania listy rozwijanej do GUI AutoHotkey jest następująca:

Gui, Add, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, opcjaA|opcjaB|opcja_domyślnaC||opcjaD|

Na tej podstawie dodajmy do naszego skryptu trzy rozwijane listy wyboru języka Whisper (między angielski/en i grecki/el), model (mały, podstawowy, mały, średni, duży) i typ zadania (transkrypcja lub Tłumaczyć).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, mały|podstawowy|mały||średni|duży|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transkrybuj||tłumacz|

Aby ustawić opcję jako wybór domyślny, użyj po niej symbolu podwójnej kreski („|”). Jak widać, w naszym przykładzie ustawiliśmy nasz język na en, Wybrany Model do małyi Typ zadania do rozpisać.

Jak kierować szeptem

Ponieważ Whisper jest oparty na sztucznej inteligencji, nie ma możliwości uzyskania absolutnej kontroli nad tym, jak Whisper dokonuje transkrypcji dźwięku. Może wybrać to, co uważa za optymalne.

Jednak podobnie jak inne rozwiązania AI, Whisper może akceptować podpowiedzi użytkownika. Tworząc monit, możesz „kierować” transkrypcją dźwięku.

Czy rozwiązanie, które tworzymy, nie dokonało poprawnej transkrypcji? Możesz spróbować „wyjaśnić” Whisper „o czym jest plik głosowy”, w tym składnię słów, akronimów i fraz w monicie, tak jak chcesz, aby pojawiły się w transkrypcji. W tym celu dodamy pole edycji tekstu AutoHotkey.

Składnia nie różni się zbytnio od tej, której użyliśmy do dodawania list rozwijanych powyżej:

Gui, dodaj, edytuj, x5 w505 h400 vPromptText, %PromptText%

„%PromptText%” na końcu „mówi” AHK, aby pokazał zawartość zmiennej PromptText (jeśli ma już przypisaną wartość) w polu tekstowym. Nie pokaże niczego w tworzonym przez nas skrypcie, ale potraktuj to jako symbol zastępczy, kiedy ostatecznie dostosujesz skrypt w przyszłości, aby zapisywać i ładować monity!

Czy wolisz przypisać wstępnie zdefiniowaną wartość do pliku PromptTekst zmienny? Dodaj coś takiego jak poniżej do pliku Zmienne część skryptu. Pamiętaj, aby zastąpić „Twoje imię” swoim prawdziwym imieniem i nazwiskiem.

PromptText = Transkrypcja notatek twojego imienia

Konfigurowanie przycisków akcji

Do wybierania plików, folderów i uruchamiania Whispera po skonfigurowaniu wszystkiego lepiej użyć przycisków. Możesz dodać przyciski do interfejsu utworzonego przez AHK, używając następujących elementów:

Gui, Add, Button, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text

Zauważ, że w przeciwieństwie do zmiennych w elementach GUI, które zaczynają się na literę „v”, nazwy funkcji zaczynają się na „g”, co oznacza „Idź (do tego miejsca skryptu)”.

Pojedynczy przycisk interfejsu AHK można również uznać za „domyślny”, który zostanie aktywowany, jeśli nie klikniesz w dowolnym miejscu GUI i nie naciśniesz Wchodzić. Jest to zdefiniowane przez dodanie „domyślny” w sekcji współrzędnych i funkcji, jak zauważysz w naszym przycisku „OK”:

Gui, dodaj, przycisk, x5 w505 h50 gSelectFile, Obciążenie FileGui, Dodać, Przycisk, x5 w505 h50 gSelectFolder, WybieraćWyjście Teczka
Gui, Dodaj, Przycisk, Domyślny x5 w505 h50 gButtonSubmit, OK

Mając powyższe na uwadze, definiujemy trzy przyciski:

  • Jeden oznaczony „Załaduj plik", który po kliknięciu uruchomi plik Wybierz plik funkcjonować.
  • Jeden oznaczony „Wybierz folder wyjściowy", który będzie uruchamiał Wybierz katalog funkcjonować.
  • Jeden oznaczony „OK", domyślnie wybrany, "dzwoniąc" do Przycisk Prześlij funkcjonować.

Jak pokazać swój GUI

Nasz GUI jest gotowy, ale nie pojawi się na naszym ekranie, ponieważ nie „powiedzieliśmy” AutoHotkey, aby go pokazywał ani co powinien robić każdy przycisk.

W tym celu dodaj następujące dwa wiersze poniżej tych, które definiują Twój GUI:

Gui, ShowReturn

Pierwsza linia „mówi” AHK, aby pokazała okno GUI, podczas gdy druga oznacza koniec sekcji.

Funkcje i funkcjonalność naszej aplikacji

Chociaż zakończyliśmy sekcję GUI, jeśli spróbujesz uruchomić skrypt, ulegnie on awarii. To dlatego, że odwołujemy się w nim do nieistniejących funkcji. Więc naszym następnym krokiem jest stworzenie tych funkcji.

Trzy funkcje, które chcemy, to:

  • Wybierz plik wejściowy.
  • Wybierz folder wyjściowy, w którym będzie przechowywany transkrybowany plik.
  • Stwórz polecenie, które „złoży” wszystkie zmienne w użyteczną komendę Whisper, podobną do tego, co sami wpiszemy w terminalu, a następnie uruchomimy.

Wybór pliku wejściowego

Pierwsza funkcja, którą już nazwaliśmy „Wybierz plik”, kiedy dodaliśmy jego przycisk do GUI, to:

Wybierz plik:PlikWybierz plik, Wybrany plikPowrót

PlikWybierz plik to funkcja AutoHotkey, która wyświetla typowy requester plików, umożliwiając użytkownikowi wybranie pliku. Wybrany plik to zmienna w naszym skrypcie, która „przechowuje” ścieżkę do pliku wybranego przez użytkownika.

Jednak, jak zobaczysz na naszych zrzutach ekranu, dodaliśmy również następujący wiersz tuż nad zakończeniem funkcji „return”:

MsgBox, %Wybrany plik%

Spowoduje to, że AHK pokaże a Skrzynka pocztowa z wybranym plikiem po jego wybraniu, co jest przydatne podczas rozwiązywania problemów ze skryptem. Jeśli to okno komunikatu pokazuje ścieżkę i nazwę wybranego pliku, oznacza to, że to nie przycisk lub funkcja wyboru pliku wymaga naprawy.

Wybór folderu wyjściowego

Funkcja wyboru folderu jest prawie identyczna, zmienia się tylko nazwa polecenia i zmienna, aby pokazać, że mamy do czynienia z folderami zamiast plikami:

Wybierz folder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Powrót

Funkcja końcowa

Ostatnia funkcja będzie najbardziej skomplikowana. Zmapowane do przycisku OK, spowoduje to „zebranie” wszystkich wartości zmiennych z GUI, przekształcenie ich w użyteczne polecenie, a następnie uruchomienie.

Zaczynamy od podania początku i końca funkcji:

Przycisk Prześlij:Powrót

Aby „chwycić” wszystkie wartości GUI, dodaj następujące elementy pod Przycisk Prześlij linia:

Gui Prześlij, nie ukrywaj

Poniższy wiersz tworzy nową zmienną o nazwie „Flagi szeptane". Następnie dodaje do niego wszystkie zmienne GUI jako flagi dla polecenia Whisper.

WhisperFlags = --initial_prompt „%Tekst podpowiedzi%” --task %TypZadania% --model %WybranyModel% --język %WybranyJęzyk% --output_format %OutputFormat% -o „%Wybrany folder%”„%Wybrany plik%”

Następnie „poinformujemy” AHK, aby użył domyślnego terminala (CMD.exe) do uruchomienia pliku wykonywalnego Whisper (który zdefiniowaliśmy za pomocą WhisperPlik wykonywalny zmienna) ze zmiennymi GUI (które są teraz „zmontowane” w pliku single Flagi szeptane zmienny).

RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%

W celu jeszcze łatwiejszego rozwiązywania problemów dodaliśmy również msgbox, tak jak poprzednio, ale także dodaliśmy następujący wiersz:

Schowek = %WhisperExecutable% %WhisperFlags%

Spowoduje to skopiowanie do Schowek kompletne polecenie wydane CMD. Tak więc, jeśli coś się nie powiedzie, zamiast widzieć polecenie tylko w jednym z okien wiadomości AHK, będziesz mieć je również dostępne w swoim schowku.

Otwórz terminal, wklej polecenie ze schowka i sprawdź wyskakujące błędy, aby zlokalizować potencjalne problemy.

Na przykład, pracując nad skryptem, początkowo zapomniałem umieścić znak zachęty w cudzysłowie. W związku z tym polecenie nie powiodło się, ponieważ Whisper próbował przeanalizować monit jako flagi.

Testy i ostateczne poprawki

To wszystko — właśnie stworzyliśmy aplikację do transkrypcji, korzystając z możliwości tworzenia GUI AutoHotkey i gotowego do użycia rozwiązania do transkrypcji AI.

Spróbuj uruchomić skrypt (kliknij dwukrotnie jego plik), a na ekranie powinien pojawić się GUI.

  • Zmień ustawienia Whisper, korzystając z rozwijanych list u góry.
  • Wpisz krótki opis transkrypcji (i niektórych terminów) w pliku Podpowiedź pole.
  • Kliknij Załaduj plik i wybierz plik audio, który chcesz transkrybować.
  • Kliknij Wybierz folder wyjściowy i wybierz miejsce, w którym ma zostać zapisany wygenerowany plik tekstowy.
  • Kliknij OK aby uwolnić Whisper, zgodnie z konfiguracją twojego GUI, na wybranym pliku audio i zapisać jego transkrypcję jako plik tekstowy w wybranym folderze.

Jeśli wszystko zadziałało, wróć do skryptu i usuń lub skomentuj (dodając „;” na początku) wszystkie funkcje rozwiązywania problemów (okna komunikatów i wiersze kopiowania do schowka).

Dalszy rozwój Whisper dzięki AutoHotkey

Prawidłowo ustawiając domyślne wartości GUI i być może dodając ogólny monit, możesz zmienić Whisper w rozwiązanie polegające na transkrypcji po trzech kliknięciach: brak płacenia za rozwiązania komercyjne, usługi stron trzecich, majstrowanie przy skomplikowanych interfejsach lub wpisując w terminalu.