Gunakan AOQ untuk terhubung ke fun-asr-realtime, mengalirkan audio dari mikrofon, dan menerima hasil transkripsi secara real time. Kode klien menggunakan Android Java, dan platform lain yang didukung AOQ menyediakan antarmuka yang serupa.
Solusi ikhtisar
fun-asr-realtime mentranskripsikan aliran audio menjadi teks ber-tanda baca secara real time. SDK AOQ mengangkut media dan event melalui track terpisah: klien mengirim audio melalui Audio track dan menggunakan Data track untuk mengirim event kontrol serta menerima event pengenalan. Model ini menggunakan protokol event Inferensi, bukan protokol event Realtime.
Solusi ini cocok untuk takarir langsung, transkripsi rapat, input suara, dan asisten cerdas. Audio track menghilangkan kebutuhan untuk mengencode audio dalam pesan event, sedangkan Data track mempertahankan semantik tugas seperti run-task, result-generated, dan finish-task.
- Klien meminta kredensial koneksi AOQ sementara dari server aplikasi.
- Server aplikasi menggunakan Kunci API untuk meminta token dari Model Studio dan mengembalikan field koneksi ke klien.
- Klien menetapkan koneksi AOQ dan mengirim run-task. Setelah task-started diterima, klien mulai mengirim audio dari mikrofon.
- Server terus-menerus mengembalikan event result-generated. Setelah klien mengirim finish-task, klien menunggu hasil akhir dan task-finished.
Prasyarat
- Aktifkan Alibaba Cloud Model Studio dan buat Kunci API seperti dijelaskan dalam Memperoleh dan mengonfigurasi Kunci API. Simpan Kunci API hanya di server aplikasi. Jangan sertakan dalam kode klien atau commit ke repositori kode.
- Pilih titik akhir AOQ untuk wilayah tempat aplikasi Anda diterapkan. Untuk pemilihan titik akhir, lihat Pilih wilayah, cakupan penerapan, dan titik akhir.
- Unduh SDK AOQ Client terbaru seperti dijelaskan dalam Unduhan SDK. Tutorial ini mengangkut audio PCM dan tidak memerlukan plugin Opus opsional.
- Siapkan server aplikasi seperti dijelaskan dalam Otentikasi token dan implementasikan otentikasi proxy sisi server untuk protokol Inferensi AOQ. Sebelum setiap koneksi baru, klien harus memperoleh kredensial koneksi baru dari server aplikasi.
Impor SDK
Pilih instruksi integrasi SDK untuk platform pengembangan Anda. Implementasi klien menggunakan Android Java; platform lain mengikuti desain API dan alur event yang sama.
- Android
- iOS
- HarmonyOS
- Linux (Python)
- Letakkan AoqClientSdk-release.aar di app/libs dan konfigurasikan dependensi serta ABIs di app/build.gradle:
- Deklarasikan izin jaringan dan perekaman di AndroidManifest.xml:
- Minta izin runtime RECORD_AUDIO sebelum perekaman dimulai. Pengenalan suara tidak memerlukan izin CAMERA.
Coba demo
Gunakan demo Android dari Alibaba Cloud Model Studio untuk memverifikasi konektivitas AOQ dengan cepat. Unduh APK dan konfigurasikan Kunci API dan workspaceId untuk mencoba model yang dipilih.
Pindai kode QR berikut untuk mengunduh demo:

Alur implementasi
- Server aplikasi menggunakan URL token Inferensi untuk memperoleh parameter koneksi AOQ untuk fun-asr-realtime.
- Klien memetakan respons token ke AoqConnectConfig, memublikasikan Audio dan Data track, serta berlangganan Data track.
- Klien mengonfigurasi parameter pengkodean audio berdasarkan kebutuhan bisnis dan model, memulai tangkapan mikrofon dengan pengiriman audio dinonaktifkan, dan menetapkan koneksi AOQ.
- Setelah koneksi ditetapkan, klien mengirim run-task dan mengaktifkan pengiriman Audio-track setelah task-started diterima.
- Klien menangani result-generated di onDataMsg. Untuk menghentikan pengenalan, klien pertama-tama menonaktifkan pengiriman Audio-track lalu mengirim finish-task.
- Setelah task-finished diterima, klien dapat memulai tugas lain pada koneksi yang sama dengan task_id baru, atau memutuskan koneksi dan menghapus engine.

Peroleh token di server aplikasi
Atur DASHSCOPE_API_KEY di server aplikasi dan kirim permintaan ke titik akhir untuk wilayah yang dipilih. clientIp adalah Alamat IP publik aktual perangkat klien. Field ini opsional, tetapi kami menyarankan Anda menyediakannya agar layanan dapat memilih titik akhir relay yang sesuai.
Field respons | SDK Field |
aoqTokenForClient | AoqConnectConfig.token |
sid | AoqConnectConfig.sid |
clientRelayCertFingerprint | AoqConnectConfig.certFingerprint |
clientRelayEndpoints | AoqConnectConfig.relayEndpoints |
extraInfo.workspaceIdHash | AoqConnectConfig.workspaceIdHash |
Implementasikan klien Android
Langkah-langkah berikut membagi kode klien Android Java sesuai urutan koneksi dan tugas aktual. Setiap cuplikan diambil dari contoh lengkap di bagian akhir topik ini.
1. Buat engine dan daftarkan callback
Buat engine klien AOQ dan daftarkan callback untuk perubahan status koneksi dan event Data-track. Implementasikan logika callback untuk aplikasi Anda, dan mulai pengenalan hanya setelah koneksi ditetapkan.
2. Konfigurasikan pengkodean audio
Konfigurasikan pengkodean audio yang dikirim ke model. Atur format, laju sampel, dan jumlah channel berdasarkan kebutuhan aplikasi dan model Anda. Kode berikut menggunakan PCM mono 16 kHz sebagai contoh. Untuk nilai yang didukung, lihat parameter run-task di Event klien.
3. Konfigurasikan koneksi dan track transport
Konfigurasikan koneksi AOQ dengan kredensial yang dikembalikan oleh server aplikasi, dan pilih track yang akan dipublikasikan dan dilangganan berdasarkan aplikasi Anda. Untuk pengenalan ucapan real-time, contoh ini memublikasikan Audio dan Data track serta berlangganan Data track.
4. Mulai tangkapan audio dan tetapkan koneksi
Konfigurasikan tangkapan audio dan tetapkan koneksi AOQ. Pilih tangkapan bawaan atau eksternal, apakah akan mengaktifkan mode VoIP, dan jumlah channel berdasarkan aplikasi Anda. Pertahankan pengiriman Audio-track dinonaktifkan hingga task-started diterima.
5. Mulai tugas pengenalan
Setelah koneksi ditetapkan, hasilkan ID tugas dan kirim run-task untuk memulai pengenalan. Konfigurasikan parameter tugas seperti model, format, sample_rate, dan lainnya sesuai model dan input audio yang Anda gunakan. Untuk detailnya, lihat Event klien.
6. Tangani event server
Tangani status tugas, hasil pengenalan, dan error, lalu teruskan hasilnya ke aplikasi Anda. Implementasikan callback berdasarkan kebutuhan UI dan manajemen status Anda. Kirim audio hanya setelah task-started diterima, dan jangan tampilkan event heartbeat dalam transkrip. Untuk skema respons lengkap, lihat Event server.
7. Akhiri tugas pengenalan
Ketika pengguna menyelesaikan perekaman saat ini, hentikan pengiriman audio dan kirim finish-task. Pertahankan koneksi terbuka hingga transkrip akhir dan task-finished tiba. Anda kemudian dapat memulai tugas lain atau melepaskan koneksi berdasarkan alur aplikasi Anda. Untuk format event, lihat Event klien.
8. Putuskan koneksi dan hapus engine
Lepaskan tangkapan audio, koneksi AOQ, dan resource engine ketika halaman dihancurkan atau pengenalan tidak lagi diperlukan. Pilih titik pelepasan berdasarkan siklus hidup aplikasi Anda, dan jangan lepaskan resource segera setelah finish-task dikirim.
Contoh lengkap
Kelas Android Java ini memetakan respons JSON dari server aplikasi ke AoqConnectConfig dan menggabungkan logika koneksi, tangkapan, tugas, dan pelepasan resource sebelumnya.
Contoh penggunaan
Teruskan respons token dari server aplikasi ke parseConnectConfig dan buat klien. Tugas pengenalan pertama dimulai secara otomatis setelah koneksi ditetapkan. Tombol stop hanya mengakhiri tugas saat ini. Lepaskan koneksi dan resource lokal ketika halaman dihancurkan.
Jalankan dan verifikasi
- Jalankan server aplikasi. Pastikan permintaan token mengembalikan HTTP 200 dan mencakup sid, aoqTokenForClient, clientRelayEndpoints, clientRelayCertFingerprint, dan extraInfo.workspaceIdHash.
- Instal dan jalankan aplikasi di perangkat Android, berikan akses mikrofon, dan berbicara.
- Amati callback. Urutan event normal adalah:
Skenario umum
Beberapa tugas pengenalan melalui satu koneksi
Setelah task-finished diterima, panggil beginRecognition untuk memulai tugas lain melalui koneksi AOQ yang sama. Setiap tugas memerlukan task_id baru. Anda tidak perlu meminta token lain atau terhubung ulang selama koneksi tetap aktif. Jika koneksi ditutup, peroleh kredensial koneksi baru.
Pengenalan latar belakang di Android
Di Android 10 atau lebih baru, gunakan layanan foreground dengan foregroundServiceType=microphone untuk melanjutkan tangkapan mikrofon saat aplikasi berada di latar belakang. Mulai layanan saat aplikasi masih terlihat oleh pengguna.
Troubleshooting
Masalah | Solusi |
Koneksi gagal | Pastikan token valid, titik akhir sesuai dengan wilayah aplikasi, dan server aplikasi meneruskan Alamat IP publik aktual perangkat klien. Jangan gunakan kembali token setelah koneksi ditutup. |
Tugas dimulai tetapi tidak ada transkrip yang dikembalikan | Aktifkan pengiriman Audio-track hanya setelah task-started diterima. Periksa format input, laju sampel, dan parameter lainnya terhadap Event klien untuk model tersebut. |
Transkrip akhir tidak dikembalikan | Nonaktifkan pengiriman Audio-track sebelum mengirim finish-task. Tunggu event result-generated akhir dan task-finished alih-alih memutuskan koneksi segera. |
SDK Android gagal dimuat | Pastikan AAR disertakan sebagai dependensi dan aplikasi mengemas ABI yang didukung SDK: armeabi-v7a atau arm64-v8a. |
Tugas berikutnya melalui koneksi yang sama ditolak | Pastikan task-finished telah diterima untuk tugas sebelumnya dan hasilkan task_id baru untuk event run-task berikutnya. |