Cara Membuat Aplikasi Transkripsi Windows Anda Sendiri Dengan Whisper dan AutoHotkey

Bisikan OpenAI adalah salah satu solusi paling ampuh untuk mengubah suara Anda menjadi teks. Namun, Whisper juga bisa mengganggu untuk digunakan, karena Anda harus mengetikkan perintah untuk menyalin file audio menjadi teks. Tapi mengapa melakukan itu saat kita punya AutoHotkey?

Dengan AutoHotkey, kita dapat dengan mudah membuat GUI dasar untuk aplikasi baris perintah seperti Whisper. Jadi, mari kita lakukan itu dan lihat bagaimana Anda dapat membuat aplikasi transkripsi Anda sendiri dengan menggabungkan kekuatan super pembuat GUI AutoHotkey dengan Whisper OpenAI sebagai “otak” di balik tombol.

Meletakkan Fondasi untuk Whisper dan AutoHotkey

Anda dapat membuat skrip keren dengan AutoHotkey, tetapi tidak hanya itu yang dapat dilakukan. Untuk proyek ini, kami akan menggunakan AutoHotkey untuk membuat GUI untuk Whisper. Ini akan memungkinkan kita untuk menggunakan alat AI pengenalan suara OpenAI dengan mengklik tombol dan menyesuaikan fungsinya menggunakan menu alih-alih mengetik perintah.

Namun, ini berarti Anda harus menginstal AutoHotkey dan Whisper untuk mengikuti.

Untuk bagian pertama persamaan, Anda bisa unduh AutoHotkey dari situs resminyalalu jalankan penginstalnya dan ikuti langkah-langkah yang disajikan.

Perhatikan bahwa kami akan menggunakan bahasa scripting versi “v1” yang lebih lama, bukan v2 baru. Itu penting karena kedua versi menggunakan sintaks yang agak berbeda. Apa yang akan kita lihat di sini mungkin tidak berfungsi jika menggunakan v2 baru.

Bagian kedua lebih rumit, tetapi Anda dapat mempelajari cara melakukannya dengan membaca artikel kami tentang cara mengubah suara Anda menjadi teks dengan Whisper OpenAI untuk Windows.

Dengan keduanya terpasang, rencana tindakan kami adalah sebagai berikut:

  • Buat GUI dengan elemen untuk variabel dan nilai Whisper.
  • Buat fungsi untuk mengambil nilai dari antarmuka, pilih file dan folder, dan kumpulkan semuanya menjadi perintah Whisper yang dapat digunakan.
  • Jalankan perintah Whisper untuk menghasilkan hasil.
  • Tentu saja, Anda selalu dapat menggunakan dukungan bawaan Windows untuk Pengetikan Suara, seperti yang kita lihat di artikel kami tentang cara memulai Pengetikan Suara di Windows 11. Namun, seperti yang akan Anda lihat saat menggunakannya, Whisper jauh lebih akurat (tetapi juga lebih lambat).

    Pada catatan yang lebih pribadi, saya harus menjelaskan bahwa saya bukan seorang programmer, dan proyek ini adalah “remix” dari solusi yang dibuat untuk penggunaan pribadi.

    Cara Membuat Script AutoHotkey Baru

    Langkah pertama adalah membuat file skrip kosong baru. Simpan di foldernya sendiri, kalau-kalau Anda memutuskan untuk men-tweak atau membangunnya, membuat lebih banyak file.

  • Jalankan pengelola file favorit Anda (atau tekan Windows Key + E untuk meluncurkan Windows Explorer) dan buat folder untuk aplikasi transkripsi Anda di mana pun Anda suka.
  • Klik kanan pada tempat kosong di jendela dan pilih New > AutoHotkey Script untuk membuat file skrip kosong.
  • Shift + Klik kanan pada file untuk mengakses menu konteks lengkap dan pilih untuk membukanya dengan kode atau editor teks favorit Anda. Notepad Windows sendiri akan melakukannya.
  • Meskipun merupakan “skrip kosong”, file AHK Anda sudah diisi sebelumnya dengan beberapa “barang”. Itu adalah variabel dan flag AutoHotkey yang berguna yang menentukan cara kerjanya di desktop Anda. Abaikan mereka, biarkan apa adanya, dan lakukan semua pengetikan masa depan Anda di bawahnya.
  •   Cara Melihat Ukuran Konten Recycle Bin Pada Windows 10

    Mengenal Bendera Whisper

    Karena kita membuat GUI untuk aplikasi baris perintah, sangat berguna untuk memiliki referensi ke variabel dan flag utamanya yang akan kita gunakan dalam proyek kita. Anda dapat memeriksanya dengan membaca dokumentasi Whisper, mengunjungi halaman Github resminyadan menjalankannya di terminal Anda.

    Kami akan mencantumkan yang akan kami gunakan dalam proyek ini untuk kenyamanan. Kami menyarankan Anda untuk menambahkannya ke skrip Anda sebagai komentar (di baris terpisah, masing-masing diawali dengan karakter “;” diikuti dengan spasi).

     ; Whisper Flags:;  

    Membuat GUI Dengan AutoHotkey

    Kami sarankan Anda membagi skrip Anda menjadi beberapa bagian menggunakan komentar seperti yang kami lakukan untuk menjaganya tetap teratur. Kami akan mulai dengan mendefinisikan beberapa variabel, melanjutkan ke GUI yang sebenarnya, dan diakhiri dengan mendefinisikan fungsinya.

    Menetapkan Variabel Tersembunyi

    Kita mulai dengan bagian di mana kita akan menentukan variabel yang mungkin ingin kita ubah di masa mendatang, tetapi tidak terlalu sering sehingga kita ingin mengeksposnya melalui GUI, membuatnya terlalu rumit. Anda dapat mengetikkan “Nama_Variabel = Konten atau nilai variabel” dengan satu variabel dan pasangan nilai per baris.

    Untuk proyek ini, kami telah menetapkan variabel OutputFormat yang kami atur ke nilai “txt” dan variabel WhisperExecutable yang menyatakan nama file yang dapat dieksekusi Whisper. Dengan cara ini, jika kita ingin menggunakan solusi yang sama di masa mendatang untuk membuat file subtitel SRT alih-alih dokumen TXT atau memutakhirkan Whisper/switch ke aplikasi alternatif, kita dapat menyesuaikan nilai variabel tersebut di satu tempat, bukan di seluruh skrip .

     OutputFormat = txtWhisperExecutable = whisper 

    Menyiapkan Opsi Pengguna

    Saat menggunakan Whisper pada baris perintah, tiga benderanya memungkinkan Anda untuk menentukan:

    • Jika Anda melakukan terjemahan atau transkripsi
    • Bahasa file audio
    • Model bahasa yang ingin Anda gunakan (tersedia berbagai ukuran, masing-masing memengaruhi performa VS kualitas hasil).

    Cara termudah untuk menawarkan fungsionalitas yang sama melalui GUI adalah melalui daftar drop-down yang dicoba dan diuji. Sintaks untuk menambahkan daftar drop-down ke GUI AutoHotkey adalah sebagai berikut:

     Gui, Add, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD| 

    Berdasarkan itu, mari tambahkan tiga daftar drop-down ke skrip kita untuk memilih bahasa Whisper (antara Inggris/en dan Yunani/el), model (kecil, dasar, kecil, sedang, besar), dan jenis tugas (transkrip atau terjemahkan) .

     Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
    Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, tiny|base|small||medium|large|
    Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transcribe||translate|

    Untuk menyetel opsi sebagai pilihan default, gunakan simbol pipa ganda (“|”) setelahnya. Anda dapat melihat bahwa, dalam contoh kami, kami telah mengatur bahasa kami ke en, SelectedModel ke small, dan TaskType untuk ditranskripsi.

    Cara Memandu Whisper

    Karena Whisper berbasis AI, tidak ada cara untuk memiliki kontrol mutlak atas cara Whisper mentranskripsikan audio. Bebas memilih apa yang dianggap optimal.

      Cara Mendapatkan Slide Untuk Shutdown Pada Windows 10

    Namun, seperti solusi AI lainnya, Whisper dapat menerima permintaan pengguna. Dengan membuat prompt, Anda dapat “memandu” cara mentranskripsikan audio Anda.

    Apakah solusi yang kami buat gagal Mentranskripsikan sesuatu dengan benar? Anda dapat mencoba “menjelaskan” ke Whisper “tentang apa file suara itu”, termasuk sintaksis kata, akronim, dan frasa di prompt Anda seperti yang Anda inginkan untuk muncul dalam transkripsi. Untuk itu, kami akan menambahkan bidang Edit Teks AutoHotkey.

    Sintaksnya tidak terlalu berbeda dengan yang kami gunakan untuk menambahkan daftar drop-down di atas:

     Gui, Add, Edit, x5 w505 h400 vPromptText, %PromptText% 

    “%PromptText%” di bagian akhir “memberi tahu” AHK untuk menampilkan konten variabel PromptText (jika sudah diberi nilai) di dalam bidang teks. Itu tidak akan menunjukkan apa pun dalam skrip yang kami buat, tetapi anggap itu sebagai pengganti ketika Anda akhirnya men-tweak skrip di masa mendatang juga untuk menyimpan dan memuat perintah!

    Apakah Anda lebih suka menetapkan nilai yang telah ditentukan sebelumnya ke variabel PromptText? Tambahkan sesuatu seperti berikut ke bagian Variabel skrip. Ingatlah untuk mengganti “Nama Anda” dengan nama Anda yang sebenarnya.

     PromptText = Transcription of Your Name's notes 

    Menyiapkan Tombol Tindakan

    Untuk memilih file, folder, dan menjalankan Whisper setelah kita mengatur semuanya, lebih baik menggunakan tombol. Anda dapat menambahkan tombol ke antarmuka buatan AHK menggunakan yang berikut ini:

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

    Perhatikan bahwa tidak seperti variabel dalam elemen GUI, yang dimulai dengan huruf “v”, nama fungsi dimulai dengan “g”, untuk “Go (to this spot of the script)”.

    Satu tombol antarmuka AHK juga dapat dianggap sebagai “yang default”, yang akan diaktifkan jika Anda tidak mengklik di mana pun pada GUI dan menekan Enter. Ini didefinisikan dengan menambahkan “default” di bagian koordinat-dan-fungsi, seperti yang akan Anda lihat di tombol “OK” kami:

     Gui, Add, Button, x5 w505 h50 gSelectFile, Load FileGui, Add, Button, x5 w505 h50 gSelectFolder, Choose Output Folder
    ​​​​​​​Gui, Add, Button, Default x5 w505 h50 gButtonSubmit, OK

    Dengan yang di atas, kami mendefinisikan tiga tombol:

    • Satu berlabel “Muat File” yang, ketika diklik, akan menjalankan fungsi SelectFile.
    • Satu berlabel “Pilih Folder Keluaran”, yang akan menjalankan fungsi SelectFolder.
    • Satu berlabel “OK”, dipilih secara default, “memanggil” fungsi ButtonSubmit.

    Cara Menampilkan GUI Anda

    GUI kami siap tetapi tidak akan muncul di layar kami karena kami belum “memberi tahu” AutoHotkey untuk menampilkannya atau apa yang harus dilakukan setiap tombol.

    Untuk itu, tambahkan dua baris berikut di bawah yang menentukan GUI Anda:

     Gui, ShowReturn 

    Baris pertama “memberitahukan” AHK untuk menampilkan jendela GUI, sedangkan baris kedua menandai akhir dari bagian tersebut.

    Fungsi dan Fungsi Aplikasi Kami

    Meskipun kami telah menyelesaikan bagian GUI, jika Anda mencoba menjalankan skrip, itu akan macet. Itu karena kami mereferensikan fungsi yang tidak ada di dalamnya. Jadi, langkah kita selanjutnya adalah membuat fungsi-fungsi itu.

    Tiga fungsi yang kami inginkan adalah:

    • Pilih file masukan.
    • Pilih folder keluaran tempat file yang ditranskripsi akan disimpan.
    • Buat perintah yang akan “merakit” semua variabel menjadi perintah Whisper yang dapat digunakan, mirip dengan apa yang kita ketik sendiri di terminal, lalu jalankan.
      Panduan Lengkap untuk Sticky Keys di Windows 10/11 [2022]

    Pemilihan File Masukan

    Fungsi pertama, yang telah kami beri nama “SelectFile” saat kami menambahkan tombolnya ke GUI, adalah:

     SelectFile:FileSelectFile, SelectedFileReturn 

    FileSelectFile adalah fungsi AutoHotkey yang menampilkan pemohon file biasa, memungkinkan pengguna untuk memilih file. SelectedFile adalah variabel dalam skrip kami yang akan “menahan” jalur ke file yang dipilih pengguna.

    Namun, seperti yang akan Anda lihat di tangkapan layar kami, kami juga telah menambahkan baris berikut tepat di atas akhiran fungsi “return”:

     MsgBox, %SelectedFile% 

    Ini akan membuat AHK menampilkan Kotak Pesan dengan file yang dipilih setelah kami memilihnya, yang berguna saat memecahkan masalah skrip Anda. Jika kotak pesan ini menunjukkan jalur dan nama file yang Anda pilih, bukan tombol atau fungsi pemilihan file Anda yang perlu diperbaiki.

    Pemilihan Folder Keluaran

    Fungsi untuk memilih folder hampir identik, dengan hanya mengubah nama perintah dan variabel, untuk menunjukkan bahwa kita berurusan dengan folder, bukan file:

     SelectFolder:FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Return 

    Fungsi Akhir

    Fungsi terakhir akan menjadi yang paling rumit. Dipetakan ke tombol OK, ini akan “mengumpulkan” semua nilai variabel dari GUI, mengubahnya menjadi perintah yang dapat digunakan, dan kemudian menjalankannya.

    Kita mulai dengan menyatakan awal dan akhir fungsi:

     ButtonSubmit:Return 

    Untuk “mengambil” semua nilai GUI, tambahkan berikut ini di bawah baris ButtonSubmit:

     Gui Submit, nohide 

    Baris berikut membuat variabel baru bernama “WhisperFlags”. Itu kemudian menambahkan semua variabel GUI sebagai bendera untuk perintah Whisper.

     WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%" "%SelectedFile%" 

    Selanjutnya, kita akan “memberi tahu” AHK untuk menggunakan terminal default (CMD.exe) untuk menjalankan Whisper’s executable (yang kita definisikan dengan variabel WhisperExecutable) dengan variabel GUI (yang sekarang “dirakit” dalam satu variabel WhisperFlags).

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

    Untuk pemecahan masalah yang lebih mudah, kami juga menambahkan kotak pesan, seperti sebelumnya, tetapi juga menambahkan baris berikut:

     Clipboard = %WhisperExecutable% %WhisperFlags% 

    Ini akan menyalin ke Clipboard perintah lengkap yang dikeluarkan untuk CMD. Jadi, jika ada yang gagal, alih-alih hanya melihat perintah di salah satu kotak pesan AHK, Anda juga akan menyediakannya di Clipboard Anda.

    Buka terminal, rekatkan perintah dari Clipboard, dan periksa kesalahan yang muncul untuk menemukan potensi masalah.

    Misalnya, saat mengerjakan skrip, saya awalnya lupa untuk menyertakan perintah di dalam tanda kutip. Dengan demikian, perintah tersebut gagal, karena Whisper mencoba mengurai prompt sebagai flag.

    Pengujian dan Tweak Terakhir

    Itu saja—kami baru saja membuat aplikasi transkripsi menggunakan kemampuan pembuatan GUI AutoHotkey dan solusi transkripsi AI siap pakai.

    Coba jalankan skrip Anda (klik dua kali file-nya), dan Anda akan melihat GUI Anda di layar.

    • Ubah pengaturan Whisper menggunakan daftar drop-down di bagian atas.
    • Ketik deskripsi singkat tentang transkripsi Anda (dan beberapa istilah) di bidang Prompt.
    • Klik tombol Load File dan pilih file audio yang ingin Anda transkripsikan.
    • Klik tombol Pilih Folder Output dan pilih di mana file teks yang dihasilkan harus disimpan.
    • Klik OK untuk melepaskan Whisper, seperti yang dikonfigurasi oleh GUI Anda, pada file audio pilihan Anda, dan simpan transkripsinya sebagai file teks di folder yang Anda pilih.

    Jika semuanya berhasil, kembali ke skrip Anda dan hapus atau Komentari (dengan menambahkan “;” di awal) semua fungsi pemecahan masalah (kotak pesan dan baris salin ke Clipboard).

    Mengambil Whisper Lebih Jauh Dengan AutoHotkey

    Dengan mengatur dengan benar nilai default GUI Anda dan mungkin menambahkan permintaan umum, Anda dapat mengubah Whisper menjadi solusi tiga-klik-untuk-transkrip: Tidak perlu membayar untuk solusi komersial, layanan pihak ketiga, mengutak-atik antarmuka yang rumit, atau mengetik terminal.