Panduan ini menunjukkan cara menggunakan SDK Android untuk pengenalan ucapan waktu nyata Fun-ASR-Realtime guna mengubah ucapan menjadi teks.
Mulai cepat
- Mendapatkan kunci API
-
Unduh SDK dan jalankan kode sampel:
- Unduh paket SDK terbaru.
- Ekstrak paket ZIP. SDK format AAR berada di direktori
app/libs. Tambahkan ke dependensi proyek Anda. Untuk integrasi C++ Android, gunakanandroid_libsdanandroid_includedari paket ZIP untuk mendapatkan pustaka dinamis dan file header. - Buka proyek di Android Studio. Kode contoh berada di
DashFunAsrSpeechTranscriberActivity.java. Ganti kunci API untuk mencoba fitur ini.
Prosedur pemanggilan
- Inisialisasi SDK.
- Atur parameter untuk kasus penggunaan Anda. Gunakan argumen
parametersdari metodeinitializeuntuk mengatur Parameter koneksi dan kontrol, dan gunakan metodesetParamsuntuk mengatur Parameter pengenalan ucapan. - Panggil
startDialoguntuk memulai pengenalan. - Dalam callback
onNuiAudioStateChanged, mulailah perangkat perekaman berdasarkan status audio. - Terus sediakan data rekaman dalam callback
onNuiNeedAudioData, atau dorong data rekaman secara aktif dengan memanggilupdateAudio. - Dalam callback
onNuiEventCallback, dengarkan peristiwa dan dapatkan hasil pengenalan ucapan. - Panggil
stopDialoguntuk menghentikan pengenalan, dan dengarkan peristiwa EVENT_TRANSCRIBER_COMPLETE untuk mengonfirmasi bahwa pengenalan telah berakhir. - Ketika Anda tidak lagi memerlukan pengenalan, panggil
releaseuntuk melepaskan sumber daya SDK.
Parameter permintaan
Parameter koneksi dan kontrol
Untuk mengonfigurasi parameter ini, berikan string JSON dalam argumen parameters dari metode initialize.
- Contoh: Berikut adalah contoh string JSON. Tidak semua parameter dicantumkan. Tambahkan parameter lain sesuai kebutuhan saat Anda menulis kode:
-
Parameter
Parameter Tipe Wajib Deskripsi urlStringYa Alamat layanan: wss://dashscope.aliyuncs.com/api-ws/v1/inference- Tiongkok (Beijing):
wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference - Singapura:
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/inference
{WorkspaceId}dengan ID Workspace Anda yang sebenarnya.apikeyStringYa Kunci API. service_modeStringYa Mode eksekusi. Tetap diatur ke "1"untuk pengenalan ucapan waktu nyata.device_idStringYa String unik yang mengidentifikasi pengguna akhir. Anda dapat mengaturnya ke ID pengguna dalam aplikasi atau pengenal perangkat unik yang dihasilkan klien. ID ini terutama digunakan untuk pelacakan log dan pemecahan masalah. audio_update_manuallyStringTidak Apakah akan mengaktifkan pengiriman data audio secara aktif. Default: "false".Jika diatur ke"true"dan versi SDK mendukung kemampuan pemrosesan audio pada perangkat seperti AEC dan VAD, kemampuan tersebut diaktifkan secara default.workspaceStringTidak Jalur tempat file sumber daya pada perangkat disimpan. Parameter ini diperlukan ketika audio_update_manuallydiatur ke"true"dan kemampuan pemrosesan audio pada perangkat seperti AEC atau VAD diaktifkan.debug_pathStringTidak Jalur penyimpanan untuk file log.Parameter ini hanya berlaku ketika save_logdiatur ke true dalam metodeinitialize. Dalam kasus ini, Anda harus mengatur jalur file log, jika tidak, kesalahan akan terjadi.Maksimal dua file log disimpan secara lokal.save_wavStringTidak Apakah akan menyimpan file audio debug. File audio disimpan di bawah debug_path.Default: "false".Nilai yang valid:- "true": simpan file.
- "false": jangan simpan file.
save_logdiatur ke true dalam metodeinitialize. Selain itu,debug_pathjuga harus diatur.max_log_file_sizeintTidak Ukuran maksimum file log, dalam byte.Parameter ini hanya berlaku ketika save_logdiatur ke true dalam metodeinitialize.Default: 104857600 (100 * 1024 * 1024 byte, yaitu 100 MiB).log_track_levelintTidak Tingkat filter untuk konten log yang dikirim melalui callback log ( onNuiLogTrackCallback).Default: 2.Nilai yang valid:- 0: LOG_LEVEL_VERBOSE
- 1: LOG_LEVEL_DEBUG
- 2: LOG_LEVEL_INFO
- 3: LOG_LEVEL_WARNING
- 4: LOG_LEVEL_ERROR
- 5: LOG_LEVEL_NONE (menonaktifkan fitur ini)
log_track_leveldanlevel(diatur melalui metodeinitialize) bersama-sama menentukan log mana yang akhirnya dikirim ke callback. Log dikirim ke callback hanya ketika nilai levelnya lebih besar dari atau sama denganlog_track_leveldanlevel. Misalnya, jikalog_track_leveldiatur ke 2 (INFO) danleveldiatur ke 3 (WARNING), maka hanya log dengan level WARNING atau lebih tinggi (nilai >= 3) yang dikirim ke callback.enable_reconnectionStringTidak Apakah akan melanjutkan transmisi setelah jaringan tersambung kembali. Default: "false".aec_paramsobjectTidak Objek konfigurasi tingkat lanjut untuk pembatalan gema akustik (AEC) pada perangkat. Objek ini hanya berlaku ketika audio_update_manuallydiatur ke"true".aec_params.enable_aecbooleanTidak Apakah akan mengaktifkan AEC pada perangkat. Jika audio_update_manuallydiatur ke"true"dan versi SDK mendukung AEC pada perangkat, kemampuan ini diaktifkan secara default.aec_params.save_audiobooleanTidak Menentukan apakah akan menyimpan audio yang diproses oleh modul AEC pada perangkat. Jika save_wavdiatur ke"true"dandebug_pathditentukan, fitur ini diaktifkan secara default dan data audio AEC disimpan kedebug_path.aec_params.enable_aec_data_callbackbooleanTidak Apakah akan mengembalikan data yang diproses AEC ke aplikasi Anda. Default: false. Jika diaktifkan, terima data dari peristiwa EVENT_AEC_DATAdionNuiAssistEventCallback.vad_paramsobjectTidak Objek konfigurasi tingkat lanjut untuk deteksi aktivitas suara (VAD) pada perangkat. Objek ini hanya berlaku ketika audio_update_manuallydiatur ke"true".vad_params.enable_aecbooleanTidak Apakah akan mengaktifkan VAD pada perangkat. Jika audio_update_manuallydiatur ke"true"dan versi SDK mendukung VAD pada perangkat, kemampuan ini diaktifkan secara default.vad_params.save_audiobooleanTidak Menentukan apakah akan menyimpan audio yang diproses oleh modul VAD pada perangkat. Jika save_wavdiatur ke"true"dandebug_pathditentukan, fitur ini diaktifkan secara default dan data audio VAD disimpan kedebug_path.
Parameter pengenalan ucapan
Untuk mengonfigurasi parameter ini, berikan string JSON dalam argumen params dari metode setParams.
- Contoh: Berikut adalah contoh string JSON. Tidak semua parameter dicantumkan. Tambahkan parameter lain sesuai kebutuhan saat Anda menulis kode:
-
Parameter
Parameter tingkat atas Tipe Wajib Deskripsi service_typeintYa Jenis layanan ucapan. Tetap diatur ke 4untuk pengenalan ucapan waktu nyata.nls_configobjectYa Objek konfigurasi inti untuk pengenalan ucapan. Objek ini berisi parameter utama seperti pemilihan model dan kontrol kualitas pengenalan. nls_config.modelstringYa Model yang digunakan dalam contoh. Untuk informasi model, lihat Model dan wilayah yang didukung. nls_config.sr_formatstringYa Format audio.Nilai yang valid: pcmopus
nls_config.sample_rateintYa Laju sampel, dalam Hz.Nilai yang valid: model 8 kHz hanya mendukung 8000 Hz; model lain mendukung laju sampel apa pun. nls_config.semantic_punctuation_enabledbooleanTidak Apakah akan mengaktifkan segmentasi semantik.Nilai default: false. - true: Mengaktifkan segmentasi semantik dan menonaktifkan segmentasi VAD.
- false (default): Mengaktifkan segmentasi VAD dan menonaktifkan segmentasi semantik.
nls_config.max_sentence_silenceintTidak Ambang batas keheningan VAD untuk segmentasi, dalam ms. Ketika keheningan setelah segmen ucapan melebihi ambang batas ini, sistem menentukan bahwa kalimat telah berakhir. Ketika semantic_punctuation_enableddiatur ke true, parameter ini tidak digunakan sebagai kriteria untuk mengembalikansentence_end, namun mengaturnya terlalu rendah dapat memengaruhi kinerja pengenalan.Nilai default: 1300.Nilai yang valid: [200, 6000].nls_config.multi_threshold_mode_enabledbooleanTidak Apakah akan mengaktifkan mode multi-ambang batas. Saat diaktifkan, fitur ini mencegah segmen VAD menjadi terlalu panjang.Nilai default: false. nls_config.heartbeatbooleanTidak Apakah akan mengaktifkan paket heartbeat.Nilai default: false. - true: Menjaga koneksi ke server tetap aktif bahkan ketika audio senyap dikirim secara terus-menerus.
- false (default): Bahkan ketika audio senyap dikirim secara terus-menerus, koneksi akan habis waktunya dan tertutup setelah jangka waktu tertentu.
nls_config.vocabulary_idstringTidak ID dari daftar kata panas yang telah dikompilasi sebelumnya.Hasilkan ID ini terlebih dahulu dengan memanggil API buat daftar kata kunci. Berikan ID tersebut selama pengenalan untuk menggunakan kata kunci dalam daftar.Cocok untuk skenario di mana kosakata sudah diketahui dan relatif stabil, serta ketika Anda perlu menggunakan kembali daftar kata yang sama di berbagai permintaan.Untuk detail penggunaan, lihat Hotword prakompilasi. nls_config.language_hintsarray[string]Tidak Bahasa audio yang akan dikenali. Tidak ada nilai default; jika tidak diatur, model akan mendeteksi bahasa secara otomatis.Anda dapat menetapkan 1 nilai. Jika lebih, hanya nilai pertama yang berlaku. Klik untuk melihat kode bahasa yang didukung
-
fun-asr-realtime, fun-asr-realtime-2025-11-07:
- zh: Mandarin
- en: Inggris
- ja: Jepang
- ko: Korea
- vi: Vietnam
- th: Thai
- id: Indonesia
- ms: Melayu
- tl: Filipina
- hi: Hindi
- ar: Arab
- fr: Prancis
- de: Jerman
- es: Spanyol
- pt: Portugis
- ru: Rusia
- it: Italia
- nl: Belanda
- sv: Swedia
- da: Denmark
- fi: Finlandia
- no: Norwegia
- el: Yunani
- pl: Polandia
- cs: Ceko
- hu: Hungaria
- ro: Rumania
- bg: Bulgaria
- hr: Kroasia
- sk: Slovakia
-
fun-asr-realtime-2026-02-28:
- zh: Mandarin
- en: Inggris
- ja: Jepang
-
fun-asr-realtime-2025-09-15:
- zh: Mandarin
- en: Inggris
-
fun-asr-flash-8k-realtime, fun-asr-flash-8k-realtime-2026-01-28:
- zh: Mandarin
-
fun-asr-mtl-realtime, fun-asr-mtl-realtime-2025-12-10:
- zh: Mandarin
- en: Inggris
- ja: Jepang
- ko: Korea
- vi: Vietnam
- id: Indonesia
- th: Thai
nls_config.speech_noise_thresholdfloatTidak Ambang batas untuk membedakan ucapan dari kebisingan, digunakan untuk menyesuaikan sensitivitas Deteksi Aktivitas Suara (VAD).Nilai yang valid: [-1.0, 1.0].Deskripsi nilai: - Semakin dekat nilainya ke -1: Ambang batas kebisingan menurun, sehingga kebisingan lebih mungkin dikenali sebagai ucapan, yang dapat menyebabkan lebih banyak kebisingan ditranskripsikan.
- Semakin dekat nilainya ke +1: Ambang batas kebisingan meningkat, sehingga ucapan lebih mungkin salah dinilai sebagai kebisingan, yang dapat menyebabkan sebagian ucapan terfilter keluar.
- Uji dan verifikasi hasil secara menyeluruh sebelum menyesuaikan.
- Sesuaikan dalam kenaikan kecil berdasarkan lingkungan audio aktual (langkah sebesar 0.1 direkomendasikan).
nls_config.special_word_filterobjectTidak Menentukan kata sensitif yang akan diproses selama pengenalan ucapan, dan mendukung pengaturan metode pemrosesan yang berbeda untuk kata sensitif yang berbeda. Untuk detailnya, lihat Penyaringan kata sensitif. nls_config.enable_connection_fast_checkbooleanTidak Apakah akan mendeteksi gangguan jaringan dengan cepat dan melaporkannya sesegera mungkin. Default: false.
Antarmuka utama
NativeNui
initialize
Menginisialisasi instans SDK pengenalan ucapan. SDK ini bersifat singleton. Jangan menginisialisasinya lebih dari sekali sebelum Anda memanggil release.
Metode ini memblokir, jadi panggil pada thread non-UI.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi callbackINativeNuiCallbackImplementasi antarmuka callback peristiwa dan data. parametersStringString JSON yang berisi parameter autentikasi, koneksi, dan debug. Lihat Parameter koneksi dan kontrol. levelConstants.LogLevelMengontrol tingkat pencetakan log SDK itu sendiri. save_logbooleanMenentukan apakah akan menyimpan log lokal. Jika diatur ke true, tentukan jalur melaluidebug_pathdalam Parameter koneksi dan kontrol, dan secara opsional atur ukuran file melaluimax_log_file_size. - Nilai kembalian
setParams
Mengatur Parameter pengenalan ucapan dalam format JSON. Panggil metode ini sebelum startDialog.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi paramsStringParameter pengenalan ucapan. - Nilai kembalian
startDialog
Memulai pengenalan.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi vad_modeVadModeMode VAD. Tetap pada VadMode.TYPE_P2T.dialog_paramsStringJika parameter apikeydalam Parameter koneksi dan kontrol menggunakan kunci API sementara, Anda dapat memperbaruinya di sini saat kedaluwarsa.Untuk meningkatkan akurasi pengenalan dengan menggunakan konteks, perbarui konteks di sini.Konten dalam format JSON: - Nilai kembalian
stopDialog
Mengakhiri pengenalan. Setelah Anda memanggil metode ini, server mengembalikan hasil pengenalan akhir dan mengakhiri tugas.
- Tanda tangan metode
- Nilai kembalian
cancelDialog
Mengakhiri pengenalan segera. Setelah Anda memanggil metode ini, tugas berakhir seketika tanpa menunggu server mengembalikan hasil pengenalan akhir.
- Tanda tangan metode
- Nilai kembalian
updateAction
Mengirimkan perintah tindakan selama interaksi untuk memperbarui perilaku runtime, seperti konteks pengenalan.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi paramsStringString JSON yang digunakan untuk memperbarui perilaku runtime, seperti konteks pengenalan. params.typeStringDiatur ke "action".params.commandStringPerintah runtime. Nilai yang valid: context: Segera memperbarui konteks untuk meningkatkan akurasi pengenalan.play_start: Ketika AEC pada perangkat digunakan, memberi tahu SDK bahwa pemutar telah mulai memutar audio.play_over: Ketika AEC pada perangkat digunakan, memberi tahu SDK bahwa pemutar telah selesai memutar audio.
params.contextStringKetika commanddiatur kecontext, segera memperbarui konteks untuk meningkatkan akurasi pengenalan. Nilainya adalah string JSON, seperti yang ditunjukkan dalam contoh berikut.
- Nilai kembalian
updateAudio
Ketika audio_update_manually diatur ke "true", panggil metode ini untuk mengirimkan data rekaman secara aktif alih-alih menyediakan data melalui onNuiNeedAudioData.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi databyte[]Data audio yang akan dikirimkan. lenintJumlah byte data audio yang akan dikirimkan. first_packbooleanAbaikan parameter ini. - Nilai kembalian
updateRefAudio
Ketika audio_update_manually diatur ke "true" dan AEC pada perangkat diaktifkan, panggil metode ini untuk mengirimkan audio yang diputar oleh pemutar sebagai sinyal referensi.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi databyte[]Data audio yang akan dikirimkan. lenintJumlah byte data audio yang akan dikirimkan. first_packbooleanAbaikan parameter ini. - Nilai kembalian
release
Melepaskan semua sumber daya internal SDK. Setelah Anda memanggil metode ini, instans SDK menjadi tidak tersedia. Untuk menggunakannya lagi, Anda harus menginisialisasi ulang dengan memanggil initialize.
- Tanda tangan metode
- Nilai kembalian
GetVersion
Mendapatkan informasi versi SDK saat ini.
- Tanda tangan metode
- Nilai kembalian Informasi versi SDK saat ini.
INativeNuiCallback: callback listener
onNuiEventCallback: mendengarkan peristiwa dan hasil pengenalan ucapan
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi eventNuiEventPeristiwa callback. resultCodeintHanya valid saat event EVENT_ASR_ERRORterjadi.arg2intParameter yang dipesan. asrResultAsrResultHasil pengenalan ucapan. kwsResultKwsResultFitur bangun suara. Anda tidak perlu menggunakan parameter ini.
onNuiAudioStateChanged: mendengarkan status audio
SDK menggunakan callback ini untuk memberi tahu Anda kapan harus memulai atau menghentikan perekaman.
- Tanda tangan metode
-
Status AudioState
Status Deskripsi STATE_OPENInteraksi telah dimulai. Anda dapat membuka perangkat perekaman dan mulai merekam. STATE_PAUSEInteraksi telah berhenti. Anda dapat menghentikan perekaman. STATE_CLOSEInstans SDK telah dilepaskan. Anda dapat menutup perangkat perekaman sepenuhnya.
onNuiNeedAudioData: menyediakan data audio untuk dikenali
Setelah pengenalan dimulai, callback ini dipicu secara terus-menerus. Sediakan data audio yang akan dikenali dalam callback ini.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi bufferbyte[]Data audio yang akan diisi. lenintJumlah byte data audio yang akan diisi. - Nilai kembalian Jumlah byte yang benar-benar diisi.
onNuiAssistEventCallback: menerima peristiwa dan data tambahan
Callback ini menerima peristiwa tambahan dan data terkait dari SDK.
- Tanda tangan metode
-
Parameter
Parameter Tipe Deskripsi eventintSebuah peristiwa NuiEvent.infoStringAbaikan parameter ini. info_lenintAbaikan parameter ini. databyte[]Data tambahan, seperti data audio yang diproses oleh AEC.
onNuiLogTrackCallback: mendengarkan log pelacakan
Callback ini menerima log internal terperinci dari SDK untuk membantu pemecahan masalah dan debugging.
NuiEvent: jenis peristiwa
| Peristiwa | Deskripsi |
|---|---|
EVENT_TRANSCRIBER_STARTED | Tugas berhasil dimulai. |
EVENT_VAD_START | Dipicu segera setelah tugas dimulai. Ini tidak berarti bahwa awal ucapan telah terdeteksi. |
EVENT_VAD_END | Akhir ucapan terdeteksi. |
EVENT_ASR_PARTIAL_RESULT | Hasil pengenalan ucapan sementara. |
EVENT_ASR_WARN | Terjadi peringatan yang tidak mengganggu pengenalan ucapan, seperti gangguan jaringan saat penyambungan ulang diaktifkan. |
EVENT_ASR_ERROR | Terjadi kesalahan selama pengenalan ucapan. |
EVENT_MIC_ERROR | Dipicu ketika tidak ada data audio yang diterima selama 2 detik berturut-turut. |
EVENT_SENTENCE_END | Akhir kalimat terdeteksi. Hasil pengenalan lengkap untuk kalimat tersebut dikembalikan. |
EVENT_TRANSCRIBER_COMPLETE | Pengenalan ucapan telah berakhir. |
EVENT_AEC_DATA | Data audio yang diproses oleh AEC. |