Whistle adalah model pengenal suara terbuka berukuran 16,9 MB yang berjalan di CPU tanpa dependensi dan mendukung tujuh bahasa. Cactus Compute merilisnya pada 2 Oktober 2026 lewat tulisan Jakub Mroz dan Henry Ndubuaku, dengan klaim waktu ke token pertama 11,1 milidetik untuk audio sepuluh detik di CPU Apple M4 Pro. Model ini memakai mesin C++ yang sama dengan Needle, model bahasa kecil mereka, sehingga satu binary bisa mengubah klip suara langsung menjadi pemanggilan tool tanpa perantara layanan awan.
TL;DR
- Satu berkas 16,9 MB, berjalan di CPU, tanpa dependensi tambahan.
- Mendukung tujuh bahasa: Inggris, Jerman, Prancis, Spanyol, Italia, Belanda, dan Polandia.
- Tiga kemampuan sekaligus: transkripsi, timestamp per kata, dan embedding suara.
- Waktu ke token pertama 11,1 ms dan kecepatan dekode 1.319 token per detik pada audio sepuluh detik.
- Bahasa dideteksi otomatis kecuali kamu menentukan sendiri.
Berapa ukuran Whistle dibanding model speech-to-text lain?
Whistle berukuran 16,9 MB, jauh lebih kecil dari dua pembanding yang dipakai penulisnya. Whisper base memakan 145,3 MB, sementara Moonshine tiny v2 sekitar 41,9 MB. Selisih ukuran ini bukan sekadar angka pemasaran: ia menentukan apakah model bisa ditanam di perangkat dengan penyimpanan terbatas seperti wearable, robot, atau mikrokontroler, tanpa harus memanggil server untuk setiap transkripsi.
Perbandingan lengkapnya mencakup tiga metrik sekaligus: ukuran berkas, waktu ke token pertama, dan kecepatan dekode. Semua diukur pada audio sepuluh detik di CPU Apple M4 Pro, dengan tiap model dijalankan pada runtime resminya memakai pengaturan bawaan.
| Metrik | Whistle | Whisper base | Moonshine tiny v2 |
|---|---|---|---|
| Ukuran | 16,9 MB | 145,3 MB | 41,9 MB |
| Waktu ke token pertama | 11,1 ms | 73,2 ms | 22,8 ms |
| Dekode | 1.319 token/detik | 266 token/detik | 262 token/detik |
| Jumlah bahasa | 7 | Multibahasa | Inggris saja |
Bahasa apa saja yang didukung dan bagaimana deteksinya?
Whistle menangani tujuh bahasa: Inggris, Jerman, Prancis, Spanyol, Italia, Belanda, dan Polandia. Bahasanya dideteksi otomatis dari audio kecuali kamu memberi tahu secara eksplisit lewat parameter bahasa. Menariknya, hasil deteksi tidak dikembalikan di luar jalur, melainkan dipancarkan sebagai token bahasa di dalam kosakata model yang berisi 8.192 potongan teks ditambah tujuh token bahasa.
Pendekatan ini punya konsekuensi teknis yang rapi: informasi bahasa menjadi bagian dari urutan keluaran decoder, bukan metadata terpisah yang harus diselaraskan. Jadi kalau kamu memaksa satu bahasa, model tetap memakai jalur yang sama, hanya saja pilihannya dipatok di awal.
Bagaimana arsitektur Whistle bekerja?
Bagian depan memproses audio 16 kHz mono, dibingkai dengan jendela 25 ms dan hop 10 ms menjadi 80 bin log-mel, dibatasi pita 250 sampai 3.500 Hz dan dinormalisasi per kanal. Audio tiga puluh detik menjadi 3.000 frame, lalu stem konvolusional 128 kanal dengan kernel 9 memotong jumlah itu tiga kali, menyisakan 375 frame dengan satu frame per 80 ms.
Encoder terdiri dari delapan blok Simple Attention dengan empat jalur residu dan MLP Monarch Hadamard menggantikan jaringan feed-forward, blok yang sama dengan yang dipakai Needle. Attention-nya tidak kausal, artinya satu frame di detik ketiga bisa memperhatikan frame di detik kedua belas. Decoder memakai delapan blok Laddered Simple Attention dengan lebar 512, delapan head query ke dua head KV, serta lookup engram di lapisan 3 dan 7. Bagian yang khusus untuk suara adalah satu penambahan per lapisan berupa gated cross attention yang membaca encoder, dengan proyeksi K dan V dihitung sekali saat klip datang lalu ditahan selama proses dekode.
Apakah Whistle lebih akurat daripada Whisper?
Tidak selalu, dan itu justru bagian yang paling jujur dari tulisan ini. Whistle unggul pada LibriSpeech test-clean dan test-other, SPGISpeech, Earnings-22, serta rata-rata FLEURS. Whisper base justru unggul pada TED-LIUM, AMI, dan rata-rata MLS, meskipun ukurannya delapan kali lebih besar. Penulisnya juga mencatat satu detail penting: angka AMI milik Whisper adalah subset AMI-IHM, berbeda dari AMI yang dilaporkan dua model lain, jadi perbandingan itu tidak sepenuhnya apel ke apel.
Semua angka word error rate Whistle diukur di atas 86.174 ucapan. Penulis menyatakan tidak ada audio uji yang muncul di data latih atau validasi, diverifikasi dengan membandingkan checksum audio dan ID pembicara di setiap set uji yang dilaporkan. Untuk klaim performa model, verifikasi semacam ini yang membedakan evaluasi serius dari sekadar demo.
Apa saja tiga kemampuan Whistle dan untuk apa masing-masing?
Whistle mengerjakan tiga hal sekaligus di perangkat. Yang pertama transkripsi: audio 16 kHz mono sampai tiga puluh detik dalam satu lintasan, untuk tujuh bahasa. Yang kedua timestamp per kata, yaitu setiap kata disertai waktu mulai, waktu selesai, dan probabilitasnya, disejajarkan dari attention decoder. Yang ketiga embedding suara, yaitu keluaran encoder berupa satu baris per frame 80 milidetik tanpa perlu mendekode transkrip sama sekali.
Kemampuan ketiga itu yang sering dilewatkan orang. Embedding berguna untuk pencarian kemiripan suara, pengelompokan pembicara, atau deteksi aktivitas suara tanpa biaya dekode penuh. Karena encoder selalu berjalan delapan blok penuh di setiap kedalaman, kamu bisa mendapat representasi suara yang berguna meski transkripnya sendiri tidak dibutuhkan.
Bagaimana Whistle menangani klip senyap dan audio panjang?
Mesinnya mengukur rentang kenyaringan klip sebelum decoder mulai. Kalau di bawah ambang, ia mengembalikan transkrip kosong dan bahasa kosong, lalu tidak pernah masuk ke beam search sama sekali. Ini menghindari pemborosan komputasi pada klip senyap sekaligus mencegah model mengarang kata dari derau latar belakang.
Untuk audio panjang, waktu ke token pertama Whistle mengikuti panjang klip, tidak datar. Pada pengukuran penulisnya, angkanya 5,9 milidetik untuk klip lima detik, 11,1 milidetik untuk sepuluh detik, dan 36,3 milidetik untuk tiga puluh detik. Bandingkan dengan Whisper base yang selalu menyisipkan padding sampai tiga puluh detik, sehingga waktu ke token pertamanya relatif datar di semua panjang klip. Untuk aplikasi yang sering memproses klip pendek, perilaku Whistle jauh lebih efisien.
Apa arti tanpa dependensi bagi perangkat kecil?
Artinya model dan mesin inferensinya dikompilasi menjadi satu kesatuan yang tidak memerlukan pustaka eksternal saat berjalan. Mesinnya dikirim siap pakai untuk tujuh belas target, mulai macOS dan Linux sampai Android, iOS, watchOS, Windows di ARM, RISC-V, MIPS, browser, dan komponen WASI. Setiap folder berisi binary, pustaka statis, dan header.
Konsekuensi praktisnya, mesin ini membaca nol variabel lingkungan; setiap perilaku adalah default terkompilasi atau flag eksplisit. Untuk perangkat seperti mikrokontroler atau wearable, hilangnya dependensi runtime berarti lebih sedikit hal yang bisa gagal saat boot, dan ukuran yang bisa diprediksi sebelum dipasang.
Apa arti ladder pada decoder dan kenapa encoder tidak dipotong?
Setiap kedalaman decoder, mulai dari dua lapisan ke atas, dilatih sebagai model tersendiri, dan sebuah flag di pemuatan memilih salah satunya. Yang menarik, encoder tidak pernah dipotong: delapan blok selalu berjalan di setiap kedalaman. Jadi yang kamu hemat saat memilih kedalaman lebih dangkal adalah bagian dekode, sementara kualitas representasi suara dari encoder tetap utuh.
Desain ini praktis untuk perangkat dengan anggaran komputasi berbeda-beda. Perangkat dengan CPU cepat bisa memakai decoder penuh untuk akurasi maksimal, sementara mikrokontroler atau perangkat hemat daya bisa memilih kedalaman lebih dangkal dengan trade-off kecepatan. Karena semuanya berasal dari satu berkas model yang sama, kamu tidak perlu mengelola beberapa model terpisah untuk beberapa kelas perangkat.
Bagaimana penulisnya memvalidasi klaim performanya?
Ada beberapa detail metodologi yang disebutkan dan layak diperhatikan. Angka word error rate Whistle diukur di atas 86.174 ucapan. Penulisnya menyatakan tidak ada audio uji yang muncul di data latih atau validasi, dan itu diverifikasi dengan membandingkan checksum audio serta ID pembicara di setiap set uji yang dilaporkan.
Mereka juga jujur soal batas perbandingan. Untuk model yang mereka kutip, angka yang dipakai adalah angka yang diterbitkan penulis model tersebut, dari checkpoint multibahasa, bukan checkpoint khusus Inggris. Satu catatan penting yang mereka sebut sendiri: angka AMI milik Whisper adalah subset AMI-IHM, berbeda dari AMI yang dilaporkan dua model lain, sehingga perbandingan itu tidak sepenuhnya setara. Transparansi semacam ini justru memperkuat kredibilitas angka yang mereka klaim menang.
Bagaimana cara mencobanya tanpa menulis kode?
Di halaman pengumumannya tersedia sandbox yang bisa langsung dipakai dari peramban. Kamu menekan tombol mikrofon dan berbicara, sampai tiga puluh detik, dalam salah satu dari tujuh bahasa yang didukung. Modelnya diunduh saat penekanan pertama sebesar 16,9 MB, dan menurut halaman itu audionya tidak pernah meninggalkan perangkatmu.
Selain itu ada dua alat bantu di terminal untuk membandingkan secara langsung. Satu perintah menjalankan transkripsi dari mikrofon di terminal, dan satu perintah lain menjalankan klip yang sama melalui Whistle, Whisper, dan Moonshine berdampingan beserta waktu masing-masing. Cara ini praktis untuk menguji klaim benchmark pada audio milikmu sendiri, bukan hanya mempercayai angka di halaman.
FAQ
Apakah audio diproses di perangkat atau dikirim ke server?
Di perangkat. Halaman demo di situs Cactus menyatakan audionya tidak pernah meninggalkan perangkatmu, dan modelnya diunduh sekali sebesar 16,9 MB saat pertama kali dipakai. Karena tidak ada dependensi, inferensinya berjalan langsung di CPU tanpa panggilan jaringan setelah model tersedia.
Bagaimana cara memasang Whistle di proyek Python?
Lewat paket resmi yang diinstal dengan pip. Setelah terpasang, kamu bisa mengimpor modulnya dan memanggil fungsi transkripsi pada berkas WAV 16 kHz atau sampel mentah tanpa paket tambahan. Untuk laju sampel lain dan penangkapan mikrofon, ada ekstra tambahan yang menarik dua pustaka pendukung.
Apakah Whistle bisa dipakai untuk memanggil fungsi otomatis?
Bisa. Karena Whistle dan Needle berbagi mesin yang sama, satu binary dapat memuat keduanya. Kamu memberi model daftar tool dalam berkas JSON dan sebuah klip audio, lalu mesin akan mentranskripsi, menjawab transkrip itu terhadap tool yang tersedia, dan mengembalikan satu objek JSON berisi pemanggilan fungsi serta field suara yang diberi awalan khusus.
Platform apa saja yang didukung?
Mesinnya dikirim dalam bentuk siap pakai untuk tujuh belas target, mulai macOS dan Linux sampai Android, iOS, watchOS, Windows di ARM, RISC-V, MIPS, browser, dan komponen WASI. Setiap folder berisi binary, pustaka statis, dan header, dan semuanya bisa memuat berkas model yang kamu berikan.
Sumber
- Cactus Compute: Whistle, Speech to Text in 16.9 MB (Jakub Mroz dan Henry Ndubuaku, 2 Oktober 2026; arsitektur, benchmark, dan panduan pemakaian).
- Cactus Compute di Hugging Face (bobot model yang dirilis untuk diunduh).
- Repositori GitHub Cactus Compute (kode mesin, contoh pemakaian, dan berkas platform).
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬