Pluton.id
Catatan

Menjalankan Pengenalan Ucapan di Ponsel, Bukan di Server: Biayanya bagi Kami

ASR di perangkat dapat meningkatkan privasi dan memungkinkan transkripsi offline, tetapi memindahkan biaya ke aplikasi, perangkat, dan alur kerja engineering kami.


Mengapa kami mempertimbangkan ASR di perangkat

Pengenalan ucapan sering diimplementasikan sebagai fitur client-server sederhana: ponsel merekam audio, mengunggahnya, lalu menerima teks. Memindahkan pekerjaan tersebut ke ponsel mengubah arsitektur secara berarti. Aplikasi menjadi bertanggung jawab atas pemrosesan audio, eksekusi model, dan performa khusus perangkat, alih-alih memperlakukan pengenalan ucapan sebagai dependensi jarak jauh.

Kami biasanya mempertimbangkan on-device ASR ketika privasi, operasi offline, waktu respons, atau batasan transfer data lebih penting daripada memiliki satu layanan pengenalan yang dikelola secara terpusat.

Apa yang kami dapatkan

Privasi secara default

Dengan on-device ASR, audio mentah dapat tetap berada di ponsel pengguna. Ini mengurangi kebutuhan untuk mengirim rekaman suara melalui infrastruktur kami dan mempersempit kumpulan sistem yang dapat mengakses ucapan sensitif.

Hal ini berguna, tetapi kami menghindari menyebutnya sebagai kepatuhan privasi otomatis. Transkripnya sendiri tetap dapat bersifat sensitif. Jika aplikasi menyimpan, menyinkronkan, mencatat log, atau mengirimkan teks hasil pengenalan, kami tetap perlu menentukan bagaimana data tersebut ditangani.

Menyimpan audio di perangkat mengurangi satu kategori paparan. Ini tidak menghilangkan kebutuhan akan desain privasi.

Perilaku offline

Model lokal dapat mengenali ucapan tanpa koneksi aktif. Ini membuat fitur tersedia dalam kondisi jaringan yang tidak andal dan menghindarkan interaksi dasar dari ketergantungan pada ketersediaan server.

Dukungan offline juga mengubah kontrak produk. Kami perlu menentukan apakah setiap bahasa berfungsi secara offline, apakah tanda baca tersedia secara lokal, dan apa yang terjadi ketika model untuk bahasa yang dipilih belum diunduh.

Ketergantungan jaringan yang lebih rendah

Kami tidak lagi mengunggah setiap rekaman untuk diproses. Ini dapat mengurangi trafik backend, tetapi tidak berarti fiturnya gratis. Kami menukar pekerjaan server yang berulang dengan ukuran unduhan aplikasi, komputasi lokal, dan lebih banyak pekerjaan dalam codebase mobile.

Biaya bagi kami

Ukuran aplikasi

Model ucapan adalah aset, dan model yang berguna tidak kecil dibandingkan sumber daya aplikasi biasa. Menyertakannya dalam instalasi awal meningkatkan paket aplikasi. Mengunduhnya setelah instalasi membuat paket awal lebih kecil, tetapi menambahkan pengiriman model, manajemen penyimpanan, pembuatan versi, dan penanganan kegagalan.

Kami biasanya memilih di antara pendekatan berikut:

  • Membundel model default yang kecil ketika ketersediaan offline penting sejak peluncuran pertama.
  • Mengunduh model bahasa sesuai permintaan ketika pengguna mungkin memerlukan bahasa berbeda.
  • Menghapus model hasil unduhan yang tidak digunakan hanya ketika pengguna dapat memahami konsekuensinya dengan jelas dan dapat memulihkannya tanpa kejutan.

Memori, baterai, dan panas

Pengenalan menggunakan CPU, GPU, perangkat keras akselerasi neural, atau gabungannya. Biayanya sangat bervariasi menurut ponsel, versi sistem operasi, format model, durasi audio, serta apakah pengenalan berjalan terus-menerus atau hanya setelah tindakan eksplisit.

Kami perlu menguji lebih dari sekadar apakah transkrip muncul. Kami juga perlu mengamati apa yang terjadi ketika perangkat hangat, dalam mode hemat daya, berada di bawah tekanan memori, atau menjalankan aplikasi lain. Model yang bekerja baik dalam demo pengembangan singkat dapat mengganggu selama rekaman panjang pada ponsel lama.

Variasi perangkat

Server memberi kami lingkungan eksekusi yang terkendali. ASR di perangkat memberi kami kumpulan prosesor, tingkat memori tersedia, akselerator perangkat keras, perilaku mikrofon, dan aturan penjadwalan sistem operasi yang berbeda-beda.

Artinya kami memerlukan perilaku fallback. Kami dapat memakai model yang lebih kecil, menonaktifkan hasil parsial waktu nyata, membatasi durasi rekaman maksimum, atau menawarkan pemrosesan server hanya setelah memperoleh pilihan pengguna yang sesuai. Fallback yang tepat bergantung pada produk, tetapi mengasumsikan setiap ponsel dapat menjalankan model yang sama biasanya merupakan kesalahan yang mahal.

Kompromi akurasi

Model lokal sering dipilih sebagian berdasarkan ukuran dan kecepatannya. Batasan tersebut dapat memengaruhi kualitas pengenalan, bahasa yang didukung, tanda baca, penanganan pembicara, dan performa dalam lingkungan bising.

Kami harus mengevaluasi ucapan yang benar-benar dihasilkan pengguna, termasuk aksen, kosakata, kebisingan latar, serta perintah singkat dibandingkan dikte yang lebih panjang. Benchmark umum berguna untuk perbandingan, tetapi bukan bukti bahwa model yang dipilih bekerja untuk kasus penggunaan kami.

Pekerjaan engineering dan rilis

Menjalankan ASR secara lokal menambahkan tanggung jawab khusus mobile:

  • Menangkap audio dalam format yang diharapkan model.
  • Melakukan resampling dan membagi audio menjadi chunk tanpa menciptakan jeda atau latensi berlebihan.
  • Mengelola berkas model, checksum, unduhan, dan batas penyimpanan.
  • Menjalankan inferensi di luar thread antarmuka pengguna.
  • Menguji pada kelas perangkat dan versi sistem operasi yang didukung.
  • Menangani rekaman yang terputus, aplikasi berpindah ke latar belakang, izin, dan perubahan jalur audio.

Tugas-tugas ini tetap ada bahkan ketika framework membuat inferensi terlihat sederhana.

Peran ONNX

ONNX dapat menjadi format pertukaran model yang praktis ketika kami ingin menjalankan model ucapan yang diekspor di lebih dari satu platform. Dengan runtime yang kompatibel dengan ONNX, kami dapat mempertahankan pipeline model yang tidak terlalu terikat pada framework pelatihan.

Dalam praktiknya, ONNX bukan jaminan bahwa model akan berjalan efisien di setiap ponsel. Kami tetap perlu memverifikasi operator yang didukung, keluaran konversi model, versi runtime, execution provider perangkat keras, dan perilaku kuantisasi. Konversi yang valid tetap dapat lebih lambat, lebih besar, atau kurang akurat dari yang diharapkan.

Kami memperlakukan hal-hal berikut sebagai langkah validasi terpisah:

  1. Mengekspor model ke ONNX dan mengonfirmasi bahwa inferensi menghasilkan keluaran yang diharapkan.
  2. Menjalankan model melalui runtime mobile target.
  3. Mengukur perilaku startup, penggunaan memori, dan responsivitas pengenalan pada perangkat yang mewakili.
  4. Membandingkan kualitas transkrip sebelum dan sesudah kuantisasi atau optimasi apa pun.
  5. Menguji pembaruan model secara terpisah dari pembaruan aplikasi ketika model dikirimkan secara terpisah.

Kuantisasi sering layak dievaluasi karena dapat mengurangi penyimpanan dan biaya eksekusi. Kuantisasi juga dapat mengubah akurasi atau memunculkan jalur runtime yang tidak didukung. Kami tidak mengaktifkannya hanya karena alat konversi menyediakan opsinya.

Privasi juga memiliki biaya operasional

Pemrosesan di perangkat mengurangi jumlah audio yang perlu kami operasikan sebagai layanan, tetapi dapat membuat diagnosis lebih sulit. Dengan ASR server, kami mungkin dapat memeriksa log yang terkendali dan mereproduksi masalah menggunakan input yang dikelola secara terpusat, sesuai aturan penanganan data. Dengan pemrosesan lokal, kami memerlukan cara lain untuk memahami kegagalan tanpa diam-diam mengumpulkan ucapan.

Kami dapat menggunakan pendekatan seperti:

  • Unggahan diagnostik yang disetujui pengguna.
  • Kode kesalahan lokal yang menjelaskan kegagalan model dan runtime tanpa menyertakan audio.
  • Rekaman pengujian sintetis dan yang disetujui untuk pengujian regresi.
  • Kontrol yang jelas untuk menghapus rekaman lokal, transkrip, dan model yang diunduh.

Ini adalah kompromi yang perlu kami nyatakan secara jelas: privasi yang lebih kuat dapat mengurangi observabilitas otomatis. Kami perlu membangun diagnostik yang cukup untuk dukungan tanpa merusak alasan privasi untuk pemrosesan lokal.

Memilih antara ASR lokal, server, dan hybrid

Kami tidak memperlakukan on-device ASR sebagai pengganti universal untuk pengenalan di server.

Pengenalan lokal biasanya cocok ketika operasi offline diperlukan, audio sangat sensitif, interaksi memerlukan umpan balik segera, atau bahasa dan kasus penggunaan yang didukung cukup sempit untuk model lokal.

Pengenalan server sering lebih sederhana ketika kualitas model harus ditingkatkan secara terpusat, banyak bahasa diperlukan, rekaman panjang, atau produk dapat secara andal bergantung pada konektivitas dan jalur pemrosesan data.

Desain hybrid dapat berguna, tetapi hanya jika perilakunya jelas. Sebagai contoh, kami dapat melakukan proses pertama secara lokal dan menawarkan proses server opsional dengan kapasitas lebih tinggi. Kami tidak seharusnya mengunggah audio secara diam-diam setelah menyajikan fitur sebagai privat atau offline.

Checklist implementasi kami

Sebelum berkomitmen pada on-device ASR, kami membahas pertanyaan-pertanyaan berikut:

  • Rekaman mana yang harus berfungsi offline?
  • Bahasa, aksen, dan domain mana yang benar-benar perlu kami dukung?
  • Berapa dampak maksimum yang dapat diterima terhadap unduhan aplikasi dan penyimpanan di perangkat?
  • Perangkat mana yang termasuk dalam baseline dukungan kami?
  • Apa yang terjadi ketika penyimpanan, memori, atau baterai tidak mencukupi?
  • Apakah model menggunakan ONNX atau format runtime lain yang dipelihara pada platform target kami?
  • Dapatkah kami memperbarui model dengan aman dan melakukan rollback pada versi bermasalah?
  • Sinyal diagnostik mana yang dapat kami kumpulkan tanpa mengumpulkan isi ucapan?
  • Kapan, jika pernah, pengguna dapat memilih pemrosesan server?

Kesimpulan praktis

On-device ASR bukan sekadar perubahan deployment. Ini memindahkan tanggung jawab dari infrastruktur ke aplikasi dan ke perangkat keras pengguna. Sebagai imbalannya, kami dapat menawarkan penggunaan offline, mengurangi transfer audio, dan membuat privasi lebih mudah didukung dalam desain sistem.

Biayanya nyata: instalasi lebih besar, pengujian perangkat, batasan daya dan memori, pekerjaan siklus hidup model, serta observabilitas yang tidak sesederhana sebelumnya. Kami mendapatkan hasil terbaik ketika memilih pengenalan ucapan lokal untuk alasan yang spesifik, memvalidasinya pada perangkat target nyata, dan menetapkan perilaku privasi serta fallback sebelum merilisnya.