All Products
Search
Document Center

Alibaba Cloud Model Studio:SDK Android pengenalan suara non-real-time Qwen-Audio-ASR-Filetrans

Last Updated:Oct 29, 2026

Panduan ini menunjukkan cara mengonversi suara menjadi teks dengan SDK Android pengenalan suara non-real-time Qwen-Audio-ASR-Filetrans.

Untuk persyaratan input seperti format audio yang didukung, batas ukuran file, dan batas durasi, lihat Spesifikasi audio.

Mulai cepat

  1. Dapatkan kunci API: Dapatkan kunci API. Untuk keamanan yang lebih baik, simpan kunci API dalam variabel lingkungan.

  2. Unduh SDK dan jalankan kode contoh:
    • Unduh paket SDK terbaru.
    • Ekstrak paket ZIP. Temukan SDK format AAR di direktori app/libs dan tambahkan ke dependensi proyek Anda. Untuk integrasi Android C++, gunakan android_libs dan android_include dalam paket ZIP untuk mendapatkan pustaka dinamis dan file header.
    • Buka proyek di Android Studio. Kode contoh ada di DashFunAsrFileTranscriberActivity.java. Ganti kunci API, lalu coba fitur tersebut.

Prosedur pemanggilan

Mode sinkron

  1. Inisialisasi SDK.
  2. Konfigurasikan parameter yang dibutuhkan oleh bisnis Anda.
  3. Atur async_request ke false dan panggil startFileTranscriber untuk mengirimkan permintaan pengenalan suara non-real-time dan menunggu hasilnya.
  4. Dengarkan event EVENT_FILE_TRANS_RESULT di antarmuka onFileTransEventCallback untuk mendapatkan hasil pengenalan akhir.
  5. Panggil release untuk melepaskan sumber daya SDK.

Mode asinkron

  1. Inisialisasi SDK.
  2. Konfigurasikan parameter yang dibutuhkan oleh bisnis Anda.
  3. Atur async_request ke true dan panggil startFileTranscriber untuk mengirimkan permintaan pengenalan suara non-real-time.
  4. Panggil queryFileTranscriber untuk melakukan polling terhadap progres dan hasil pengenalan.
  5. Dengarkan event EVENT_FILE_TRANS_QUERY_RESULT di antarmuka onFileTransEventCallback untuk mendapatkan hasil kueri saat ini.
  6. Dengarkan event EVENT_FILE_TRANS_RESULT di antarmuka onFileTransEventCallback untuk mendapatkan hasil pengenalan akhir.
  7. Panggil release untuk melepaskan sumber daya SDK.

Parameter permintaan

Parameter koneksi dan kontrol

Konfigurasikan parameter ini dengan meneruskan string JSON dalam argumen parameters dari antarmuka initialize.

Contoh parameter

String JSON berikut adalah contoh dan tidak mencantumkan setiap parameter. Tambahkan parameter yang Anda butuhkan saat menulis kode:

{
    "url": "wss://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Deskripsi parameter
ParameterTipeWajibDeskripsi

url

String

Ya

Endpoint layanan:

  • wss://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
  • Tiongkok (Beijing): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

  • Singapura: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription

Ganti {WorkspaceId} dengan ID Workspace Anda yang sebenarnya.

apikey

String

Ya

Kunci API.

service_mode

String

Ya

Mode pelaksanaan. Ditetapkan ke "1" untuk pengenalan ucapan yang direkam.

device_id

String

Ya

String unik yang mengidentifikasi pengguna akhir. Atur ke ID pengguna dalam aplikasi atau pengenal perangkat yang dihasilkan oleh klien. ID ini terutama digunakan untuk pelacakan log dan pemecahan masalah.

debug_path

String

Tidak

Jalur penyimpanan untuk file log.

Parameter ini hanya berlaku jika save_log diatur ke true di antarmuka initialize. Dalam hal ini, Anda harus mengatur jalur file log, atau kesalahan akan dilaporkan.

Maksimal dua file log disimpan secara lokal.

max_log_file_size

int

Tidak

Ukuran maksimum file log, dalam byte.

Parameter ini hanya berlaku jika save_log diatur ke true di antarmuka initialize.

Default: 104857600 (100 * 1024 * 1024 byte, yaitu 100 MiB).

log_track_level

int

Tidak

Tingkat filter untuk konten log yang dikirim melalui callback log (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 (diatur melalui antarmuka initialize) bersama-sama menentukan log mana yang akhirnya dikirim ke callback. Log dikirim ke callback hanya ketika nilai levelnya lebih besar dari atau sama dengan log_track_level dan level. Misalnya, jika log_track_level diatur ke 2 (INFO) dan level diatur ke 3 (WARNING), hanya log pada level WARNING atau lebih tinggi (nilai >= 3) yang dikirim ke callback.

Parameter pengenalan ucapan

Konfigurasikan semua parameter pengenalan suara melalui antarmuka startFileTranscriber.

Contoh parameter

String JSON berikut adalah contoh dan tidak mencantumkan setiap parameter. Tambahkan parameter yang Anda butuhkan saat menulis kode:

{
    "apikey": "st-****",
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
Deskripsi parameter
ParameterTipeWajibDeskripsi

file_urls

array[string]

Ya

Daftar URL file audio atau video yang akan ditranskripsikan. HTTP dan HTTPS didukung. Satu permintaan hanya mendukung satu URL. Untuk persyaratan input seperti format audio yang didukung, batas ukuran file, dan batas durasi, lihat Spesifikasi audio.

Jika rekaman disimpan di Alibaba Cloud OSS, API RESTful mendukung URL sementara dengan awalan oss://, sedangkan SDK tidak mendukung URL sementara dengan awalan oss://.

Penting

  • URL sementara berlaku selama 48 jam dan tidak dapat digunakan setelah kedaluwarsa. Jangan gunakan dalam produksi.

  • Antarmuka kredensial unggahan dibatasi hingga 100 QPS dan tidak dapat ditingkatkan. Jangan gunakan dalam skenario produksi, konkurensi tinggi, atau pengujian beban.

  • Untuk produksi, gunakan penyimpanan stabil seperti Alibaba Cloud OSS agar file tetap tersedia dalam jangka panjang dan menghindari pembatasan laju.

  • Jika URL file audio yang diatur ke URL publik sementara OSS tidak dapat dijangkau, atur X-DashScope-OssResourceResolve ke enable di header permintaan (tidak disarankan).

    SDK tidak mendukung konfigurasi header permintaan.

async_request

boolean

Tidak

Apakah permintaan pengenalan bersifat asinkron.

Default: false.

Nilai yang valid:

  • true: permintaan asinkron
  • false: permintaan sinkron

apikey

string

Tidak

Jika apikey di Parameter koneksi dan kontrol adalah kunci API sementara, Anda dapat memperbaruinya di sini untuk menghindari kedaluwarsa.

nls_config

object

Ya

Objek konfigurasi inti untuk pengenalan ucapan. Berisi parameter kunci seperti pemilihan model dan kontrol pengenalan.

nls_config.model

string

Ya

Nama model.

nls_config.special_word_filter

object

Tidak

Kata sensitif yang akan diproses selama pengenalan suara. Anda dapat mengatur metode penanganan yang berbeda untuk setiap kata sensitif. Untuk detailnya, lihat Pemfilteran kata sensitif.

nls_config.channel_id

array[integer]

Tidak

Indeks trek audio yang akan dikenali dalam file audio multi-trek. Indeks dimulai dari 0. Misalnya, [0] mengenali trek pertama, dan [0, 1] mengenali trek pertama dan kedua secara bersamaan. Jika Anda menghilangkan parameter ini, hanya trek pertama yang diproses.

PentingSetiap trek yang ditentukan ditagih secara independen. Misalnya, meminta [0, 1] untuk satu file akan menimbulkan dua tagihan terpisah.

Nilai default: [0].

nls_config.diarization_enabled

boolean

Tidak

Apakah akan mengaktifkan diarization pembicara. Dinonaktifkan secara default.

Hanya berlaku untuk audio mono. Audio multi-saluran tidak mendukung diarization pembicara.

Saat diaktifkan, hasil pengenalan menyertakan bidang speaker_id yang membedakan pembicara yang berbeda.

CatatanSaat diarization pembicara diaktifkan, pertahankan durasi audio dalam 2 jam. Jika tidak, pengenalan mungkin gagal atau habis waktu.

Default: false.

Untuk contoh speaker_id, lihat Deskripsi hasil pengenalan.

nls_config.speaker_count

integer

Tidak

PentingHanya berlaku ketika diarization pembicara diaktifkan (diarization_enabled diatur ke true).

Nilai referensi untuk jumlah pembicara. Rentang yang valid adalah bilangan bulat dari 2 hingga 100 (inklusif).

Secara default, jumlah pembicara dideteksi secara otomatis. Jika Anda mengatur nilai ini, ini hanya memandu algoritme untuk menghasilkan jumlah yang ditentukan jika memungkinkan dan tidak menjamin jumlah yang tepat tersebut.

Tidak ada nilai default.

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.input_context

array

Tidak

Daftar pesan yang berisi konteks percakapan opsional untuk meningkatkan akurasi pengenalan.

PentingKonteks membantu meningkatkan pengenalan istilah khusus domain. Untuk penggunaan, lihat Peningkatan konteks.

Anda dapat menyertakan hingga 5 pesan dari setiap tipe konteks: input_text dan text. Jika batas ini terlampaui, hanya 5 pesan terbaru dari setiap tipe yang dipertahankan. Panjang gabungan bidang text dalam pesan user dan assistant di setiap giliran tidak boleh melebihi 400 karakter. Setiap karakter dihitung sebagai 1. Teks berlebih dipotong dari akhir.

PentingSaat Anda menyertakan konteks, atur messages berdasarkan giliran percakapan. Di setiap giliran, pesan user (tipe input_text) harus mendahului pesan assistant yang sesuai (tipe text). Pesan user yang berisi input_audio harus menjadi pesan terakhir dalam array messages.

[
  {
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "你好啊,我是通义千问,有什么可以帮助你的?"
      }
    ]
  }
]

nls_config.instant_vocabulary

object

Tidak

Hotword instan, diteruskan sebagai pasangan kunci-nilai. Setiap kunci adalah teks hotword (string), dan setiap nilai adalah bobotnya (integer). Tidak diperlukan daftar hotword yang telah dikompilasi sebelumnya. Gunakan parameter ini untuk hotword sementara tingkat sesi.

Bobot yang valid adalah bilangan bulat dari 1 hingga 5, atau 50. Bobot yang lebih tinggi dari 1 hingga 5 membuat model lebih mungkin menghasilkan hotword. Bobot 50 mendefinisikan super hotword dan secara signifikan meningkatkan recall. Anda dapat menentukan hingga 50 super hotword.

Jika Anda juga mengonfigurasi hotword yang telah dikompilasi sebelumnya, kedua set akan digabungkan. Jika set yang digabungkan melebihi 2000 hotword, 2000 akan dipilih secara acak. Untuk penggunaan, lihat Hotword instan.

PentingUntuk model dan batas yang berlaku untuk hotword instan, lihat Hotword instan.

{
  "张三": 5,
  "李四": 5
}

nls_config.language_hints

array[string]

Tidak

Kode bahasa yang akan dikenali. Jika Anda tidak dapat menentukan bahasa terlebih dahulu, biarkan tidak diatur dan model akan mendeteksi bahasa secara otomatis.

Anda dapat menetapkan hingga 4 nilai. Jika lebih, hanya 4 nilai pertama yang berlaku.

Klik untuk melihat kode bahasa yang didukung

  • 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

Antarmuka utama

NativeNui

initialize

Menginisialisasi instans SDK pengenalan suara. SDK ini adalah singleton. Jangan menginisialisasinya lagi sebelum Anda memanggil release.

Antarmuka ini memblokir, jadi panggil pada thread non-UI.

Signature metode
public synchronized int initialize(final INativeFileTransCallback callback,
                                   String parameters,
                                   final Constants.LogLevel level,
                                   final boolean save_log)
Deskripsi parameter
ParameterTipeDeskripsi

callback

INativeFileTransCallback

Implementasi antarmuka callback event dan data.

parameters

String

String JSON yang berisi parameter autentikasi, koneksi, dan debugging. Lihat Parameter koneksi dan kontrol.

level

Constants.LogLevel

Mengontrol tingkat pencetakan log SDK itu sendiri.

save_log

boolean

Apakah akan menyimpan log secara lokal. Jika true, tentukan jalur dengan debug_path di Parameter koneksi dan kontrol, dan secara opsional atur ukuran file dengan max_log_file_size.

setParams

Gunakan antarmuka ini untuk mengatur atau memperbarui parameter nls_config secara terpisah. Jika Anda menyediakan semua parameter sekaligus di startFileTranscriber, Anda tidak perlu memanggil metode ini.

Signature metode
public synchronized int setParams(String params);
Deskripsi parameter
ParameterTipeDeskripsi

params

String

Parameter nls_config di Parameter pengenalan suara. Parameter selain nls_config tidak dapat diatur melalui metode ini.

Contoh:

{
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

startFileTranscriber

Memulai pengenalan.

Signature metode
public synchronized int startFileTranscriber(String params, byte[] task_id)
Deskripsi parameter
ParameterTipeDeskripsi

params

String

Parameter pengenalan ucapan.

Contoh:

{
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

task_id

byte[]

ID tugas. SDK menghasilkan string acak secara internal. Anda mendapatkan task_id setelah antarmuka ini berhasil dikembalikan.

queryFileTranscriber

Gunakan antarmuka ini untuk mengkueri status dan hasil saat ini dari tugas asinkron. Setelah panggilan berhasil, hasil dikembalikan melalui event EVENT_FILE_TRANS_QUERY_RESULT di callback onFileTransEventCallback.

CatatanDapatkan task_id yang diteruskan ke metode ini dari event EVENT_FILE_TRANS_UPLOADED.

Signature metode
public synchronized int queryFileTranscriber(String task_id)
Deskripsi parameter
ParameterTipeDeskripsi

task_id

String

ID tugas yang akan dikueri, diperoleh dari event EVENT_FILE_TRANS_UPLOADED.

cancelFileTranscriber

Membatalkan tugas saat ini secara langsung.

Signature metode
public synchronized int cancelFileTranscriber(String task_id)
Deskripsi parameter
ParameterTipeDeskripsi

task_id

String

ID tugas yang akan dibatalkan, diperoleh dari event EVENT_FILE_TRANS_UPLOADED.

release

Melepaskan semua sumber daya internal SDK. Setelah Anda memanggil metode ini, instans SDK menjadi tidak dapat digunakan. Untuk menggunakannya lagi, Anda harus memanggil initialize untuk menginisialisasinya kembali.

Signature metode
public synchronized int release();

GetVersion

Mendapatkan informasi versi SDK saat ini.

Signature metode
public synchronized String GetVersion();
Nilai kembalian

Informasi versi SDK saat ini.

INativeFileTransCallback: callback listener

onFileTransEventCallback: mendengarkan event dan hasil pengenalan

Signature metode
void onFileTransEventCallback(NuiEvent event, final int resultCode, final int arg2, AsrResult asrResult, String taskId);
Deskripsi parameter
ParameterTipeDeskripsi

event

NuiEvent

Event callback.

resultCode

int

Hanya valid saat event EVENT_ASR_ERROR terjadi.

asrResult

AsrResult

Hasil pengenalan ucapan.

taskId

String

ID tugas.

arg2

int

Parameter yang dicadangkan.

onFileTransLogTrackCallback: mendengarkan log pelacakan

Callback ini menerima log internal terperinci SDK untuk diagnosis dan debugging masalah.

default void onFileTransLogTrackCallback(Constants.LogLevel level, String log)

NuiEvent: tipe event

EventDeskripsi

EVENT_FILE_TRANS_CONNECTED

Koneksi layanan berhasil.

EVENT_FILE_TRANS_UPLOADED

File audio yang akan dikenali berhasil diunggah. Anda sekarang dapat memperoleh task_id dari tugas saat ini.

EVENT_FILE_TRANS_QUERY_RESULT

Kueri hasil tugas.

EVENT_FILE_TRANS_RESULT

Hasil pengenalan akhir.

EVENT_ASR_ERROR

Terjadi error selama pengenalan ucapan.