Bla s peech-to- t ext memungkinkan Anda memiliki teks memasukkan BLA (h) dari ucapan di Linux, dengan pintasan keyboard dan whisper.cpp. Nyalakan mikrofon Anda dan lakukan pengenalan suara multibahasa berkualitas tinggi secara offline. Diperpanjang dengan LLM lokal, menjadi alat yang kuat untuk berkomunikasi dengan komputer Linux Anda.
Blahst mungkin adalah alat input ucapan-ke-teks berbasis bisikan paling ramping untuk Linux, duduk di atas Whisper.cpp.
wsiml khususMenggunakan alat-alat baris perintah rendah, yang dioptimalkan, input teks yang diucapkan terjadi dengan sangat cepat. Berikut ini adalah video demonstrasi (tolong, lepaskan audio) dengan beberapa fitur LLM lokal (asisten AI, penerjemah, penjadwal, panduan CLI dalam tahap pengujian):
Dalam video di atas, audio dimulai dengan sistem yang mengumumkan screencasting (ekstensi gnome saya "voluble" berbicara outdoud semua pemberitahuan desktop gnome), diikuti oleh beberapa putaran input/pengakuan bicara. Demonstrasi pada akhirnya adalah salah satu "fungsi AI" upcomming yang menggunakan teks yang ditranskripsikan oleh Blahst (Whisper.cpp), memformatnya menjadi prompt LLM dan mengirimkannya ke LLM multibahasa lokal (llama.cpp atau llamafile) yang mengembalikan terjemahan Cina sebagai teks dan juga berbicara menggunakannya. Mengatur ini dari garis perintah dengan lean executable membuat sistem secara mengejutkan tajam (dari video Anda dapat melihat bahwa PC nyaris tidak berkeringat - suhu tetap rendah.)
Video di atas (tolong unmute) menunjukkan penggunaan blooper, dimodifikasi dari WSI untuk ditranskripsikan dalam satu loop, sampai pengguna mengakhiri input ucapan dengan jeda yang lebih panjang (~ 3sec sebagai preset). Dengan menggunakan XDOTOOL (atau YDOTOOL untuk pengguna Wayland), teks ditempelkan secara otomatis pada jeda apa pun (atau pada interupsi hotkey). Untuk video di atas, pidato dihasilkan dengan suara sintetis dan dikumpulkan oleh mikrofon. Ini memungkinkan saya untuk mengedit teks secara bersamaan (multitaskers, jangan coba ini di rumah :). Pada akhirnya, ikon mikrofon bar atas harus hilang, menunjukkan keluar program. Itu tidak terjadi dalam video karena utilitas screencast juga memiliki klaim pada ikon tersebut.
Gagasan dengan Blahst adalah menjadi perangkat lunak bebas UI yang setara dengan serangan Mongol; Ledakan pendek dan kuat aksi CPU/GPU dan kemudian benar -benar hilang, dengan hanya jejak tekstual di clipboard dan damai desktop relatif. Cukup gunakan sepasang hotkey untuk memulai dan berhenti merekam dari mikrofon dan kirim pidato yang direkam ke Whisper.cpp [server] yang membuang teks transkrip ke dalam clipboard (kecuali jika Anda melewatinya dengan LLM lokal sebelum itu). Pendekatan universal yang harus bekerja di sebagian besar lingkungan dan distribusi desktop Linux.
Pekerjaan dilakukan oleh salah satu skrip:
Pengenalan ucapan dilakukan oleh Whisper.cpp yang harus dikompilasi pada sistem Linux Anda atau tersedia sebagai instance server di LAN atau LocalHost Anda. Alternativelly, Anda dapat memilih untuk hanya mengunduh dan menggunakan whisperfile yang benar -benar dapat dieksekusi (dengan model bisikan tertanam), sekarang bagian dari repositori Llamafile.
Ketika input bicara dimulai dengan hotkey, indikator mikrofon muncul di bilah atas (setidaknya di GNOME) dan ditampilkan selama durasi perekaman (dapat diinterupsi dengan hotkey lain). Hilangnya ikon mikrofon dari bilah atas menunjukkan penyelesaian dan teks yang ditranskripsikan dapat ditempelkan dari clipboard. Pada sistem yang lebih lambat mungkin ada sedikit penundaan setelah ikon mikrofon menghilang dan sebelum teks mencapai clipboard karena waktu transkripsi yang lebih lama. Di komputer saya, melalui API server Whisper.cpp, kurang dari 150 ms (300 ms dengan whisper.cpp lokal) untuk paragraf rata -rata teks lisan.
Untuk operasi khusus keyboard, dengan CTRL+V standar misalnya, clipboard standar akan digunakan di bawah X11 dan Wayland ( wsi atau wsiml ), sedangkan wsi -p (atau wsiml -p ) menggunakan penjualan primer dan teks ditempelkan dengan tombol mouse tengah). Untuk pasta kiri, perekaman bicara dapat diturunkan ke hotkey yang dipicu dengan tangan kanan. ** Misalnya saya telah mengatur tombol "+" yang tidak digunakan (mulai merekam) dan "masukkan" (berhenti merekam) pada keypad numerik.


install-wsi menangani sebagian besar dari ini).Penafian: Penulis tidak mengambil kredit atau memikul tanggung jawab atas hasil apa pun yang mungkin atau mungkin tidak dihasilkan dari berinteraksi dengan isi dokumen ini. Tindakan dan otomatisasi yang diusulkan (misalnya lokasi instalasi dll.) Hanyalah saran dan didasarkan pada pilihan dan pendapat penulis. Karena mereka mungkin tidak sesuai dengan rasanya atau situasi tertentu dari semua orang, tolong, sesuaikan sesuai kebutuhan.
Dalam folder pilihan Anda, klon Repositori Blahst dan kemudian pilih metode instalasi dari bawah:
git clone https://github.com/QuantiusBenignus/BlahST.git
cd ./BlahST
(Dengan asumsi whisper.cpp diinstal dan "utama" yang dapat dieksekusi dikompilasi dengan 'make' di repo wisper.cpp yang dikloning. Lihat bagian prasyarat)
cd $HOME/.local/bin; chmod +x wsi wsiAI wsiml
$HOME/.local/bin/ (bagian dari jalur $ Anda) dengan ln -s /full/path/to/whisper.cpp/main $HOME/.local/bin/transcribe
Jika Transcribe tidak ada di jalur $ Anda, baik edit panggilan ke WSI untuk memasukkan jalur absolut, atau tambahkan lokasinya ke variabel $ path. Kalau tidak, skrip akan gagal. Jika Anda lebih suka untuk tidak mengkompilasi Whisper.cpp, atau selain itu, unduh dan atur bendera yang dapat dieksekusi dari Whisperfile yang sesuai, misalnya:
cd $HOME/.local/bin
wget https://huggingface.co/Mozilla/whisperfile/resolve/main/whisper-tiny.en.llamafile
chmod +x whisper-tiny.en.llamafile
Di dalam skrip wsi , wsiAI , wsiml atau blooper , dekat awal, ada bagian yang ditandai dengan jelas, bernama "Blok Konfigurasi Pengguna" , di mana semua variabel yang dapat dikonfigurasi pengguna telah dikumpulkan. Sebagian besar dapat dibiarkan seperti yang penting tetapi yang penting adalah lokasi file model (Whisper, LLM, TTS) yang ingin Anda gunakan selama transkripsi (atau nomor IP dan port untuk server Whisper.cpp). Jika menggunakan Whisperfile, silakan, atur variabel Whisperfile ke nama file dari Whisperfile yang dapat diunduh sebelumnya, yaitu WHISPERFILE=whisper-tiny.en.llamafile (harus di jalur $).
Untuk memulai dan menghentikan input ucapan, untuk instalasi manual dan otomatis
/home/yourusername/.local/bin/wsi -p untuk menggunakan tombol mouse tengah atau mengubahnya menjadi .../wsi untuk menggunakan clipboard.wsi di atas dengan wsiml dan jika menggunakan Whisperfile, tambahkan bendera -w , yaitu /home/yourusername/.local/bin/wsi -w ). Akhirnya, untuk mencicipi fungsi LLM, ganti wsi dengan wsiAI .Script orkestrator memiliki filter deteksi keheningan dalam panggilan ke Sox (rec) dan akan berhenti merekam (dalam kasus terbaik) pada 2 detik keheningan. Selain itu, jika seseorang tidak ingin menunggu atau memiliki masalah dengan ambang deteksi keheningan:
Bagi mereka yang ingin dapat mengganggu perekaman secara manual dengan kombinasi kunci, dalam semangat peretasan hebat, kita akan menggunakan fitur bawaan sistem:
pkill --signal 2 recSesederhana itu. Pastikan saja bahwa ikatan kunci baru belum diatur untuk sesuatu yang lain. Sekarang ketika skrip merekam pidato, itu dapat dihentikan dengan kombo kunci dan transkripsi baru akan segera dimulai.
/home/yourusername/.local/bin/wsi -p atau .../wsi untuk menggunakan clipboard.wsi di atas dengan wsiml dan jika menggunakan Whisperfile, tambahkan bendera -w , yaitu /home/yourusername/.local/bin/wsi -w ). Akhirnya, untuk mencicipi fungsi LLM, ganti wsi dengan wsiAI .pkill --signal 2 rec ./home/yourusername/.local/bin/wsi .local/bin/wsi atau .../wsi -pwsi di atas dengan wsiml dan jika menggunakan Whisperfile, tambahkan bendera -w , yaitu /home/yourusername/.local/bin/wsi -w ). Akhirnya, untuk mencicipi fungsi LLM, ganti wsi dengan wsiAI .pkill --signal 2 rec .Harap perhatikan bahwa mungkin ada sedikit variasi dalam langkah -langkah di atas tergantung pada versi yang diinstal pada sistem Anda. Untuk banyak lingkungan lain, seperti pasangan, kayu manis, lxqt, deepin , dll. Langkah -langkahnya harus agak mirip dengan contoh di atas. Silakan, berkonsultasi dengan dokumentasi untuk lingkungan desktop sistem Anda.
Pada tekanan kombo hotkey, skrip wsi -p akan merekam pidato (dihentikan dengan hotkey atau dengan deteksi diam), menggunakan salinan lokal whisper.cpp dan mengirim teks yang ditranskripsi ke pilihan utama di bawah, baik X11 atau Wayland. Maka yang harus dilakukan hanyalah menempelkannya dengan tombol mouse tengah di mana saja yang mereka inginkan. (Untuk orang -orang memegang mouse dengan tangan kanan mereka, hotkey perekaman pidato untuk tangan kiri akan masuk akal.)
Jika menggunakan wsi tanpa bendera (pendekatan dapat hidup berdampingan, cukup atur set hotkey yang berbeda), teks yang ditranskripsikan dikirim ke clipboard (bukan pilihan utama) di bawah, baik X11 atau Wayland. Kemudian menempel terjadi dengan CTRL+V ( CTRL+SHIFT+V untuk terminal GNOME) atau tombol SHIFT+INSert seperti biasa. (Bagi kebanyakan orang, hotkey tangan kanan akan bekerja dengan baik.)
Jika menyalin melalui jaringan dengan wsi -n (dipilih dengan hotkey sendiri), skrip akan mencoba mengirim audio yang direkam ke server whisper.cpp yang diatur dengan benar (pada LAN atau localhost ). Ini kemudian akan mengumpulkan respons tekstual dan memformatnya untuk menempel dengan CTRL+V ( CTRL+SHIFT+V untuk terminal GNOME) atau tombol SHIFT+INSert (untuk menempel dengan tombol mouse tengah menggunakan wsi -n -p sebagai gantinya).
Jika menggunakan Whisperfile alih -alih, atau selain whisper.cpp yang dikompilasi, panggil dengan wsi -w ... dan skrip akan menggunakan preset yang sebenarnya dapat dieksekusi portabel dengan model pilihan bisikan tertanam.
Untuk pengguna multibahasa, selain fitur WSI, wsiml memberikan kemampuan untuk menentukan bahasa, misalnya -l fr dan opsi untuk diterjemahkan ke bahasa Inggris dengan -t . Pengguna pada prinsipnya dapat menetapkan beberapa hotkey ke berbagai bahasa yang mereka transkrip atau terjemahkan dari. Misalnya, dua hotkey tambahan dapat diatur, satu untuk menyalin dan satu lagi untuk diterjemahkan dari bahasa Prancis dengan menetapkan perintah wsiml -l fr dan wsiml -l fr -t secara bersamaan.
Eksperimental: Pengguna dapat menggunakan blooper skrip yang disediakan untuk input ucapan-ke-teks otomatis yang berkelanjutan (tidak perlu menekan Ctrl+V atau klik tombol mouse tengah.) Ini ditunjukkan dalam video kedua di atas. Harap perhatikan bahwa clipboard digunakan secara default, teks akan di -autopasted di bawah keyboard carret, tetapi pada prinsipnya pilihan utama dapat diatur sebagai gantinya, klik tombol mouse tengah akan disimulasikan dan teks yang ditempelkan pada posisi saat ini dari penunjuk mouse pada (agak sewenang -wenang) waktu teks tersedia. Harap perhatikan bahwa ini bergantung pada deteksi keheningan, yang tergantung pada lingkungan fisik Anda. Di lingkungan yang bising, gunakan kunci panas untuk berhenti merekam.
Kita tidak dapat menaikkan ambang batas secara sewenang -wenang karena, jika seseorang secara konsisten menurunkan suara mereka (fadeout) di akhir pidato, itu mungkin terputus jika ambang batasnya tinggi. Turunkan dalam kasus itu menjadi beberapa %.
Yang terbaik adalah mencoba membuat pidato dapat dibedakan dari noise dengan amplitudo (berbicara dengan jelas, dekat dengan mikrofon), sambil meminimalkan kebisingan eksternal (lokasi terlindung dari mikrofon, perangkat keras pembatalan noise, dll.) Dengan tingkat sinyal bicara yang baik, ambang batas kemudian dapat lebih efektif, karena SNR (rasio ucapan-ke-noise :-) meningkat secara efektif.
Setelah pidato ditangkap, itu akan diteruskan untuk transcribe (Whisper.cpp) untuk pengenalan suara. Ini akan terjadi lebih cepat daripada waktu nyata (terutama dengan CPU cepat atau jika instalasi Whisper.cpp Anda menggunakan CUDA). Seseorang dapat menyesuaikan jumlah utas pemrosesan yang digunakan dengan menambahkan -tn ke parameter baris perintah transcribe (tolong, lihat dokumentasi whisper.cpp). Script kemudian akan menguraikan teks untuk menghapus artefak non-pidato, memformatnya dan mengirimkannya ke pilihan utama (clipboard) menggunakan alat X11 atau Wayland.
Pada prinsipnya, Whisper (Whisper.cpp) bersifat multibahasa dan dengan file model yang benar, aplikasi ini akan menghasilkan teks UTF-8 yang ditranskripsi dalam bahasa yang benar. Script wsiml didedikasikan untuk penggunaan multi -bahasa dan dengan itu pengguna dapat memilih bahasa untuk input ucapan (menggunakan bendera -l LC di mana LC adalah kode bahasa) dan juga dapat menerjemahkan pidato dalam bahasa input yang dipilih ke bahasa Inggris dengan bendera -t . Pengguna dapat menetapkan beberapa hotkey ke berbagai bahasa yang ingin mereka transkrip atau terjemahkan. Misalnya, dua hotkey tambahan dapat diatur, satu untuk menyalin dan satu lagi untuk diterjemahkan dari bahasa Prancis dengan menetapkan perintah wsiml -l fr dan wsiml -l fr -t secara bersamaan.
Harap, perhatikan bahwa saat menggunakan mode server, sekarang Anda memiliki 2 pilihan. Anda dapat memiliki server wisper.cpp yang sudah dikompilasi atau whisperfile yang diunduh (dalam mode server) dengarkan di host dan nomor port yang telah dikonfigurasi sebelumnya. Skrip orkestra mendekati mereka dengan cara yang sama.
Transkripsi wicara-ke-teks adalah tugas intensif memori dan CPU dan penyimpanan cepat untuk akses baca dan tulis hanya dapat membantu. Itulah sebabnya WSI menyimpan file sementara dan sumber daya dalam memori, untuk kecepatan dan untuk mengurangi SSD/HDD "penggilingan": TEMPD='/dev/shm' . Titik pemasangan jenis "TMPFS" ini dibuat dalam RAM (mari kita asumsikan bahwa Anda sudah cukup, katakanlah, setidaknya 8GB) dan disediakan oleh kernel untuk aplikasi ruang pengguna. Ketika komputer dimatikan secara otomatis dimusnahkan, yang baik -baik saja karena kita tidak memerlukan file perantara. Bahkan, untuk beberapa jenis aplikasi (melihat elektron Anda), akan bermanfaat (IMHO) untuk memiliki titik pemasangan di seluruh sistem /TMP juga disimpan dalam RAM. Moving /TMP ke RAM dapat mempercepat startup aplikasi sedikit. Speedup selamat datang untuk aplikasi elektron apa pun. Dalam bentuknya yang paling sederhana, transisi ini mudah, cukup jalankan:
echo "tmpfs /tmp tmpfs rw,nosuid,nodev" | sudo tee -a /etc/fstab dan kemudian restart komputer Linux Anda. Untuk alasan yang disebutkan di atas, terutama jika HDD adalah media penyimpanan utama, orang juga dapat memindahkan file model ASR yang dibutuhkan oleh Whisper.cpp di lokasi yang sama (/dev/shm). Ini adalah file besar, yang dapat ditransfer ke lokasi ini pada awal sesi terminal (atau di startup sistem). Ini dapat dilakukan dengan menggunakan file .profile Anda dengan menempatkan sesuatu seperti ini di dalamnya:
([ -f /dev/shm/ggml-base.en.bin ] || cp /path/to/your/local/whisper.cpp/models/ggml* /dev/shm/)