Skip to main content
Non-real-time speech recognition (Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash)

SDK iOS pengenalan ucapan non-real-time (Qwen-Audio-3.x-ASR-Flash/Fun-ASR-Flash)

SDK iOS pengenalan ucapan non-real-time Qwen-Audio-3.x-ASR-Flash/Fun-ASR-Flash mengubah ucapan menjadi teks.

Panduan pengguna: Pengenalan ucapan non-real-time. Untuk format audio yang didukung, batas ukuran file, batas durasi, dan persyaratan input lainnya, lihat Spesifikasi audio.

Panduan cepat

  1. Dapatkan kunci API: Dapatkan kunci API
  2. Unduh SDK dan jalankan kode contoh:
    • Unduh bundel SDK terbaru.
    • Ekstrak arsip ZIP dan tambahkan nuisdk.framework ke proyek.
    • Tambahkan nuisdk.xcframework di Build Phases → Link Binary With Libraries.
    • Di General → Frameworks, Libraries, and Embedded Content, atur nuisdk.xcframework ke Embed & Sign.
    • Buka proyek sampel di Xcode. Kode sampel ada di DashFunAsrFlashFileTranscriberViewController.m. Ganti kunci API untuk mencoba fitur ini.

Prosedur pemanggilan

Mode sinkron

  1. Inisialisasi SDK
  2. Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda
  3. Panggil nui_file_trans_start untuk mengirim permintaan pengenalan ucapan non-real-time.
  4. Gunakan onFileTransEventCallback untuk mendengarkan event EVENT_FILE_TRANS_RESULT dan mendapatkan hasil pengenalan akhir
  5. Panggil nui_release untuk melepaskan resource SDK

Parameter permintaan

Parameter koneksi dan kontrol

Berikan string JSON ke parameter parameters metode nui_initialize untuk mengonfigurasi pengaturan ini. Contoh parameter: String JSON berikut adalah contoh dan tidak mencantumkan semua parameter. Tambahkan parameter sesuai kebutuhan di kode Anda:
{
    "url": "wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Parameter
ParameterTipeWajibDeskripsi
urlStringYaEndpoint layanan:
  • wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
  • Tiongkok (Beijing): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
  • Singapura: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

Ganti {WorkspaceId} dengan ID Workspace.
apikeyStringYaAPI Key.
service_modeStringYaMode operasi. Untuk pengenalan ucapan non-real-time, atur parameter ini ke "1".
device_idStringYaString unik yang mengidentifikasi pengguna akhir. Anda dapat menggunakan ID pengguna dalam aplikasi atau pengidentifikasi perangkat unik yang dibuat klien. ID ini terutama digunakan untuk pelacakan log dan pemecahan masalah.
debug_pathStringTidakJalur untuk file log. Parameter ini hanya berlaku saat Anda memanggil nui_initialize dengan save_log diatur ke YES. Dalam hal ini, Anda harus menentukan jalur file log. Jika tidak, akan terjadi error. Hingga dua file log dipertahankan secara lokal.
max_log_file_sizeintTidakUkuran file log maksimum dalam byte. Parameter ini hanya berlaku saat Anda memanggil nui_initialize dengan save_log diatur ke YES. Default: 104857600 (100 * 1024 * 1024 byte, atau 100 MiB).
log_track_levelintTidakTingkat pemfilteran untuk log yang dikirim melalui callback logging (onFileTransLogTrackCallback). 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). Catatan: log_track_level dan level (dikonfigurasi melalui metode nui_initialize) bersama-sama menentukan log mana yang dikirimkan. Tingkat numerik log harus lebih besar dari atau sama dengan log_track_level dan level agar log dapat dikirimkan. Misalnya, jika log_track_level diatur ke 2 (INFO) dan level diatur ke 3 (WARNING), hanya log WARNING dan tingkat keparahan yang lebih tinggi (tingkat numerik >= 3) yang dikirimkan.

Parameter pengenalan

Gunakan nui_file_trans_start untuk mengonfigurasi semua parameter pengenalan. Contoh parameter: String JSON berikut adalah contoh dan tidak mencantumkan semua parameter. Tambahkan parameter sesuai kebutuhan di kode Anda:
{
  "apikey": "st-****",
  "messages": [
    {
      "content": [
        {
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          },
          "type": "input_audio"
        }
      ],
      "role": "user"
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}
Parameter
ParameterTipeWajibDeskripsi
apikeystringTidakJika Connection and control parameters apikey menggunakan temporary API key, Anda dapat memperbaruinya di sini untuk mencegah kedaluwarsa.
nls_configobjectYaObjek konfigurasi pengenalan ucapan inti, termasuk model dan parameter yang mengontrol pengenalan.
nls_config.modelstringYaModel yang digunakan dalam contoh. Untuk informasi model, lihat Model dan wilayah yang didukung.
nls_config.formatstringYaFormat audio. Atur parameter ini ke format aktual. Format yang didukung meliputi wav, mp3, opus. Untuk detailnya, lihat Audio specifications.
nls_config.sample_ratestringTidakTingkat sampel audio dalam Hz. Misalnya, 16000 menunjukkan tingkat sampel 16 kHz. Untuk detailnya, lihat Audio specifications.
nls_config.vocabulary_idstringTidakID kosakata yang telah dikompilasi sebelumnya. Buat kosakata terlebih dahulu dan berikan ID-nya selama pengenalan untuk menggunakan kata kuncinya. Gunakan opsi ini jika kosakata sudah diketahui, relatif stabil, dan digunakan kembali di berbagai permintaan. Untuk petunjuk penggunaan, lihat Kata kunci yang telah dikompilasi sebelumnya.
nls_config.instant_vocabularyobjectTidakKata kunci instan.
Berikan pasangan kunci-nilai. Kuncinya adalah teks kata kunci (string) dan nilainya adalah bobotnya (integer). Anda tidak perlu membuat kosakata terlebih dahulu. Bobot yang valid adalah [1, 5] atau 50. Dalam rentang [1, 5], bobot yang lebih tinggi membuat model lebih mungkin menghasilkan kata tersebut. Bobot 50 menentukan kata kunci super dan secara signifikan meningkatkan recall. Anda dapat menentukan hingga 50 kata kunci super.
Gunakan opsi ini untuk optimasi kata kunci sementara tingkat sesi.
Jika kata kunci instan dan yang telah dikompilasi sebelumnya dikonfigurasi, sistem akan menggabungkannya. Jika daftar gabungan melebihi 2000 entri, sistem akan memilih 2000 entri secara acak. Untuk petunjuk penggunaan, lihat Kata kunci instan.
Untuk model dan batas yang berlaku untuk hotword instan, lihat Hotword instan.

{
  "张三": 5,
  "李四": 5
}
nls_config.language_hintsarray[string]TidakKode bahasa untuk pengenalan. Jika bahasa tidak diketahui sebelumnya, abaikan parameter ini agar model mendeteksinya secara otomatis.
Untuk model Qwen-Audio-3.0-ASR-Flash, didukung hingga empat nilai. Jika lebih dari itu yang ditentukan, hanya empat pertama yang berlaku. Untuk model Fun-ASR-Flash, hanya satu nilai yang didukung. Jika beberapa nilai ditentukan, hanya nilai pertama yang berlaku.
  • Qwen-Audio-3.x-ASR-Flash, fun-asr-flash-2026-06-15:
  • zh: Tiongkok
  • en: Inggris
  • ja: Jepang
  • ko: Korea
  • vi: Vietnam
  • th: Thai
  • id: Indonesia
  • ms: Melayu
  • tl: Filipino
  • 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
messagesarray[object]YaDaftar pesan. Berisi audio yang akan dikenali dan konteks percakapan opsional untuk meningkatkan pengenalan.
Lihat deskripsi berikut.
parameter messages:
Konteks meningkatkan akurasi pengenalan istilah khusus. Untuk petunjuk penggunaan, lihat Context enhancement.Batasan: Pesan konteks (tipe input_text dan text ) dibatasi masing-masing lima. Jika batas terlampaui, hanya lima pesan terbaru yang dipertahankan. Total panjang teks konteks per giliran (jumlah panjang bidang user dan assistant text ) tidak boleh melebihi 400 karakter. Setiap karakter dihitung sebagai satu. Karakter berlebih akan dipotong dari akhir.
Jika konteks disertakan, pesan messages harus mengikuti urutan tertentu. Atur pesan konteks berdasarkan giliran percakapan. Dalam setiap giliran, user (tipe input_text ) harus mendahului assistant (tipe text ) yang sesuai. Pesan input_audio user yang berisi audio input harus ditempatkan di akhir messages .
ParameterTipeWajibDeskripsi
rolestringYaPeran pesan. Nilai yang valid:
  • user (wajib): Pesan pengguna. Jika tipe adalah input_audio, ini mewakili audio yang akan dikenali. Jika tipe adalah input_text, ini mewakili hasil pengenalan dari giliran sebelumnya atau kosakata spesifik domain (konteks opsional).
  • assistant (konteks opsional): Respons model bahasa besar dari percakapan sebelumnya.
contentarray[object]YaDaftar isi pesan. Lihat deskripsi berikut.
parameter content:
ParameterTipeWajibDeskripsi
typestringYaTipe konten. Setiap permintaan memerlukan setidaknya satu input_audio pesan. Nilai yang valid:
  • input_audio (wajib): Input audio yang akan dikenali (role adalah user). Anda juga harus menyediakan objek input_audio.
  • input_text (konteks opsional): Hasil pengenalan ucapan pengguna dari percakapan sebelumnya atau kosakata khusus domain (role adalah user). Anda juga harus menyediakan bidang text.
  • text (konteks opsional): Respons model bahasa besar dari percakapan sebelumnya (role adalah assistant). Anda juga harus menyediakan bidang text.
input_audioobjectTidakWajib diisi ketika type adalah input_audio.
input_audio.datastringYaData audio yang akan dikenali. Untuk format audio yang didukung, batas ukuran file, batas durasi, dan persyaratan input lainnya, lihat Spesifikasi audio. Dua metode input berikut didukung:
  • URL file audio: Berikan URL file audio yang dapat diakses secara publik.
  • Base64 Data URI: Berikan audio yang dienkode Base64 sebagai Data URI. Gabungkan prefiks data:{MIME_TYPE};base64, dengan data audio yang dienkode Base64. Jenis MIME yang didukung meliputi audio/wav, audio/mp3.

Contoh (URL): https://example.com/audio/sample.wav
Contoh (Base64): data:audio/wav;base64,{BASE64_ENCODED_DATA}
textstringTidakWajib jika type adalah input_text, berikan hasil pengenalan ucapan pengguna dari giliran sebelumnya atau kosakata spesifik domain. Jika type adalah text, berikan respons model bahasa besar dari giliran sebelumnya. Panjang teks dihitung dalam karakter, dengan setiap karakter dihitung sebagai satu. Total panjang semua bidang text pesan di setiap giliran konteks tidak boleh melebihi 400 karakter. Karakter berlebih akan dipotong dari akhir.

Antarmuka utama

NeoNui

nui_initialize

Inisialisasi instance SDK pengenalan ucapan. SDK menggunakan singleton. Jangan inisialisasi ulang sebelum memanggil nui_release . Signature metode
- (NuiResultCode) nui_initialize:(const char *)parameters
                       logLevel:(NuiSdkLogLevel)level
                        saveLog:(BOOL)save_log;
Parameter
ParameterTipeDeskripsi
parameterschar*String JSON yang berisi parameter autentikasi, koneksi, dan debugging. Lihat Connection and control parameters.
levelNuiSdkLogLevelLevel log yang dicetak oleh SDK.
save_logBOOLApakah akan menyimpan log secara lokal. Jika diatur ke YES, gunakan Connection and control parameters untuk mengatur debug_path guna menentukan path, dan gunakan max_log_file_size untuk mengatur ukuran file.

nui_set_params

Gunakan metode ini untuk mengatur atau memperbarui nls_config secara terpisah. Anda tidak perlu memanggil metode ini jika semua parameter disediakan dalam nui_file_trans_start dalam satu panggilan. Signature metode
- (NuiResultCode) nui_set_params:(const char *)params;
Parameter
ParameterTipeDeskripsi
paramschar*Parameter pengenalan di nls_config dan parameter messages.
Contoh:
{
  "messages": [
    {
      "content": [
        {
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          },
          "type": "input_audio"
        }
      ],
      "role": "user"
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}

nui_file_trans_start

Mulai pengenalan. Signature metode
- (NuiResultCode) nui_file_trans_start:(const char *)params
                             taskId:(char *)task_id;
Parameter
ParameterTipeDeskripsi
paramschar*Parameter pengenalan. Contoh:
{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_audio",
          "input_audio": {
            "data": "{YOUR_AUDIO_URL}"
          }
        }
      ]
    }
  ],
  "nls_config": {
    "format": "mp3",
    "model": "qwen-audio-3.0-asr-flash"
  }
}
task_idchar*Anda dapat mengabaikan parameter ini dan meneruskan null.

nui_file_trans_query

Fitur pengenalan ucapan non-real-time ini hanya mendukung permintaan sinkron. Anda dapat mengabaikan metode ini. Signature metode
- (NuiResultCode) nui_file_trans_query:(const char *)task_id;
Parameter
ParameterTipeDeskripsi
task_idchar*ID tugas yang akan dikueri, diperoleh dari EVENT_FILE_TRANS_UPLOADED.

nui_file_trans_cancel

Segera batalkan tugas saat ini. Signature metode
- (NuiResultCode) nui_file_trans_cancel:(const char *)task_id;
Parameter
ParameterTipeDeskripsi
task_idchar*ID tugas yang akan dibatalkan, diperoleh dari EVENT_FILE_TRANS_UPLOADED.

nui_release

Lepaskan semua sumber daya internal SDK dan hentikan paksa semua tugas yang sedang berlangsung. Setelah panggilan ini, instans SDK menjadi tidak tersedia. Untuk menggunakannya lagi, panggil nui_initialize untuk menginisialisasinya kembali. Signature metode
- (NuiResultCode) nui_release;

nui_get_version

Dapatkan versi SDK saat ini. Signature metode
- (const char*) nui_get_version;
Nilai kembalian Versi SDK saat ini.

NeoNuiSdkDelegate: Callback

onFileTransEventCallback: Dengarkan event dan hasil pengenalan

Signature metode
- (void) onFileTransEventCallback:(NuiCallbackEvent)nuiEvent
                       asrResult:(const char *)asr_result
                          taskId:(const char *)task_id
                        ifFinish:(BOOL)finish
                         retCode:(int)code;
Parameter
ParameterTipeDeskripsi
nuiEventNuiCallbackEventEvent callback.
asr_resultchar*Hasil pengenalan ucapan.
task_idchar*ID tugas.
finishBOOLApakah pengenalan untuk giliran ini telah selesai.
codeintHanya valid saat event EVENT_ASR_ERROR terjadi.

onFileTransLogTrackCallback: Dengarkan log pelacakan

Callback ini menerima log internal SDK yang terperinci untuk pemecahan masalah dan debugging.
- (void)onFileTransLogTrackCallback:(NuiSdkLogLevel)level
                        logMessage:(const char *)log;

NuiCallbackEvent: Tipe event

EventDeskripsi
EVENT_FILE_TRANS_CONNECTEDBerhasil terhubung ke layanan.
EVENT_FILE_TRANS_UPLOADEDFile audio berhasil diunggah. Anda dapat memperoleh task_id saat ini pada titik ini.
EVENT_FILE_TRANS_RESULTHasil pengenalan akhir.
EVENT_ASR_ERRORTerjadi error selama pengenalan ucapan.
Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
  • Pembuatan audio
Realtime API
Penyematan Teks
TokenPlan
Model production