Topik ini menjelaskan parameter dan detail API dari SDK Java untuk pengenalan ucapan non-real-time Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR.
Prasyarat
Mulai cepat
Kelas inti (Transcription) menyediakan antarmuka untuk mengirimkan tugas secara asinkron, menunggu secara sinkron hingga tugas selesai, dan mengkueri hasil tugas secara asinkron. Anda dapat menjalankan pengenalan ucapan non-real-time dengan salah satu dari dua cara berikut:
- Kirimkan tugas secara asinkron dan tunggu secara sinkron hingga selesai: setelah Anda mengirimkan tugas, thread saat ini diblokir hingga tugas selesai dan hasil pengenalan dikembalikan.
- Kirimkan tugas secara asinkron dan kueri hasil tugas secara asinkron: setelah Anda mengirimkan tugas, panggil antarmuka kueri untuk mendapatkan hasil tugas kapan pun Anda membutuhkannya.
Kirimkan tugas secara asinkron dan tunggu secara sinkron hingga selesai
- Konfigurasikan Parameter permintaan.
- Buat instans Kelas inti (Transcription).
-
Panggil metode
asyncCalldari Kelas inti (Transcription) untuk mengirimkan tugas secara asinkron.- Layanan transkripsi file memproses tugas yang dikirim melalui API berdasarkan prinsip best-effort. Setelah Anda mengirimkan tugas, tugas tersebut masuk ke status antrian (
PENDING). Waktu antrian bergantung pada panjang antrian dan durasi file, sehingga tidak dapat ditentukan secara pasti, tetapi biasanya dalam hitungan beberapa menit. Setelah pemrosesan dimulai, pengenalan ucapan selesai dengan kecepatan ratusan kali lebih cepat daripada waktu nyata. - Setelah setiap tugas selesai, hasil pengenalan dan URL unduhan berlaku selama 24 jam. Setelah masa berlaku habis, Anda tidak dapat lagi mengkueri tugas atau mengunduh hasil melalui URL yang dikembalikan dalam kueri sebelumnya.
- Layanan transkripsi file memproses tugas yang dikirim melalui API berdasarkan prinsip best-effort. Setelah Anda mengirimkan tugas, tugas tersebut masuk ke status antrian (
-
Panggil metode
waitdari Kelas inti (Transcription) untuk menunggu secara sinkron hingga tugas selesai. Tugas dapat berada dalam statusPENDING,RUNNING,SUCCEEDED, atauFAILED. Selama tugas berada dalam statusPENDINGatauRUNNING, antarmukawaitakan memblokir. Ketika tugas mencapai statusSUCCEEDEDatauFAILED, antarmukawaitberhenti memblokir dan mengembalikan hasil tugas.waitmengembalikan Hasil tugas (TranscriptionResult).
Klik untuk melihat contoh lengkap
Klik untuk melihat contoh lengkap
Kirimkan tugas secara asinkron dan kueri hasil tugas secara asinkron
- Konfigurasikan Parameter permintaan.
- Buat instans Kelas inti (Transcription).
-
Panggil metode
asyncCalldari Kelas inti (Transcription) untuk mengirimkan tugas secara asinkron.- Layanan transkripsi file memproses tugas yang dikirim melalui API berdasarkan prinsip best-effort. Setelah Anda mengirimkan tugas, tugas tersebut masuk ke status antrian (
PENDING). Waktu antrian bergantung pada panjang antrian dan durasi file, sehingga tidak dapat ditentukan secara pasti, tetapi biasanya dalam hitungan beberapa menit. Setelah pemrosesan dimulai, pengenalan ucapan selesai dengan kecepatan ratusan kali lebih cepat daripada waktu nyata. - Setelah setiap tugas selesai, hasil pengenalan dan URL unduhan berlaku selama 24 jam. Setelah masa berlaku habis, Anda tidak dapat lagi mengkueri tugas atau mengunduh hasil melalui URL yang dikembalikan dalam kueri sebelumnya.
- Layanan transkripsi file memproses tugas yang dikirim melalui API berdasarkan prinsip best-effort. Setelah Anda mengirimkan tugas, tugas tersebut masuk ke status antrian (
-
Panggil metode
fetchdari Kelas inti (Transcription) dalam loop hingga Anda mendapatkan hasil tugas akhir. Saat status tugas adalahSUCCEEDEDatauFAILED, hentikan polling dan proses hasilnya.fetchmengembalikan Hasil tugas (TranscriptionResult).
Klik untuk melihat contoh lengkap
Klik untuk melihat contoh lengkap
Titik akhir
Secara default, SDK menggunakan titik akhir wilayah China (Beijing). Untuk beralih ke wilayah lain, modifikasi Constants.baseHttpApiUrl sebelum inisialisasi.
- Singapura
- China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Saat melakukan panggilan, ganti {WorkspaceId} dengan ID Ruang Kerja aktual Anda.- Kunci API berbeda di tiap wilayah. Pastikan Anda menggunakan Kunci API untuk wilayah target.
- Pengaturan wilayah bersifat global dan memengaruhi panggilan API semua SDK DashScope.
Parameter permintaan
Konfigurasikan parameter permintaan menggunakan metode berantai dari TranscriptionParam.
Klik untuk melihat contohnya
Klik untuk melihat contohnya
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| model | String | Ya | Nama model. Nilai yang didukung mencakup keluarga model Qwen-Audio-3.0-ASR-Flash-Filetrans dan Fun-ASR. Untuk detailnya, lihat Model dan wilayah yang didukung. |
| fileUrls | List<String> | Ya | Daftar URL file audio atau video yang akan ditranskripsi. 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, RESTful API mendukung URL sementara dengan awalan oss://, sedangkan SDK tidak mendukung URL sementara dengan awalan oss://. |
| vocabularyId | String | Tidak | ID daftar kata kunci panas yang telah dikompilasi sebelumnya.Hasilkan ID ini terlebih dahulu dengan memanggil API pembuatan daftar kata kunci panas. Masukkan ID ini selama pengenalan untuk menggunakan kata kunci dalam daftar tersebut.Cocok untuk skenario di mana kosakata diketahui dan relatif stabil, serta Anda perlu menggunakan kembali daftar kata yang sama di berbagai permintaan.Untuk detail penggunaan, lihat Kata kunci panas yang telah dikompilasi. |
| vocabulary | Map<String, Integer> | Tidak | Kata kunci panas instan.Diteruskan sebagai pasangan kunci-nilai, di mana kunci adalah teks kata kunci panas (string) dan nilai adalah bobot kata kunci panas (integer). Tidak perlu membuat daftar kata kunci panas terlebih dahulu. Bobot berkisar antara [1, 5] atau diatur ke 50: nilai dalam [1, 5] membuat model lebih cenderung mengeluarkan kata tersebut seiring peningkatan nilainya; nilai 50 menunjukkan kata kunci super panas, yang sangat meningkatkan recall, tetapi jumlah kata kunci super panas tidak boleh melebihi 50.Cocok untuk optimasi kata kunci panas tingkat sesi yang bersifat sementara.Saat dikonfigurasi bersama kata kunci panas yang telah dikompilasi, hanya kata kunci panas instan yang berlaku. Untuk detail penggunaan, lihat Kata kunci panas instan.Atur vocabulary melalui metode parameter atau metode parameters dari instans TranscriptionParam: |
| channelId | List<Integer> | Tidak | Indeks track audio yang akan dikenali dalam file audio multi-track. Indeks dimulai dari 0. Misalnya, [0] mengenali track pertama, dan [0, 1] mengenali track pertama dan kedua secara bersamaan. Jika Anda mengabaikan parameter ini, hanya track pertama yang diproses.Nilai default: [0]. |
| specialWordFilter | String | Tidak | Kata sensitif yang akan diproses selama pengenalan ucapan. Anda dapat mengatur metode penanganan berbeda untuk setiap kata sensitif. Untuk detailnya, lihat Penyaringan kata sensitif. |
| diarizationEnabled | Boolean | Tidak | Apakah akan mengaktifkan diarization pembicara. Secara default dinonaktifkan.Hanya berlaku untuk audio mono. Audio multi-channel tidak mendukung diarization pembicara.Saat diaktifkan, hasil pengenalan mencakup bidang speaker_id yang membedakan pembicara berbeda.Saat diarization pembicara diaktifkan, pastikan durasi audio tidak melebihi 2 jam. Jika tidak, pengenalan mungkin gagal atau timeout. speaker_id, lihat Deskripsi hasil pengenalan. |
| speakerCount | Integer | Tidak | Nilai referensi untuk jumlah pembicara. Rentang valid adalah bilangan bulat dari 2 hingga 100 (inklusif).Secara default, jumlah pembicara dideteksi secara otomatis. Jika Anda mengatur nilai ini, nilai tersebut hanya membimbing algoritma untuk menghasilkan jumlah yang ditentukan jika memungkinkan dan tidak menjamin jumlah pasti tersebut.Tidak ada nilai default. |
| language_hints | String[] | Tidak | Kode bahasa yang akan dikenali. Jika Anda tidak dapat menentukan bahasa sebelumnya, biarkan tidak diatur dan model akan mendeteksi bahasa secara otomatis.Untuk model Qwen-Audio-3.0-ASR-Flash-Filetrans, Anda dapat mengatur hingga 4 nilai; nilai apa pun yang melebihi 4 nilai pertama akan diabaikan. Untuk model Fun-ASR, Anda hanya dapat mengatur 1 nilai; jika Anda mengatur beberapa nilai, hanya nilai pertama yang berlaku.
Klik untuk melihat kode bahasa yang didukung
Atur language_hints melalui metode parameter atau metode parameters dari instans TranscriptionParam: |
| apiKey | String | Tidak | Kunci API Anda. Jika Anda telah mengonfigurasi Kunci API sebagai Variabel lingkungan, Anda tidak perlu mengaturnya di kode Anda. Jika tidak, Anda harus mengaturnya di kode Anda. |
Tanggapan
Hasil tugas (TranscriptionResult)
TranscriptionResult mengenkapsulasi hasil tugas saat ini.
| Antarmuka/Metode | Parameter | Nilai kembalian | Deskripsi |
|---|---|---|---|
| Tidak ada | requestId | Mendapatkan requestId. | |
| Tidak ada | taskId | Mendapatkan taskId. | |
| Tidak ada | TaskStatus, status tugas | Mendapatkan status tugas.TaskStatus adalah enum. Anda hanya perlu fokus pada empat status berikut: PENDING, RUNNING, SUCCEEDED, dan FAILED.Saat tugas berisi beberapa subtugas, status tugas keseluruhan ditandai sebagai SUCCEEDED selama setidaknya satu subtugas berhasil. Gunakan bidang subtask_status untuk memeriksa hasil setiap subtugas individual. | |
| Tidak ada | Hasil subtugas (TranscriptionTaskResult) | Mendapatkan Hasil subtugas (TranscriptionTaskResult).Setiap tugas mengenali satu atau beberapa file audio. File audio berbeda diproses dalam subtugas terpisah, sehingga setiap tugas berkorespondensi dengan satu atau beberapa subtugas. | |
| Tidak ada | Hasil tugas, dalam format JSON | Mendapatkan hasil tugas.Hasilnya berupa data dalam format JSON. Jika Anda ingin mendapatkan hasil tugas melalui antarmuka getOutput, urai sendiri setelah Anda mendapatkan hasilnya.
Klik untuk melihat contoh JSON Contoh sukses code” adalah kode kesalahan, dan “message” adalah pesan kesalahan. Kedua bidang ini hanya muncul saat terjadi kesalahan. Anda dapat menggunakannya, bersama dengan Kode kesalahan, untuk memecahkan masalah. |
Hasil subtugas (TranscriptionTaskResult)
TranscriptionTaskResult mengenkapsulasi hasil subtugas. Subtugas mengenali satu file audio.
| Antarmuka/Metode | Parameter | Nilai kembalian | Deskripsi |
|---|---|---|---|
| Tidak ada | URL file audio yang dikenali | Mendapatkan URL file audio yang dikenali. | |
| Tidak ada | URL hasil pengenalan | Mendapatkan URL hasil pengenalan. URL ini berlaku selama 24 jam. Setelah masa berlaku habis, Anda tidak dapat lagi mengkueri tugas atau mengunduh hasil melalui URL yang dikembalikan dalam kueri sebelumnya.Hasil pengenalan disimpan sebagai file JSON. Anda dapat mengunduh file tersebut melalui URL atau membaca isinya langsung melalui permintaan HTTP.Untuk makna setiap bidang dalam data JSON, lihat Deskripsi hasil pengenalan. | |
| Tidak ada | TaskStatus, status subtugas | Mendapatkan status subtugas.TaskStatus adalah enum. Anda hanya perlu fokus pada empat status berikut: PENDING, RUNNING, SUCCEEDED, dan FAILED. | |
| Tidak ada | Informasi penting yang dihasilkan selama eksekusi tugas, yang mungkin kosong | Mendapatkan informasi penting yang dihasilkan selama eksekusi tugas.Saat tugas gagal, periksa konten ini untuk menganalisis penyebabnya. |
Deskripsi hasil pengenalan
Hasil pengenalan disimpan sebagai file JSON.
Klik untuk melihat contoh hasil pengenalan
Klik untuk melihat contoh hasil pengenalan
Parameter | Tipe | Deskripsi |
|---|---|---|
audio_format | string | Format audio file sumber. |
channels | array[integer] | Indeks track audio dalam file sumber. Untuk audio satu track, [0] dikembalikan; untuk audio dua track, [0, 1] dikembalikan; dan seterusnya. |
original_sampling_rate | integer | Laju sampel (Hz) audio dalam file sumber. |
original_duration_in_milliseconds | integer | Durasi audio asli (ms) dalam file sumber. |
channel_id | integer | Indeks track hasil transkripsi, dimulai dari 0. |
content_duration | integer | Durasi (ms) konten dalam track yang diidentifikasi sebagai ucapan. Layanan model pengenalan ucapan hanya mentranskripsi konten dalam track yang diidentifikasi sebagai ucapan, dan mengukur serta menagih berdasarkan durasi tersebut. Konten non-ucapan tidak diukur atau ditagih. Biasanya, durasi konten ucapan lebih pendek daripada durasi audio asli. Karena keberadaan konten ucapan ditentukan oleh model AI, hasilnya mungkin sedikit berbeda dari situasi aktual. |
transcript | string | Hasil transkripsi tingkat paragraf. |
sentences | array | Hasil transkripsi tingkat kalimat. |
words | array | Hasil transkripsi tingkat kata. |
begin_time | integer | Timestamp mulai (ms). |
end_time | integer | Timestamp akhir (ms). |
text | string | Hasil transkripsi. |
speaker_id | integer | Indeks pembicara saat ini, dimulai dari 0, digunakan untuk membedakan pembicara berbeda. Bidang ini muncul dalam hasil pengenalan hanya saat diarization pembicara diaktifkan. |
punctuation | string | Tanda baca yang diprediksi setelah kata, jika ada. |
Antarmuka utama
Kelas parameter kueri tugas (TranscriptionQueryParam)
TranscriptionQueryParam digunakan saat menunggu tugas selesai (memanggil metode wait dari Transcription) atau mengkueri hasil tugas (memanggil metode fetch dari Transcription).
Buat instans TranscriptionQueryParam melalui metode statis FromTranscriptionParam.
Tampilkan contoh
Tampilkan contoh
| Antarmuka/metode | Parameter | Nilai kembalian | Deskripsi |
|---|---|---|---|
| instans TranscriptionQueryParam | Membuat instans TranscriptionQueryParam. |
Kelas inti (Transcription)
Impor Transcription dengan "import com.alibaba.dashscope.audio.asr.transcription.*;". Antarmuka utamanya adalah sebagai berikut:
| Antarmuka/metode | Parameter | Nilai kembalian | Deskripsi |
|---|---|---|---|
param: parameter pengenalan ucapan, instans TranscriptionParam | Hasil tugas (TranscriptionResult) | Mengirimkan tugas pengenalan ucapan secara asinkron. | |
queryParam: instans TranscriptionQueryParam | Hasil tugas (TranscriptionResult) | Memblokir thread saat ini hingga tugas asinkron berakhir (status tugas adalah SUCCEEDED atau FAILED). | |
queryParam: instans TranscriptionQueryParam | Hasil tugas (TranscriptionResult) | Mengkueri hasil tugas saat ini secara asinkron. |
Kode kesalahan
Jika Anda mengalami kesalahan, lihat Kode kesalahan untuk memecahkan masalah.
Saat tugas berisi beberapa subtugas, status tugas keseluruhan ditandai sebagai SUCCEEDED selama setidaknya satu subtugas berhasil. Periksa bidang subtask_status untuk menentukan hasil setiap subtugas.
Contoh tanggapan error:
FAQ
Fitur
T: Apakah audio berkode Base64 didukung?
Audio berkode Base64 tidak didukung. Hanya audio di URL yang dapat diakses publik yang dapat dikenali. Aliran biner dan file lokal tidak dapat dikenali secara langsung.
T: Bagaimana cara membuat file audio tersedia di URL yang dapat diakses publik?
Langkah-langkah umum adalah sebagai berikut. Ini adalah salah satu pendekatan; proses sebenarnya bervariasi tergantung produk penyimpanan. Kami merekomendasikan Anda mengunggah audio ke Alibaba Cloud OSS:
1. Pilih metode penyimpanan dan hosting
1. Pilih metode penyimpanan dan hosting
-
Layanan penyimpanan objek (direkomendasikan):
- Gunakan layanan penyimpanan objek penyedia cloud (seperti Alibaba Cloud OSS) untuk mengunggah file audio ke bucket dan mengaturnya ke akses publik.
- Keuntungan: Ketersediaan tinggi, dukungan akselerasi CDN, dan manajemen mudah.
-
Server web:
- Tempatkan file audio di server web yang mendukung akses HTTP/HTTPS (seperti Nginx atau Apache).
- Keuntungan: cocok untuk proyek kecil atau pengujian lokal.
-
Jaringan pengiriman konten (CDN):
- Host file audio di CDN dan akses melalui URL yang disediakan CDN.
- Keuntungan: mempercepat pengiriman file dan cocok untuk skenario konkurensi tinggi.
2. Unggah file audio
2. Unggah file audio
-
Layanan penyimpanan objek:
- Login ke konsol penyedia cloud dan buat bucket.
- Unggah file audio, dan atur izinnya ke baca publik atau hasilkan tautan akses sementara.
-
Server web:
- Tempatkan file audio di direktori yang ditentukan di server (seperti
/var/www/html/audio/). - Pastikan file dapat diakses melalui HTTP/HTTPS.
- Tempatkan file audio di direktori yang ditentukan di server (seperti
3. Hasilkan URL yang dapat diakses publik
3. Hasilkan URL yang dapat diakses publik
-
Layanan penyimpanan objek:
- Setelah file diunggah, sistem secara otomatis menghasilkan URL akses publik (biasanya dalam format
https://<bucket-name>.<region>.aliyuncs.com/<file-name>). - Untuk nama domain yang lebih ramah, ikat domain kustom dan aktifkan HTTPS.
- Setelah file diunggah, sistem secara otomatis menghasilkan URL akses publik (biasanya dalam format
-
Server web:
- URL akses biasanya alamat server ditambah jalur file (seperti
https://your-domain.com/audio/file.mp3).
- URL akses biasanya alamat server ditambah jalur file (seperti
-
CDN:
- Setelah Anda mengonfigurasi akselerasi CDN, gunakan URL yang disediakan CDN (seperti
https://cdn.your-domain.com/audio/file.mp3).
- Setelah Anda mengonfigurasi akselerasi CDN, gunakan URL yang disediakan CDN (seperti
4. Verifikasi bahwa URL berfungsi
4. Verifikasi bahwa URL berfungsi
- Buka URL di browser dan periksa apakah file audio diputar.
- Gunakan tool (seperti
curlatau Postman) untuk memverifikasi bahwa URL mengembalikan respons HTTP yang benar (kode status 200).
oss:// tidak didukung.
Saat menggunakan RESTful API, jika file audio disimpan di Alibaba Cloud OSS, URL sementara dengan awalan oss:// didukung:
- URL sementara berlaku selama 48 jam dan tidak dapat digunakan setelah masa berlaku habis. Jangan gunakan di lingkungan produksi.
- API untuk mendapatkan kredensial unggah dibatasi hingga 100 QPS dan tidak mendukung penskalaan. Jangan gunakan di lingkungan produksi, skenario konkurensi tinggi, atau skenario uji stres.
- Untuk lingkungan produksi, gunakan layanan penyimpanan stabil seperti OSS untuk memastikan ketersediaan file jangka panjang dan menghindari masalah Pembatasan laju.