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

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

SDK HarmonyOS 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 API key: Get an API key. Untuk keamanan, kami menyarankan Anda mengonfigurasi API key di variabel lingkungan.
  2. Unduh SDK dan jalankan kode contoh:
    • Unduh bundel SDK terbaru.
    • Ekstrak arsip TAR. Dapatkan SDK dalam format HAR dari neonui dan tambahkan ke dependensi proyek Anda. Untuk integrasi C++, gunakan native/libs dan native/include dalam arsip TAR untuk mendapatkan pustaka dinamis dan file header.
    • Buka proyek di DevEco Studio. Kode contoh ada di DashFunAsrFlashFileTranscriberPage.ets. Ganti kunci API untuk mencoba fitur ini.

Prosedur pemanggilan

Mode sinkron

  1. Inisialisasi SDK
  2. Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda
  3. Panggil startFileTranscriber untuk mengirim permintaan pengenalan ucapan non-real-time dan menunggu hasilnya.
  4. Gunakan onFileTransEventCallback untuk mendengarkan event EVENT_FILE_TRANS_RESULT dan mendapatkan hasil pengenalan akhir.
  5. Panggil release untuk melepaskan sumber daya SDK

Parameter permintaan

Parameter koneksi dan kontrol

Berikan string JSON ke parameter parameters metode initializeFileTrans 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://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Parameter
ParameterTipeWajibDeskripsi
urlstringYaEndpoint layanan. Atur parameter ini ke wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation. Ganti {WorkspaceId} dengan ID Workspace aktual Anda.
apikeystringYaKunci API. Kami menyarankan untuk menggunakan kunci API sementara yang berumur pendek dan lebih aman untuk mengurangi risiko paparan kunci yang berumur panjang.
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 jika Anda memanggil initializeFileTrans dengan save_log diatur ke true. Dalam kasus ini, Anda harus menentukan jalur file log. Jika tidak, akan terjadi error. Hingga dua file log dipertahankan secara lokal.
max_log_file_sizenumberTidakUkuran file log maksimum dalam byte. Parameter ini hanya berlaku jika Anda memanggil initializeFileTrans dengan save_log diatur ke true. Default: 104857600 (100 * 1024 * 1024 byte, atau 100 MiB).

Parameter pengenalan

Gunakan setParams untuk mengonfigurasi parameter nls_config, atau gunakan startFileTranscriber 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. Tipe 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

NativeNui

initializeFileTrans

Inisialisasi instance SDK pengenalan ucapan.
Berbeda dengan pengenalan ucapan real-time, transkripsi non-real-time (file rekaman) memerlukan initializeFileTrans dengan callback INativeFileTransCallback alih-alih initialize.
Metode ini memblokir. Panggil dari thread non-UI. Signature metode
public initializeFileTrans(callback: INativeFileTransCallback,
                           parameters: string,
                           level: number,
                           save_log: boolean = false): number
Parameter
ParameterTipeDeskripsi
callbackINativeFileTransCallbackImplementasi antarmuka callback data dan event transkripsi file.
parametersstringString JSON yang berisi parameter autentikasi, koneksi, dan debugging. Lihat Connection and control parameters.
levelnumberTingkat log SDK. Gunakan nilai dari enumerasi .
save_logbooleanApakah akan menyimpan log secara lokal. Jika diatur ke true, gunakan Connection and control parameters untuk mengatur debug_path guna menentukan path, dan gunakan max_log_file_size untuk mengatur ukuran file.

setParams

Gunakan metode ini untuk mengatur atau memperbarui nls_config secara terpisah. Anda tidak perlu memanggil metode ini jika semua parameter disediakan dalam startFileTranscriber dalam satu panggilan. Signature metode
public setParams(params: string): number
Parameter
ParameterTipeDeskripsi
paramsstringParameter pengenalan dalam parameter nls_config; parameter di luar nls_config tidak dapat diatur dengan metode ini.

startFileTranscriber

Mulai pengenalan. Signature metode
public startFileTranscriber(params: string, task_id: ArrayBuffer): number
Parameter
ParameterTipeDeskripsi
paramsstringParameter pengenalan.
Contoh:
{
 "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"
 }
}
task_idArrayBufferBuffer ID tugas. SDK menulis string ID tugas acak yang dihasilkan secara internal ke buffer ini. Panjang byte-nya harus >= 33 byte (contoh menggunakan new ArrayBuffer(64)). Setelah panggilan berhasil, dekode buffer untuk mendapatkan task_id tugas.

queryFileTranscriber

Gunakan metode ini untuk mengkueri status dan hasil saat ini dari tugas asinkron. Setelah panggilan berhasil, hasil dikembalikan melalui event EVENT_FILE_TRANS_QUERY_RESULT callback onFileTransEventCallback. Signature metode
public queryFileTranscriber(task_id: string): number
Parameter
ParameterTipeDeskripsi
task_idstringID tugas yang akan dikueri (ditulis ke buffer oleh startFileTranscriber ).

cancelFileTranscriber

Segera batalkan tugas saat ini. Signature metode
public cancelFileTranscriber(task_id: string): number
Parameter
ParameterTipeDeskripsi
task_idstringID tugas yang akan dibatalkan.

release

Lepaskan semua sumber daya internal SDK. Setelah pemanggilan ini, instance SDK menjadi tidak tersedia. Untuk menggunakannya lagi, panggil initializeFileTrans untuk menginisialisasinya kembali. Signature metode
public release(): number

GetVersion

Dapatkan versi SDK saat ini. Signature metode
public GetVersion(): string
Nilai kembalian Versi SDK saat ini.

INativeFileTransCallback: Callback

onFileTransEventCallback: Dengarkan event dan hasil pengenalan

Signature metode
onFileTransEventCallback: (event: Constants.NuiEvent, resultCode: number, finish: number,
                           asrResult: AsrResult, taskId: string) => void;
Parameter
ParameterTipeDeskripsi
eventConstants.NuiEventEvent callback.
resultCodenumberHanya valid saat event EVENT_ASR_ERROR terjadi.
finishnumberApakah tugas telah selesai.
asrResultAsrResultHasil pengenalan ucapan.
taskIdstringID tugas.

onFileTransLogTrackCallback: Dengarkan log pelacakan

Callback ini menerima log internal SDK yang terperinci untuk pemecahan masalah dan debugging. Untuk menggunakan callback ini, unduh paket SDK HarmonyOS tertanggal 20260908 atau lebih baru.
onFileTransLogTrackCallback?: (level: Constants.LogLevel, log: string) => void;

Jenis event

Dalam SDK HarmonyOS, tipe event didefinisikan oleh enumerasi Constants.NuiEvent . Event berikut terkait dengan transkripsi file rekaman:
EventDeskripsi
EVENT_FILE_TRANS_CONNECTEDBerhasil terhubung ke layanan.
EVENT_FILE_TRANS_UPLOADEDFile audio berhasil diunggah.
EVENT_FILE_TRANS_QUERY_RESULTHasil kueri tugas.
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