Pelajari parameter, antarmuka, callback, dan penggunaan SDK iOS untuk Qwen-Audio-ASR-Streaming.
Mulai cepat
- Dapatkan API key: Dapatkan API key
-
Unduh SDK dan jalankan kode contoh:
- Unduh paket SDK terbaru.
- Ekstrak paket ZIP dan tambahkan
nuisdk.xcframeworkyang disertakan ke proyek Anda. - Di Build Phases → Link Binary With Libraries, tambahkan
nuisdk.xcframework. - Di General → Frameworks, Libraries, and Embedded Content, atur
nuisdk.xcframeworkke Embed & Sign. - Buka proyek contoh di Xcode. Kode contoh berada di
DashFunAsrSpeechTranscriberViewController.m. Ganti API key dengan milik Anda untuk mencoba fitur ini.
Urutan pemanggilan
- Inisialisasi SDK.
- Atur parameter sesuai kebutuhan: gunakan
nui_initializeuntuk parameter koneksi dan kontrol, sertanui_set_paramsuntuk parameter kualitas pengenalan. - Panggil
nui_dialog_startuntuk memulai pengenalan. - Dalam callback
onNuiAudioStateChanged, buka perangkat perekaman sesuai status audio. - Pasok data rekaman secara berkelanjutan dalam
onNuiNeedAudioData, atau panggilnui_update_audio_datauntuk mengirimkannya secara aktif. - Dalam
onNuiEventCallback, pantau peristiwa dan ambil hasil pengenalan ucapan. - Panggil
nui_dialog_canceluntuk menghentikan pengenalan, lalu pastikan pengenalan selesai melalui peristiwaEVENT_TRANSCRIBER_COMPLETE. - Saat pengenalan tidak lagi diperlukan, panggil
nui_releaseuntuk melepaskan sumber daya SDK.
Parameter permintaan
Parameter koneksi dan kontrol
Atur parameter ini dengan meneruskan string JSON ke argumen parameters pada nui_initialize.
Contoh parameter: String JSON berikut adalah contoh dan tidak mencantumkan semua parameter. Tambahkan parameter yang diperlukan saat menulis kode.
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
url | String | Ya | Alamat layanan:
{WorkspaceId} dengan ID Workspace Anda yang sebenarnya. |
apikey | String | Ya | API key. |
service_mode | String | Ya | Mode operasi. Tetapkan ke "1" untuk pengenalan ucapan real-time. |
device_id | String | Ya | String unik yang mengidentifikasi pengguna akhir. Gunakan ID pengguna aplikasi atau pengenal perangkat yang dibuat di klien. ID ini terutama digunakan untuk pelacakan log dan pemecahan masalah. |
audio_update_manually | String | Tidak | Mengaktifkan pengiriman data audio secara aktif atau tidak. Default: "false". Jika diatur ke "true" dan versi SDK mendukung pemrosesan audio pada perangkat seperti AEC atau VAD, kemampuan tersebut diaktifkan secara default. |
workspace | String | Tidak | Jalur tempat file sumber daya pada perangkat disimpan. Parameter ini diperlukan ketika audio_update_manually diatur ke "true" dan kemampuan pemrosesan audio pada perangkat seperti AEC atau VAD diaktifkan. |
debug_path | String | Tidak | Lokasi penyimpanan file log. Berlaku hanya jika save_log diatur ke YES pada nui_initialize. Dalam hal ini, lokasi wajib diatur; jika tidak, terjadi kesalahan. Maksimal dua file log disimpan secara lokal. |
save_wav | String | Tidak | Menyimpan audio debug atau tidak. Audio disimpan di debug_path. Default: "false". "true" menyimpan file; "false" tidak menyimpannya. Berlaku hanya jika save_log diatur ke true pada nui_initialize. debug_path juga wajib diatur. |
max_log_file_size | int | Tidak | Ukuran maksimum file log dalam byte. Berlaku hanya jika save_log diatur ke YES pada nui_initialize. Default: 104857600 (100 × 1024 × 1024 byte, yaitu 100 MiB). |
log_track_level | int | Tidak | Level filter log yang dikembalikan melalui onNuiLogTrackCallback. Default: 2. Nilai: 0 (LOG_LEVEL_VERBOSE), 1 (LOG_LEVEL_DEBUG), 2 (LOG_LEVEL_INFO), 3 (LOG_LEVEL_WARNING), 4 (LOG_LEVEL_ERROR), 5 (LOG_LEVEL_NONE, nonaktif). Log dikembalikan hanya jika levelnya lebih besar dari atau sama dengan log_track_level dan level pada nui_initialize. Misalnya, dengan nilai 2 (INFO) dan 3 (WARNING), hanya log WARNING dan di atasnya (nilai ≥ 3) yang dikembalikan. |
Parameter kualitas pengenalan
Atur parameter ini dengan meneruskan string JSON ke argumen params pada nui_set_params.
Contoh parameter: String JSON berikut adalah contoh dan tidak mencantumkan semua parameter. Tambahkan parameter yang diperlukan saat menulis kode.
| Parameter tingkat atas | Tipe | Wajib | Deskripsi |
|---|---|---|---|
service_type | int | Ya | Jenis layanan suara. Tetapkan ke 4 untuk pengenalan ucapan real-time. |
nls_config | object | Ya | Objek konfigurasi utama pengenalan. Mencakup parameter seperti pemilihan model dan kontrol kualitas pengenalan. |
nls_config.model | string | Ya | Nama model. |
nls_config.sr_format | string | Ya | Format audio.Nilai yang valid:
|
nls_config.sample_rate | int | Ya | Laju sampel dalam Hz. Semua laju sampel didukung. |
nls_config.semantic_punctuation_enabled | boolean | Tidak | Apakah akan mengaktifkan segmentasi semantik.Nilai default: false.
|
nls_config.max_sentence_silence | int | Tidak | 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_enabled diatur ke true, parameter ini tidak digunakan sebagai kriteria untuk mengembalikan sentence_end, namun mengaturnya terlalu rendah dapat memengaruhi kinerja pengenalan.Nilai default: 1300.Nilai yang valid: [200, 6000]. |
nls_config.multi_threshold_mode_enabled | boolean | Tidak | Mengaktifkan mode multi-ambang atau tidak. Jika diaktifkan, segmen VAD tidak menjadi terlalu panjang.Nilai default: false. |
nls_config.heartbeat | boolean | Tidak | Apakah akan mengaktifkan paket heartbeat.Nilai default: false.
|
nls_config.vocabulary_id | string | Tidak | ID dari daftar hotword yang telah dikompilasi sebelumnya.Hasilkan ID ini terlebih dahulu dengan memanggil API buat daftar hotword. Teruskan ID selama pengenalan untuk menggunakan hotword dalam daftar.Cocok untuk skenario di mana kosakata diketahui dan relatif stabil, dan di mana Anda perlu menggunakan kembali daftar kata yang sama di berbagai permintaan.Untuk detail penggunaan, lihat Hotword yang telah dikompilasi sebelumnya. |
nls_config.instant_vocabulary | object | Tidak | Kata panas instan.Diteruskan sebagai pasangan kunci-nilai, di mana kuncinya adalah teks hotword (string) dan nilainya adalah bobot hotword (integer). Tidak perlu membuat daftar hotword terlebih dahulu. Bobot berkisar dari [1, 5] atau diatur ke 50: nilai dalam [1, 5] membuat model lebih mungkin mengeluarkan kata tersebut seiring bertambahnya nilai; nilai 50 menetapkan super hotword, yang sangat meningkatkan recall, tetapi jumlah super hotword tidak boleh melebihi 50.Cocok untuk pengoptimalan kata panas sementara tingkat sesi.Ketika hotword instan dan hotword prakompilasi dikonfigurasi bersama, sistem menggabungkan kedua set tersebut. Jika set gabungan berisi lebih dari 2000 hotword, sistem memilih 2000 secara acak untuk digunakan. Untuk detail penggunaan, lihat Hotword instan. |
nls_config.language_hints | array[string] | Tidak | Bahasa audio yang akan dikenali. Tidak ada nilai default; jika tidak diatur, model mendeteksi bahasa secara otomatis.Anda dapat menetapkan hingga 4 nilai. Jika lebih, hanya 4 nilai pertama yang berlaku.
Click to view the supported language codes
|
nls_config.speech_noise_threshold | float | Tidak | Ambang batas untuk membedakan ucapan dari kebisingan, digunakan untuk menyesuaikan sensitivitas Deteksi Aktivitas Suara (VAD).Nilai yang valid: [-1.0, 1.0].Deskripsi nilai:
|
nls_config.special_word_filter | object | Tidak | 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_check | BOOL | Tidak | Mengaktifkan pemeriksaan jaringan cepat untuk melaporkan koneksi terputus sesegera mungkin. Default: NO. |
API utama
NeoNui
nui_initialize
Menginisialisasi instance SDK pengenalan ucapan. SDK bersifat singleton. Jangan menginisialisasinya lagi sebelum memanggil nui_release.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
parameters | char* | String JSON yang berisi parameter autentikasi, koneksi, dan debugging. Lihat Parameter koneksi dan kontrol. |
level | NuiSdkLogLevel | Tingkat cetak untuk log SDK itu sendiri. |
save_log | BOOL | Apakah akan menyimpan log secara lokal. Jika diatur ke YES, tentukan jalur dengan debug_path di parameter koneksi dan kontrol, dan secara opsional atur ukuran file dengan max_log_file_size. |
nui_set_params
Menetapkan parameter kualitas pengenalan dalam format JSON. Panggil sebelum nui_dialog_start.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
params | char* | Parameter kualitas pengenalan. |
nui_dialog_start
Memulai pengenalan.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
vad_mode | NuiVadMode | Mode VAD. Tetap pada MODE_P2T. |
dialog_params | char* | Jika apikey pada parameter koneksi dan kontrol menggunakan API key sementara, perbarui di sini saat kedaluwarsa. Anda juga dapat memberikan konteks untuk meningkatkan akurasi melalui pengayaan konteks.Konten menggunakan format JSON: |
nui_dialog_cancel
Mengakhiri pengenalan atau langsung membatalkan interaksi saat ini.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
force | BOOL | Menentukan apakah penghentian dipaksa dan hasil akhir dibuang. YES: akhiri segera tanpa menunggu hasil akhir dari server. NO: akhiri tugas, tetapi tunggu hasil lengkap. |
nui_dialog_action
Mengirim tindakan selama interaksi untuk memperbarui konteks pengenalan atau perilaku runtime lainnya.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
action_params | char* | String JSON untuk memperbarui konteks pengenalan atau perilaku runtime lainnya. |
action_params.type | String | Tetapkan ke "action". |
action_params.command | String | Perintah runtime. context: segera memperbarui pengayaan konteks untuk meningkatkan akurasi. play_start: saat AEC pada perangkat digunakan, memberi tahu pemutar AEC internal bahwa pemutaran audio dimulai. play_over: memberi tahu bahwa pemutaran audio selesai. |
action_params.context | String | Jika command bernilai "context", berikan pengayaan konteks yang akan langsung diperbarui. Contoh: |
nui_update_audio_data
Jika audio_update_manually bernilai "true", data rekaman tidak lagi dipasok melalui onNuiNeedAudioData. Gunakan metode ini untuk mengirimkannya secara aktif.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
data | const char * | Data audio yang akan di-push. |
length | int | Panjang data audio, dalam byte. |
first_pack | BOOL | Anda tidak perlu menggunakan parameter ini. |
nui_push_reference_data
Jika audio_update_manually bernilai "true" dan AEC pada perangkat diaktifkan, gunakan metode ini untuk mengirim audio yang diputar sebagai sinyal referensi.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
data | const char * | Data audio yang akan di-push. |
length | int | Panjang data audio, dalam byte. |
first_pack | BOOL | Anda tidak perlu menggunakan parameter ini. |
nui_release
Melepaskan seluruh sumber daya internal SDK dan menghentikan paksa semua tugas berjalan. Instance tidak dapat digunakan setelah pemanggilan ini. Untuk menggunakannya kembali, inisialisasi ulang dengan nui_initialize.
Method signature
nui_get_version
Mendapatkan versi SDK saat ini. Metode ini mengembalikan nilai hanya setelah nui_initialize dipanggil.
Method signature
nui_get_all_response
Mendapatkan informasi lengkap callback peristiwa saat ini.
Method signature
NeoNuiSdkDelegate: listener callback
onNuiEventCallback: menerima peristiwa dan hasil pengenalan ucapan
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
nuiEvent | NuiCallbackEvent | Event callback. |
dialog | long | ID Sesi. Anda tidak perlu menggunakan parameter ini. |
wuw | char* | Voice wake-up. Anda tidak perlu menggunakan parameter ini. |
asr_result | char* | Hasil pengenalan ucapan. |
finish | BOOL | Apakah putaran pengenalan saat ini telah selesai. |
code | int | Hanya valid saat event EVENT_ASR_ERROR terjadi. |
onNuiAudioStateChanged: memantau status audio
SDK menggunakan callback ini untuk memberi tahu kapan perekaman dimulai atau dihentikan.
Method signature
| Parameter | Deskripsi |
|---|---|
STATE_OPEN | Interaksi telah dimulai. Anda dapat membuka perangkat perekaman dan memulai perekaman. |
STATE_PAUSE | Interaksi telah berhenti. Anda dapat menghentikan perekaman. |
STATE_CLOSE | Instans SDK telah dilepaskan. Anda dapat menutup perangkat perekaman sepenuhnya. |
onNuiNeedAudioData: memasok data audio untuk pengenalan
Setelah pengenalan dimulai, callback ini dipicu terus-menerus. Pasok data audio yang akan dikenali di dalamnya.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
audioData | char* | Data audio yang akan diberikan. |
len | int | Ukuran data audio yang diberikan, dalam byte. |
onNuiAssistEventCallback: menerima data dan informasi tambahan
Menerima peristiwa tambahan dan data terkait dari SDK.
Method signature
| Parameter | Tipe | Deskripsi |
|---|---|---|
nuiEvent | NuiCallbackEvent | Event callback. |
info | char* | Anda tidak perlu menggunakan parameter ini. |
info_len | int | Anda tidak perlu menggunakan parameter ini. |
buffer | char* | Data tambahan, seperti audio setelah pemrosesan AEC. |
len | int | Panjang data tambahan, dalam byte. |
onNuiLogTrackCallback: menerima log pelacakan
Callback ini menerima log internal SDK yang terperinci untuk membantu pelacakan dan debug masalah.
NuiCallbackEvent: jenis peristiwa
| Peristiwa | Deskripsi |
|---|---|
EVENT_TRANSCRIBER_STARTED | Tugas berhasil dimulai. |
EVENT_VAD_START | Dipicu segera setelah tugas dimulai. Ini tidak berarti awal ucapan telah terdeteksi. |
EVENT_VAD_END | Akhir ucapan terdeteksi. |
EVENT_ASR_PARTIAL_RESULT | Hasil pengenalan ucapan sementara. |
| EVENT_ASR_ERROR | Terjadi error selama pengenalan ucapan. |
EVENT_MIC_ERROR | Dipicu karena 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 selesai. |
EVENT_AEC_DATA | Data audio setelah pemrosesan pembatalan gema akustik (AEC). |