Skip to main content
Speech-to-text

Pengenalan ucapan non-real-time

Model pengenalan ucapan non-real-time mengonversi rekaman audio menjadi teks. Model ini mendukung pengenalan multibahasa, pengenalan nyanyian, penolakan noise, dan diarizasi pembicara, sehingga cocok untuk transkripsi rapat, analisis panggilan, pembuatan subtitle, serta skenario serupa lainnya.

Ikhtisar

Transkripsikan file audio dan video yang telah direkam secara batch melalui tugas asinkron.
  • Peningkatan konteks meningkatkan akurasi pengenalan melalui konteks yang dapat dikonfigurasi.
  • Kata kunci khusus (hotwords) meningkatkan akurasi pengenalan nama diri melalui daftar kata yang telah ditentukan sebelumnya.
  • Fitur yang dapat dikonfigurasi mencakup diarizasi pembicara, penyaringan kata sensitif, serta timestamp tingkat kalimat atau tingkat kata.
  • Transkripsi asinkron mendukung satu file audio dengan durasi hingga 12 jam dan ukuran maksimal 2 GB.
  • Semua laju sampel didukung, bersama format audio dan video utama seperti AAC, WAV, dan MP3.
Untuk skenario real-time seperti subtitle langsung, rapat daring, dan asisten suara, gunakan Pengenalan ucapan real-time. Untuk panduan pemilihan model, lihat Teks dari ucapan.

Prasyarat

Mulai cepat

Pada pengenalan ucapan non-real-time, Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans, dan Paraformer menggunakan panggilan asinkron. Atur header permintaan X-DashScope-Async: enable, kirimkan tugas, lalu polling API kueri untuk mengambil hasilnya. Model lain seperti Fun-ASR-Flash dan Qwen3-ASR-Flash menggunakan panggilan sinkron.Jika Anda memanggil penerapan khusus layanan model dan menerima error current user api does not support asynchronous calls, penerapan tersebut hanya mendukung panggilan sinkron. Ubah header permintaan menjadi X-DashScope-Async: disable dan biarkan bagian lain dari panggilan tetap sama.
  • Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR
  • Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash
  • Paraformer
Karena file audio dan video bisa berukuran besar, API transkripsi file menggunakan panggilan asinkron: kirimkan tugas, polling API kueri untuk statusnya, lalu ambil hasil pengenalan setelah tugas selesai.
  • cURL
  • Python
  • Java
Saat memanggil API dengan cURL, pertama-tama kirimkan tugas untuk mendapatkan task_id, lalu kueri hasil tugas menggunakan ID tersebut.
  • Kirimkan tugas
  • Ambil hasil tugas
  • Unduh hasil pengenalan
Konfigurasi berikut berlaku untuk wilayah Singapura. Ganti {WorkspaceId} dengan ID Ruang Kerja Anda yang sebenarnya. Konfigurasi berbeda-beda tergantung wilayah.
curl -X POST 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/audio/asr/transcription' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-Async: enable" \
-d '{
    "model": "qwen-audio-3.0-asr-flash-filetrans",
    "input": {
        "file_urls": [
            "{YOUR_AUDIO_URL}"
        ]
    },
    "parameters": {
        "channel_id": [0],
        "language_hints": ["zh", "en"]
    }
}'
  • Hasil pengenalan
{
    "file_url": "{YOUR_AUDIO_URL}",
    "properties": {
        "audio_format": "pcm_s16le",
        "channels": [
            0
        ],
        "original_sampling_rate": 16000,
        "original_duration_in_milliseconds": 3834
    },
    "transcripts": [
        {
            "channel_id": 0,
            "content_duration_in_milliseconds": 2480,
            "text": "Hello World, this is the Alibaba Speech Lab.",
            "sentences": [
                {
                    "begin_time": 760,
                    "end_time": 3240,
                    "text": "Hello World, this is the Alibaba Speech Lab.",
                    "sentence_id": 1,
                    "words": [
                        {
                            "begin_time": 760,
                            "end_time": 1000,
                            "text": "Hello",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 1000,
                            "end_time": 1120,
                            "text": " World",
                            "punctuation": ","
                        },
                        {
                            "begin_time": 1400,
                            "end_time": 1920,
                            "text": "this is",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 1920,
                            "end_time": 2520,
                            "text": "the Alibaba",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 2520,
                            "end_time": 2840,
                            "text": "Speech",
                            "punctuation": ""
                        },
                        {
                            "begin_time": 2840,
                            "end_time": 3240,
                            "text": "Lab",
                            "punctuation": "."
                        }
                    ]
                }
            ]
        }
    ]
}

Fitur lanjutan

Gunakan API kompatibel OpenAI

Wilayah AS tidak mendukung mode kompatibel OpenAI.
Hanya model seri Qwen3-ASR-Flash yang mendukung panggilan melalui mode kompatibel OpenAI. Mode ini hanya menerima URL file audio yang dapat diakses publik. Mode ini tidak menerima jalur mutlak file audio lokal. Gunakan SDK Python OpenAI versi 1.52.0 atau lebih baru, atau SDK Node.js versi 4.68.0 atau lebih baru. Untuk menginstal atau memperbarui SDK, jalankan:
# Python
pip install -U "openai>=1.52.0"

# Node.js
npm install openai@^4.68.0
asr_options bukan parameter standar OpenAI. Dengan SDK Python OpenAI, teruskan melalui extra_body. Dengan SDK OpenAI Node.js, teruskan asr_options langsung sebagai parameter tingkat atas dalam badan permintaan.
  • Input: URL file audio
  • Input: file audio dalam format Base64
  • Python SDK
  • Node.js SDK
  • cURL
from openai import OpenAI
import os

try:
    client = OpenAI(
        // Kunci API berbeda antara wilayah Singapura/AS dan wilayah Beijing. Dapatkan Kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
        // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key = "sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        // Berikut adalah konfigurasi untuk wilayah Singapura. Saat memanggil, ganti "{WorkspaceId}" dengan ID ruang kerja Anda yang sebenarnya. Konfigurasi berbeda-beda tergantung wilayah.
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    )

    stream_enabled = False  // Apakah akan mengaktifkan keluaran streaming
    completion = client.chat.completions.create(
        model="qwen3-asr-flash",
        messages=[
            {
                "content": [
                    {
                        "type": "input_audio",
                        "input_audio": {
                            "data": "{YOUR_AUDIO_URL}"
                        }
                    }
                ],
                "role": "user"
            }
        ],
        stream=stream_enabled,
        // Saat stream diatur ke False, parameter stream_options tidak dapat diatur
        // stream_options={"include_usage": True},
        extra_body={
            "asr_options": {
                // "language": "zh",
                "enable_itn": False
            }
        }
    )
    if stream_enabled:
        full_content = ""
        print("Keluaran streaming adalah:")
        for chunk in completion:
            // Jika stream_options.include_usage bernilai True, bidang choices pada chunk terakhir adalah daftar kosong dan perlu dilewati (Anda dapat mendapatkan penggunaan Token melalui chunk.usage)
            print(chunk)
            if chunk.choices and chunk.choices[0].delta.content:
                full_content += chunk.choices[0].delta.content
        print(f"Konten lengkap adalah: {full_content}")
    else:
        print(f"Keluaran non-streaming adalah: {completion.choices[0].message.content}")
except Exception as e:
    print(f"Pesan error: {e}")

Proses file audio panjang

Pengenalan ucapan non-real-time mendukung transkripsi asinkron file audio panjang. Ini cocok untuk skenario seperti notulen rapat, transkrip wawancara, dan pemutaran panggilan. Batasan:
  • Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR / Qwen3-ASR-Flash-Filetrans / Paraformer: satu file audio dapat memiliki ukuran hingga 2 GB dan durasi hingga 12 jam.
  • Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash: satu file audio dapat memiliki ukuran hingga 10 MB dan durasi hingga 5 menit. Untuk audio yang lebih panjang, gunakan Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, atau Qwen3-ASR-Flash-Filetrans.
  • Saat diarizasi pembicara diaktifkan: batasi durasi audio dalam 2 jam. Audio yang lebih panjang dapat menyebabkan kegagalan pengenalan atau timeout. Untuk informasi lebih lanjut, lihat Diarizasi pembicara.
Alur panggilan: transkripsi audio panjang menggunakan model tugas asinkron dengan tiga langkah:
  1. Kirimkan tugas transkripsi dan dapatkan task_id.
  2. Polling API kueri untuk status tugas, atau gunakan metode wait SDK untuk memblokir hingga tugas selesai.
  3. Setelah tugas selesai, unduh hasil pengenalan JSON dari URL yang dikembalikan.
Untuk contoh kode, lihat kode Mulai cepat dalam Pengenalan ucapan non-real-time.

keluaran streaming

Qwen-Audio-3.0-ASR-Flash/Fun-ASR-Flash/Qwen3-ASR-Flash mendukung keluaran streaming: mereka mengembalikan hasil antara saat pengenalan berlangsung. Ini cocok untuk skenario yang membutuhkan umpan balik progres real-time. Model transkripsi asinkron seperti Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans, dan Paraformer tidak mendukung keluaran streaming. Dapatkan hasil akhir dengan polling tugas (untuk informasi lebih lanjut, lihat Proses file audio panjang). Cara mengaktifkan:
  • SDK Python DashScope: atur parameter stream ke True.
  • SDK Java DashScope: panggil API streamCall.
  • HTTP DashScope: atur header X-DashScope-SSE ke enable.
  • SDK kompatibel OpenAI: atur parameter stream ke True.
Untuk contoh output streaming Qwen3-ASR-Flash, lihat Contoh permintaan lalu pilih tab keluaran streaming.

Tingkatkan akurasi dengan hotwords

Hotwords meningkatkan akurasi pengenalan untuk nama diri spesifik domain seperti nama orang, nama tempat, dan nama produk. Untuk detail cara membuat dan menggunakan hotwords, lihat Tingkatkan akurasi pengenalan. SDK berbeda menggunakan konvensi penamaan berbeda untuk parameter ini, seperti kunci kamus, properti objek, atau metode. Untuk pemetaan bidang lengkap, lihat referensi API untuk setiap SDK.

Tingkatkan akurasi dengan peningkatan konteks

Peningkatan konteks meneruskan riwayat percakapan ke model ASR, yang secara signifikan meningkatkan akurasi transkripsi untuk nama diri. Untuk detail cara menggunakan fitur ini dan contoh hasilnya, lihat Peningkatan konteks.

Diarizasi pembicara

Diarizasi pembicara secara otomatis mengidentifikasi pembicara berbeda dalam audio dan memberi label setiap kalimat dalam hasil transkripsi dengan tag pembicara. Ini cocok untuk skenario seperti rapat multipihak dan rekaman wawancara. Model yang didukung: model seri Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, dan Paraformer. Cara mengaktifkan: atur parameter diarization_enabled ke true dalam permintaan API. Dalam hasilnya, setiap kalimat menyertakan bidang speaker_id yang mengidentifikasi pembicara. Struktur respons contoh (cuplikan):
{
  "transcripts": [
    {
      "sentences": [
        { "begin_time": 100, "end_time": 3820, "text": "Halo, mari kita bahas kemajuan proyek hari ini.", "speaker_id": 0 },
        { "begin_time": 3820, "end_time": 6500, "text": "Tentu, izinkan saya memberikan laporan singkat terlebih dahulu.", "speaker_id": 1 }
      ]
    }
  ]
}
SDK berbeda menggunakan konvensi penamaan berbeda untuk bidang ini, seperti kunci kamus, properti objek, atau metode. Untuk pemetaan bidang lengkap, lihat referensi API untuk setiap SDK.
Saat diarizasi pembicara diaktifkan, batasi durasi audio dalam 2 jam. Audio yang lebih panjang dapat menyebabkan kegagalan pengenalan atau timeout. Untuk batas durasi audio saat diarizasi dinonaktifkan, lihat Proses file audio panjang. Diarizasi pembicara hanya mendukung audio mono.
Untuk definisi bidang lengkap, lihat referensi API.

Penyaringan kata sensitif

Penyaringan kata sensitif mengganti atau menghapus kata sensitif dalam hasil pengenalan. Ini cocok untuk skenario seperti inspeksi kualitas layanan pelanggan, kepatuhan konten, dan moderasi subtitle. Model yang didukung: model seri Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, dan Paraformer. Perilaku default: saat parameter special_word_filter tidak diteruskan, sistem menggunakan daftar kata sensitif Model Studio bawaan. Kata yang cocok diganti dengan string * dengan panjang yang sama. Konfigurasi khusus: special_word_filter adalah objek JSON dengan tiga subbidang:
  • filter_with_signed.word_list: larik string kata sensitif yang akan diganti dengan string * dengan panjang yang sama. Misalnya, dengan ["test"], "Tolong bantu saya test ini" menjadi "Tolong bantu saya **** ini".
  • filter_with_empty.word_list: larik string kata sensitif yang akan dihapus sepenuhnya dari hasil. Misalnya, dengan ["start"], "Apakah permainan akan segera dimulai sekarang" menjadi "Apakah permainan akan segera sekarang".
  • system_reserved_filter: nilai boolean yang default-nya true. Ini mengontrol apakah juga menerapkan daftar kata sensitif bawaan sistem, yang berlaku bersama daftar khusus Anda.
Contoh konfigurasi:
{
  "special_word_filter": {
    "filter_with_signed": {
      "word_list": ["test"]
    },
    "filter_with_empty": {
      "word_list": ["start", "happen"]
    },
    "system_reserved_filter": true
  }
}
SDK berbeda menggunakan konvensi penamaan berbeda untuk parameter ini, seperti kunci kamus, properti objek, atau metode. Untuk pemetaan bidang lengkap, lihat referensi API.

Pengenalan emosi

Model seri Qwen3-ASR-Flash-Filetrans dan Qwen3-ASR-Flash memiliki pengenalan emosi yang diaktifkan secara permanen, tanpa konfigurasi tambahan yang diperlukan. Hasilnya mencakup tag emosi untuk pembicara, dipilih dari tujuh emosi detail halus: surprised, neutral, happy, sad, disgusted, angry, dan fearful. Jalur bidang (berbeda-beda tergantung API):
  • API kompatibel OpenAI (transkripsi real-time Qwen3-ASR-Flash): bersarang dalam choices[].delta.annotations[].emotion (keluaran streaming) atau choices[].message.annotations[].emotion (non-streaming).
  • API sinkron DashScope (Qwen3-ASR-Flash): bersarang dalam output.choices[].message.annotations[].emotion.
  • API tugas asinkron DashScope (transkripsi file rekaman Qwen3-ASR-Flash-Filetrans): bersarang dalam transcripts[].sentences[].emotion, bersama timestamp, pembicara, dan bidang lain dalam setiap objek kalimat.
Struktur respons contoh (cuplikan dari API tugas asinkron DashScope):
{
  "transcripts": [{
    "sentences": [{
      "begin_time": 0,
      "end_time": 1440,
      "text": "Selamat datang di Alibaba Cloud.",
      "emotion": "neutral",
      "language": "en"
    }]
  }]
}
SDK berbeda menggunakan konvensi penamaan berbeda untuk bidang ini, seperti kunci kamus, properti objek, atau metode. Untuk pemetaan bidang lengkap, lihat referensi API.
Model non-real-time Qwen-Audio-3.0-ASR-Flash-Filetrans, Qwen-Audio-3.0-ASR-Flash, Fun-ASR-Flash, Fun-ASR, dan Paraformer tidak mendukung pengenalan emosi. Untuk menggunakan pengenalan emosi dalam pengenalan real-time, lihat bagian yang sesuai dalam Pengenalan ucapan real-time.

Dapatkan timestamp

Pengenalan ucapan non-real-time dapat mengeluarkan timestamp dalam hasil transkripsi, yang membantu pembuatan subtitle, penyorotan kata kunci, dan pengeditan audio/video. Qwen-Audio-3.0-ASR-Flash-Filetrans, Qwen-Audio-3.0-ASR-Flash, Fun-ASR, Fun-ASR-Flash, Qwen3-ASR-Flash-Filetrans, dan Paraformer semuanya mendukung timestamp, tetapi perilaku default dan metode kontrol berbeda-beda tergantung model:
  • Qwen-Audio-3.0-ASR-Flash-Filetrans/Qwen-Audio-3.0-ASR-Flash/Fun-ASR/Fun-ASR-Flash/Paraformer: timestamp diaktifkan secara permanen dan tidak dapat dimatikan.
  • Qwen3-ASR-Flash-Filetrans: hanya panggilan asinkron DashScope yang mendukung timestamp, dan timestamp diaktifkan secara permanen. Gunakan parameter permintaan enable_words untuk mengontrol tingkat timestamp: atur ke false (default) untuk mengembalikan timestamp tingkat kalimat, atau true untuk mengembalikan timestamp tingkat kata. Timestamp tingkat kata hanya mendukung bahasa berikut: Cina, Inggris, Jepang, Korea, Jerman, Prancis, Spanyol, Italia, Portugis, dan Rusia. Akurasi tidak dijamin untuk bahasa lain.
Saat Anda memanggil Qwen3-ASR-Flash melalui API kompatibel OpenAI, bentuk keluarannya adalah chat.completion, yang tidak mengembalikan bidang timestamp. Untuk timestamp, gunakan Qwen3-ASR-Flash-Filetrans (API tugas asinkron).
Timestamp dalam satuan milidetik dan dikembalikan pada dua tingkat:
  • Tingkat kalimat: sentences[].begin_time dan sentences[].end_time menandai waktu mulai dan akhir setiap kalimat dalam audio.
  • Tingkat kata: larik sentences[].words[], di mana setiap elemen berisi begin_time, end_time, dan text (teks kata tersebut).
Struktur respons contoh (cuplikan dari API tugas asinkron DashScope):
{
  "transcripts": [{
    "sentences": [{
      "begin_time": 100,
      "end_time": 3820,
      "text": "Halo, mari kita bahas kemajuan proyek hari ini.",
      "words": [
        { "begin_time": 100, "end_time": 596, "text": "Halo," },
        { "begin_time": 596, "end_time": 844, "text": "mari" }
      ]
    }]
  }]
}
Timestamp dalam audio adalah bilangan bulat milidetik (seperti 100). Jangan bingung dengan end_time tingkat tugas (waktu penyelesaian tugas, string tanggal seperti "2024-09-12 15:11:40.903"). Ini adalah bidang yang berbeda.
SDK berbeda menggunakan konvensi penamaan berbeda untuk bidang ini, seperti kunci kamus, properti objek, atau metode. Untuk pemetaan bidang lengkap, lihat referensi API.

Terapkan di produksi

Saat menerapkan pengenalan ucapan non-real-time di produksi, praktik terbaik berikut meningkatkan kualitas pengenalan dan stabilitas sistem.

Skema konkurensi tinggi: gunakan callback alih-alih polling

Untuk tugas transkripsi asinkron (Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans, dan Paraformer), Anda mengirimkan tugas melalui POST /api/v1/services/audio/asr/transcription lalu biasanya mendapatkan hasilnya dengan memanggil API kueri secara berkala GET /api/v1/tasks/{task_id}. API kueri ini secara default memiliki batas 20 QPS dan dapat diskalakan hingga 100 QPS. Dalam skenario batch konkurensi tinggi, polling yang sering mudah memicu Pembatasan kecepatan. Konfigurasikan notifikasi callback melalui EventBridge. Saat tugas selesai, Model Studio secara otomatis mendorong event dashscope:System:AsyncTaskFinish ke target yang Anda konfigurasi (endpoint HTTP/HTTPS atau topik RocketMQ). Setelah konsumen menerima event tersebut, tidak perlu lagi memanggil API kueri, yang menghindari risiko Pembatasan kecepatan akibat polling yang sering. Untuk informasi lebih lanjut, lihat Konfigurasi notifikasi callback EventBridge.

Model yang didukung

  • Didukung: Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, Qwen3-ASR-Flash-Filetrans, dan Paraformer (semua tugas transkripsi asinkron).
  • Tidak didukung: Qwen3-ASR-Flash (panggilan sinkron atau streaming, yang bukan tugas asinkron).

Isi pesan callback

Untuk ketiga model, isi pesan callback memiliki data.contain_result diatur ke true, dan data.output_result secara langsung membawa transcription_url. Setelah konsumen menerima callback, dapat langsung mendapatkan hasil pengenalan tanpa perlu memanggil GET /api/v1/tasks/{task_id} lagi. Namun, jalur dan struktur bidang hasil berbeda-beda di ketiga model. Lihat tabel berikut.
Saat menulis konsumen, pilih jalur yang benar untuk model yang Anda gunakan. Jangan hardcode satu jalur saja. Dalam skenario kegagalan, data.output_result.output tidak lagi berisi results/result; melainkan berisi bidang code dan message. Periksa data.task_status terlebih dahulu, lalu baca hasilnya.

Model

Parameter pengiriman

Jalur bidang hasil (berdasarkan isi callback)

bidang Penggunaan

Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR

input.file_urls (larik; hanya 1 URL per panggilan)

data.output_result.output.results[ ].transcription_url (larik, satu entri per file, dengan subtask_status; juga mencakup task_metrics)

duration

Paraformer

input.file_urls (larik; hanya 1 URL per panggilan)

Sama dengan Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR: data.output_result.output.results[ ].transcription_url

duration

Qwen3-ASR-Flash-Filetrans

input.file_url (objek tunggal; hanya 1 URL per panggilan)

data.output_result.output.result.transcription_url (objek tunggal, tanpa results[ ] / task_metrics)

seconds

Catatan penggunaan

Keamanan (pengiriman HTTP/HTTPS): di produksi, verifikasi field header X-Eventbridge-Signature* dalam permintaan callback sebelum mengonsumsinya. Jika tidak, IP eksternal mana pun dapat memalsukan event AsyncTaskFinish dan menyuntikkan hasil pengenalan palsu. Juga atur timeout penerima minimal 5 detik pada penerima. Metode pengiriman RocketMQ tidak memiliki signature tingkat pesan; keamanannya dijamin oleh mekanisme otentikasi RocketMQ. Latensi pengiriman: dari penyelesaian tugas (end_time) hingga target pengiriman (endpoint HTTP/HTTPS atau topik RocketMQ) menerima pesan, penundaannya biasanya sekitar 1 hingga 90 detik. Latensi tepatnya tergantung pada beban real-time EventBridge. Idempotensi: event yang sama mungkin dikirim beberapa kali karena retries. Implementasikan pemrosesan idempoten pada konsumen, menggunakan data.id atau data.task_id CloudEvents sebagai kunci deduplikasi.

Rekomendasi produksi

  • Hosting file: unggah file audio ke Object Storage Service (OSS) Alibaba Cloud dan panggil API melalui URL. Hindari unggahan file lokal (panggilan file lokal dibatasi hingga 100 QPS dan tidak dapat diskalakan).
  • Polling asinkron: transkripsi audio panjang menggunakan model asinkron. Atur interval polling yang wajar (misalnya 2 hingga 5 detik) untuk menghindari kueri yang sering yang menghabiskan kuota Anda. Untuk melebihi batas kueri 20 hingga 100 QPS, beralihlah ke notifikasi callback event. Untuk informasi lebih lanjut, lihat Skema konkurensi tinggi: gunakan callback alih-alih polling.
  • Penanganan error: implementasikan mekanisme retry yang kuat. Untuk timeout jaringan atau error sementara di sisi server (5xx), lakukan retry dengan strategi backoff eksponensial.
  • Reduksi noise: untuk audio yang berisik, pra-proses dengan alat seperti FFmpeg sebelum mengirimkannya untuk pengenalan.
  • Pemilihan model: pilih model yang tepat berdasarkan durasi audio. Untuk audio pendek dalam 5 menit, gunakan Qwen3-ASR-Flash. Untuk audio panjang lebih dari 5 menit, gunakan Qwen-Audio-3.0-ASR-Flash-Filetrans, Fun-ASR, atau Qwen3-ASR-Flash-Filetrans.

Model dan wilayah yang didukung

  • Singapura
  • AS (Virginia)
  • China (Beijing)
Untuk memanggil model berikut, gunakan Kunci API untuk wilayah Singapura:
  • Qwen-Audio-3.0-ASR-Flash-Filetrans: qwen-audio-3.0-asr-flash-filetrans
  • Qwen-Audio-3.0-ASR-Flash: qwen-audio-3.0-asr-flash
  • Fun-ASR: fun-asr (versi stabil, saat ini setara dengan fun-asr-2025-11-07), fun-asr-2025-11-07 (versi snapshot), fun-asr-2025-08-25 (versi snapshot), fun-asr-mtl (versi stabil, saat ini setara dengan fun-asr-mtl-2025-08-25), fun-asr-mtl-2025-08-25 (versi snapshot)
  • Fun-ASR-Flash: fun-asr-flash-2026-06-15
  • Qwen3-ASR-Flash-Filetrans: qwen3-asr-flash-filetrans (versi stabil, saat ini setara dengan qwen3-asr-flash-filetrans-2025-11-17), qwen3-asr-flash-filetrans-2025-11-17 (versi snapshot)
  • Qwen3-ASR-Flash: qwen3-asr-flash (versi stabil, saat ini setara dengan qwen3-asr-flash-2025-09-08), qwen3-asr-flash-2026-02-10 (versi snapshot terbaru), qwen3-asr-flash-2025-09-08 (versi snapshot)

Referensi API

FAQ

T: Bagaimana cara menyediakan URL audio yang dapat diakses publik ke API?

Gunakan Layanan Penyimpanan Objek (OSS) Alibaba Cloud. OSS menyediakan penyimpanan yang sangat tersedia dan andal, serta memungkinkan Anda menghasilkan URL akses publik. Verifikasi bahwa URL yang dihasilkan dapat diakses melalui jaringan publik: buka URL di browser atau dengan perintah curl untuk memastikan file audio dapat diunduh atau diputar (kode status HTTP 200).

T: Bagaimana cara memeriksa apakah format audio memenuhi persyaratan?

Gunakan alat open-source ffprobe untuk dengan cepat mendapatkan informasi audio terperinci:
// Kueri format kontainer (format_name), kodek (codec_name), laju sampel (sample_rate), dan jumlah channel (channels) audio
ffprobe -v error -show_entries format=format_name -show_entries stream=codec_name,sample_rate,channels -of default=noprint_wrappers=1 your_audio_file.mp3

T: Bagaimana cara memproses audio agar memenuhi persyaratan model?

Gunakan alat open-source FFmpeg untuk memangkas atau mengonversi audio:
  • Pangkas audio: ekstrak klip dari file audio panjang
// -i: file input
// -ss 00:01:30: atur waktu mulai pemangkasan (mulai pada 1 menit 30 detik)
// -t 00:02:00: atur durasi pemangkasan (pangkas 2 menit)
// -c copy: salin aliran audio langsung tanpa re-encoding, yang cepat
// output_clip.wav: file output
ffmpeg -i long_audio.wav -ss 00:01:30 -t 00:02:00 -c copy output_clip.wav
  • Konversi format Misalnya, konversi audio apa pun ke file WAV mono 16 kHz, 16-bit:
// -i: file input
// -ac 1: atur jumlah channel ke 1 (mono)
// -ar 16000: atur laju sampel ke 16000 Hz (16 kHz)
// -sample_fmt s16: atur format sampel ke PCM integer bertanda 16-bit
// output.wav: file output
ffmpeg -i input.mp3 -ac 1 -ar 16000 -sample_fmt s16 output.wav

T: Bagaimana cara meningkatkan akurasi pengenalan?

Faktor-faktor berikut memengaruhi akurasi pengenalan. Periksa masing-masing dan optimalkan sesuai kebutuhan. Faktor utama:
  1. Kualitas audio: kualitas perangkat perekam, laju sampel, dan noise lingkungan secara langsung memengaruhi kejernihan audio. Input audio berkualitas tinggi adalah fondasi pengenalan yang akurat.
  2. Karakteristik pembicara: nada suara, kecepatan bicara, aksen, dan perbedaan dialek (terutama dialek langka atau aksen kuat) meningkatkan kesulitan pengenalan.
  3. Bahasa dan kosakata: campuran bahasa, istilah teknis, atau slang meningkatkan kesulitan pengenalan. Konfigurasikan hotwords untuk meningkatkan akurasi istilah spesifik domain.
Metode optimasi:
  1. Tingkatkan kualitas audio: gunakan mikrofon berkinerja-tinggi, rekam pada laju sampel yang direkomendasikan, dan minimalkan noise lingkungan serta gema.
  2. Adaptasi terhadap pembicara: untuk audio dengan aksen kuat atau dialek mencolok, pilih model yang mendukung dialek tersebut.
  3. Konfigurasikan hotwords: atur hotwords untuk istilah teknis, nama diri, dan kata serupa.
Rencana Token (Team Edition)
Model playground
Statistik dan Pemantauan
Asset Center
Dukungan layanan