Model pengenalan file audio Qwen mengonversi rekaman audio menjadi teks dan mendukung fitur seperti pengenalan multi-bahasa, pengenalan suara bernyanyi, serta penekanan kebisingan.
Fitur utama
Pengenalan multi-bahasa: Mendukung berbagai bahasa, termasuk Mandarin dan dialeknya seperti Kanton dan Sichuan.
Adaptasi terhadap lingkungan kompleks: Mampu menangani lingkungan akustik yang kompleks, mendukung deteksi bahasa otomatis, serta penyaringan cerdas terhadap suara non-manusia.
Pengenalan suara bernyanyi: Menyalin seluruh lagu, bahkan dengan musik latar (BGM).
Context biasing: Meningkatkan akurasi pengenalan dengan mengonfigurasi konteks. Untuk detailnya, lihat Context biasing.
Pengenalan emosi: Mengenali berbagai kondisi emosional, termasuk kaget, tenang, bahagia, sedih, jijik, marah, dan takut.
Ketersediaan
Model yang didukung:
Layanan ini menyediakan dua model inti:
Qwen3-ASR-Flash-Filetrans: Dirancang untuk pengenalan asinkron file audio panjang hingga 12 jam, cocok untuk skenario seperti transkripsi catatan rapat dan wawancara.
Qwen3-ASR-Flash: Dirancang untuk pengenalan sinkron atau streaming file audio pendek hingga 5 menit, cocok untuk skenario seperti pesan suara dan keterangan real-time.
Internasional (Singapura)
Saat memanggil model berikut, pilih API key dari wilayah Singapura:
Qwen3-ASR-Flash-Filetrans: qwen3-asr-flash-filetrans, qwen3-asr-flash-filetrans-2025-11-17 (snapshot)
Qwen3-ASR-Flash: qwen3-asr-flash (stable, saat ini setara dengan qwen3-asr-flash-2025-09-08), qwen3-asr-flash-2025-09-08 (snapshot)
AS (Virginia)
Saat memanggil model berikut, pilih API key dari wilayah AS:
Qwen3-ASR-Flash: qwen3-asr-flash-us (stable, saat ini setara dengan qwen3-asr-flash-2025-09-08-us), qwen3-asr-flash-2025-09-08-us (snapshot)
China (Beijing)
Saat memanggil model berikut, pilih API key dari wilayah Beijing:
Qwen3-ASR-Flash-Filetrans: qwen3-asr-flash-filetrans, qwen3-asr-flash-filetrans-2025-11-17 (snapshot)
Qwen3-ASR-Flash: qwen3-asr-flash (stable, saat ini setara dengan qwen3-asr-flash-2025-09-08), qwen3-asr-flash-2025-09-08 (snapshot)
Untuk informasi lebih lanjut, lihat Daftar model.
Pemilihan model
Skenario | Model yang direkomendasikan | Alasan | Catatan |
Pengenalan audio panjang | qwen3-asr-flash-filetrans | Mendukung rekaman hingga 12 jam. Menyediakan pengenalan emosi dan timestamp tingkat kalimat, cocok untuk pengindeksan dan analisis selanjutnya. | Ukuran file audio tidak boleh melebihi 2 GB, dan durasi tidak boleh melebihi 12 jam. |
Pengenalan audio pendek | qwen3-asr-flash atau qwen3-asr-flash-us) | Pengenalan latensi rendah untuk audio pendek. | Ukuran file audio tidak boleh melebihi 10 MB, dan durasi tidak boleh melebihi 5 menit. |
Pemeriksaan kualitas layanan pelanggan | qwen3-asr-flash-filetrans, qwen3-asr-flash atau qwen3-asr-flash-us) | Dapat menganalisis emosi pelanggan. | Tidak mendukung penyaringan kata sensitif atau diarization pembicara. Pilih model yang sesuai berdasarkan durasi audio. |
Pembuatan keterangan program berita/wawancara | qwen3-asr-flash-filetrans | Audio panjang, prediksi tanda baca, dan timestamp untuk langsung menghasilkan keterangan terstruktur. | Memerlukan post-processing untuk menghasilkan file subtitle standar. Pilih model yang sesuai berdasarkan durasi audio. |
Lokalisasi video multibahasa | qwen3-asr-flash-filetrans, qwen3-asr-flash atau qwen3-asr-flash-us) | Mencakup berbagai bahasa dan dialek, cocok untuk pembuatan keterangan lintas bahasa. | Pilih model yang sesuai berdasarkan durasi audio. |
Analisis audio bernyanyi | qwen3-asr-flash-filetrans, qwen3-asr-flash atau qwen3-asr-flash-us) | Mengenali lirik dan menganalisis emosi, cocok untuk pengindeksan dan rekomendasi lagu. | Pilih model yang sesuai berdasarkan durasi audio. |
Untuk informasi lebih lanjut, lihat Perbandingan fitur model.
Memulai
Layanan ini saat ini tidak mendukung uji coba online. Anda dapat memanggil API-nya sebagai gantinya. Contoh kode berikut menunjukkan cara memanggil API.
Sebelum memulai, pastikan Anda telah membuat dan mengonfigurasi API key. Jika menggunakan SDK, Anda juga harus menginstal versi terbaru SDK DashScope.
qwen3-asr-flash-filetrans
qwen3-asr-flash-filetrans dirancang untuk pengenalan asinkron file audio dan mendukung rekaman hingga 12 jam. Model ini memerlukan input berupa URL file audio yang dapat diakses publik dan tidak mendukung unggahan langsung file lokal. Ini adalah API non-streaming yang mengembalikan semua hasil pengenalan sekaligus setelah tugas selesai.
cURL
Saat menggunakan cURL untuk pengenalan ucapan, pertama-tama kirimkan tugas untuk mendapatkan ID tugas (task_id), lalu gunakan ID tersebut untuk mengambil hasil eksekusi tugas.
Kirimkan tugas
# ======= Penting =======
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
# API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location --request POST 'https://dashscope-intl.aliyuncs.com/api/v1/services/audio/asr/transcription' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-Async: enable" \
--data '{
"model": "qwen3-asr-flash-filetrans",
"input": {
"file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
},
"parameters": {
"channel_id":[
0
],
"enable_itn": false
}
}'Ambil hasil eksekusi tugas
# ======= Penting =======
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}. Catatan: Ganti {task_id} dengan ID tugas yang akan diquery.
# API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location --request GET 'https://dashscope-intl.aliyuncs.com/api/v1/tasks/{task_id}' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "X-DashScope-Async: enable" \
--header "Content-Type: application/json"Contoh lengkap
Java
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import okhttp3.*;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public class Main {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
private static final String API_URL_SUBMIT = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/asr/transcription";
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/tasks/
private static final String API_URL_QUERY = "https://dashscope-intl.aliyuncs.com/api/v1/tasks/";
private static final Gson gson = new Gson();
public static void main(String[] args) {
// API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: String apiKey = "sk-xxx"
String apiKey = System.getenv("DASHSCOPE_API_KEY");
OkHttpClient client = new OkHttpClient();
// 1. Kirimkan tugas
/*String payloadJson = """
{
"model": "qwen3-asr-flash-filetrans",
"input": {
"file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
},
"parameters": {
"channel_id": [0],
"enable_itn": false,
"language": "zh",
"corpus": {
"text": ""
}
}
}
""";*/
String payloadJson = """
{
"model": "qwen3-asr-flash-filetrans",
"input": {
"file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
},
"parameters": {
"channel_id": [0],
"enable_itn": false
}
}
""";
RequestBody body = RequestBody.create(payloadJson, MediaType.get("application/json; charset=utf-8"));
Request submitRequest = new Request.Builder()
.url(API_URL_SUBMIT)
.addHeader("Authorization", "Bearer " + apiKey)
.addHeader("Content-Type", "application/json")
.addHeader("X-DashScope-Async", "enable")
.post(body)
.build();
String taskId = null;
try (Response response = client.newCall(submitRequest).execute()) {
if (response.isSuccessful() && response.body() != null) {
String respBody = response.body().string();
ApiResponse apiResp = gson.fromJson(respBody, ApiResponse.class);
if (apiResp.output != null) {
taskId = apiResp.output.taskId;
System.out.println("Tugas dikirim. task_id: " + taskId);
} else {
System.out.println("Konten respons pengiriman: " + respBody);
return;
}
} else {
System.out.println("Pengiriman tugas gagal! Kode HTTP: " + response.code());
if (response.body() != null) {
System.out.println(response.body().string());
}
return;
}
} catch (IOException e) {
e.printStackTrace();
return;
}
// 2. Poll status tugas
boolean finished = false;
while (!finished) {
try {
TimeUnit.SECONDS.sleep(2); // Tunggu 2 detik sebelum mengquery lagi
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
return;
}
String queryUrl = API_URL_QUERY + taskId;
Request queryRequest = new Request.Builder()
.url(queryUrl)
.addHeader("Authorization", "Bearer " + apiKey)
.addHeader("X-DashScope-Async", "enable")
.addHeader("Content-Type", "application/json")
.get()
.build();
try (Response response = client.newCall(queryRequest).execute()) {
if (response.body() != null) {
String queryResponse = response.body().string();
ApiResponse apiResp = gson.fromJson(queryResponse, ApiResponse.class);
if (apiResp.output != null && apiResp.output.taskStatus != null) {
String status = apiResp.output.taskStatus;
System.out.println("Status tugas saat ini: " + status);
if ("SUCCEEDED".equalsIgnoreCase(status)
|| "FAILED".equalsIgnoreCase(status)
|| "UNKNOWN".equalsIgnoreCase(status)) {
finished = true;
System.out.println("Tugas selesai. Hasil akhir: ");
System.out.println(queryResponse);
}
} else {
System.out.println("Konten respons query: " + queryResponse);
}
}
} catch (IOException e) {
e.printStackTrace();
return;
}
}
}
static class ApiResponse {
@SerializedName("request_id")
String requestId;
Output output;
}
static class Output {
@SerializedName("task_id")
String taskId;
@SerializedName("task_status")
String taskStatus;
}
}Python
import os
import time
import requests
import json
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
API_URL_SUBMIT = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/asr/transcription"
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/tasks/
API_URL_QUERY_BASE = "https://dashscope-intl.aliyuncs.com/api/v1/tasks/"
def main():
# API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"X-DashScope-Async": "enable"
}
# 1. Kirimkan tugas
payload = {
"model": "qwen3-asr-flash-filetrans",
"input": {
"file_url": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
},
"parameters": {
"channel_id": [0],
# "language": "zh",
"enable_itn": False
# "corpus": {
# "text": ""
# }
}
}
print("Mengirimkan tugas transkripsi ASR...")
try:
submit_resp = requests.post(API_URL_SUBMIT, headers=headers, data=json.dumps(payload))
except requests.RequestException as e:
print(f"Gagal mengirim permintaan tugas: {e}")
return
if submit_resp.status_code != 200:
print(f"Pengiriman tugas gagal! Kode HTTP: {submit_resp.status_code}")
print(submit_resp.text)
return
resp_data = submit_resp.json()
output = resp_data.get("output")
if not output or "task_id" not in output:
print("Konten respons pengiriman tidak normal:", resp_data)
return
task_id = output["task_id"]
print(f"Tugas dikirim. task_id: {task_id}")
# 2. Poll status tugas
finished = False
while not finished:
time.sleep(2) # Tunggu 2 detik sebelum mengquery lagi
query_url = API_URL_QUERY_BASE + task_id
try:
query_resp = requests.get(query_url, headers=headers)
except requests.RequestException as e:
print(f"Gagal mengquery tugas: {e}")
return
if query_resp.status_code != 200:
print(f"Query tugas gagal! Kode HTTP: {query_resp.status_code}")
print(query_resp.text)
return
query_data = query_resp.json()
output = query_data.get("output")
if output and "task_status" in output:
status = output["task_status"]
print(f"Status tugas saat ini: {status}")
if status.upper() in ("SUCCEEDED", "FAILED", "UNKNOWN"):
finished = True
print("Tugas selesai. Hasil akhir sebagai berikut:")
print(json.dumps(query_data, indent=2, ensure_ascii=False))
else:
print("Konten respons query:", query_data)
if __name__ == "__main__":
main()Java SDK
import com.alibaba.dashscope.audio.qwen_asr.*;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
QwenTranscriptionParam param =
QwenTranscriptionParam.builder()
// API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-asr-flash-filetrans")
.fileUrl("https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_example_1.wav")
//.parameter("language", "zh")
//.parameter("channel_id", new ArrayList<String>(){{add("0");add("1");}})
.parameter("enable_itn", false)
//.parameter("corpus", new HashMap<String, String>() {{put("text", "");}})
.build();
try {
QwenTranscription transcription = new QwenTranscription();
// Kirimkan tugas
QwenTranscriptionResult result = transcription.asyncCall(param);
System.out.println("hasil membuat tugas: " + result);
// Query status tugas
result = transcription.fetch(QwenTranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
System.out.println("status tugas: " + result);
// Tunggu hingga tugas selesai
result =
transcription.wait(
QwenTranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
System.out.println("hasil tugas: " + result);
// Dapatkan hasil pengenalan ucapan
QwenTranscriptionTaskResult taskResult = result.getResult();
if (taskResult != null) {
// Dapatkan URL hasil pengenalan
String transcriptionUrl = taskResult.getTranscriptionUrl();
// Ambil hasil dari URL
HttpURLConnection connection =
(HttpURLConnection) new URL(transcriptionUrl).openConnection();
connection.setRequestMethod("GET");
connection.connect();
BufferedReader reader =
new BufferedReader(new InputStreamReader(connection.getInputStream()));
// Format dan cetak hasil JSON
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(gson.fromJson(reader, JsonObject.class)));
}
} catch (Exception e) {
System.out.println("error: " + e);
}
}
}Python SDK
import json
import os
import sys
from http import HTTPStatus
import dashscope
from dashscope.audio.qwen_asr import QwenTranscription
from dashscope.api_entities.dashscope_response import TranscriptionResponse
# jalankan skrip transkripsi
if __name__ == '__main__':
# API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
# Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
task_response = QwenTranscription.async_call(
model='qwen3-asr-flash-filetrans',
file_url='https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_example_1.wav',
#language="",
enable_itn=False
#corpus= {
# "text": ""
#}
)
print(f'task_response: {task_response}')
print(task_response.output.task_id)
query_response = QwenTranscription.fetch(task=task_response.output.task_id)
print(f'query_response: {query_response}')
task_result = QwenTranscription.wait(task=task_response.output.task_id)
print(f'task_result: {task_result}')qwen3-asr-flash
Model qwen3-asr-flash mendukung file audio hingga 5 menit dan menerima URL file audio yang dapat diakses publik atau unggahan langsung file lokal sebagai input. Model ini juga mendukung keluaran streaming untuk hasil pengenalan.
Input: URL file audio
Python SDK
import os
import dashscope
# Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{"role": "system", "content": [{"text": ""}]}, # Konfigurasikan konteks untuk pengenalan kustom
{"role": "user", "content": [{"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"}]}
]
response = dashscope.MultiModalConversation.call(
# API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-asr-flash",
messages=messages,
result_format="message",
asr_options={
#"language": "zh", # Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
"enable_itn":False
}
)
print(response)Java SDK
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("audio", "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3")))
.build();
MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
// Konfigurasikan konteks untuk pengenalan kustom di sini
.content(Arrays.asList(Collections.singletonMap("text", "")))
.build();
Map<String, Object> asrOptions = new HashMap<>();
asrOptions.put("enable_itn", false);
// asrOptions.put("language", "zh"); // Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
MultiModalConversationParam param = MultiModalConversationParam.builder()
// API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-asr-flash")
.message(sysMessage)
.message(userMessage)
.parameter("asr_options", asrOptions)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
// Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}cURL
Anda dapat mengonfigurasi konteks untuk pengenalan kustom menggunakan parameter text dalam pesan sistem.
# ======= Penting =======
# Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location --request POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type": "application/json" \
--data "{
"model": "qwen3-asr-flash",
"input": {
"messages": [
{
"content": [
{
"text": ""
}
],
"role": "system"
},
{
"content": [
{
"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
}
],
"role": "user"
}
]
},
"parameters": {
"asr_options": {
"enable_itn": false
}
}
}"Input: File audio yang dikodekan Base64
Anda dapat memasukkan data yang dikodekan Base64 (Data URL) dalam format berikut: data:<mediatype>;base64,<data>.
<mediatype>: Multipurpose Internet Mail Extensions (MIME) typeBervariasi tergantung pada format audio. Misalnya:
WAV:
audio/wavMP3:
audio/mpegM4A:
audio/mp4
<data>: String yang dikodekan Base64 dari audio.Pengkodean Base64 meningkatkan ukuran file. Anda harus mengontrol ukuran file asli agar data yang dikodekan tidak melebihi batas ukuran input audio 10 MB.
Contoh:
data:audio/wav;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU4LjI5LjEwMAAAAAAAAAAAAAAA//PAxABQ/BXRbMPe4IQAhl9
Python SDK
import base64
import dashscope
import os
import pathlib
# Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ganti dengan jalur aktual ke file audio Anda
file_path = "welcome.mp3"
# Ganti dengan tipe MIME aktual file audio Anda
audio_mime_type = "audio/mpeg"
file_path_obj = pathlib.Path(file_path)
if not file_path_obj.exists():
raise FileNotFoundError(f"File audio tidak ditemukan: {file_path}")
base64_str = base64.b64encode(file_path_obj.read_bytes()).decode()
data_uri = f"data:{audio_mime_type};base64,{base64_str}"
messages = [
{"role": "system", "content": [{"text": ""}]}, # Konfigurasikan konteks untuk pengenalan kustom
{"role": "user", "content": [{"audio": data_uri}]}
]
response = dashscope.MultiModalConversation.call(
# API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-asr-flash",
messages=messages,
result_format="message",
asr_options={
# "language": "zh", # Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
"enable_itn":False
}
)
print(response)Java SDK
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
// Ganti dengan jalur aktual ke file audio Anda
private static final String AUDIO_FILE = "welcome.mp3";
// Ganti dengan tipe MIME aktual file audio Anda
private static final String AUDIO_MIME_TYPE = "audio/mpeg";
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException, IOException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("audio", toDataUrl())))
.build();
MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
// Konfigurasikan konteks untuk pengenalan kustom di sini
.content(Arrays.asList(Collections.singletonMap("text", "")))
.build();
Map<String, Object> asrOptions = new HashMap<>();
asrOptions.put("enable_itn", false);
// asrOptions.put("language", "zh"); // Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
MultiModalConversationParam param = MultiModalConversationParam.builder()
// API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-asr-flash")
.message(sysMessage)
.message(userMessage)
.parameter("asr_options", asrOptions)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
// Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
// Hasilkan data URI
public static String toDataUrl() throws IOException {
byte[] bytes = Files.readAllBytes(Paths.get(AUDIO_FILE));
String encoded = Base64.getEncoder().encodeToString(bytes);
return "data:" + AUDIO_MIME_TYPE + ";base64," + encoded;
}
}Input: Jalur mutlak file audio lokal
Saat menggunakan SDK DashScope untuk memproses file lokal, Anda harus menyediakan jalur file. Tabel berikut menunjukkan cara membuat jalur file berdasarkan sistem operasi Anda.
Sistem | SDK | Jalur file untuk diteruskan | Contoh |
Linux atau macOS | Python SDK | file://{jalur_mutlak_file} | file:///home/images/test.png |
Java SDK | |||
Windows | Python SDK | file://{jalur_mutlak_file} | file://D:/images/test.png |
Java SDK | file:///{jalur_absolut_file} | file:///D:images/test.png |
Saat menggunakan file lokal, batas pemanggilan API adalah 100 permintaan per detik (QPS), dan batas ini tidak dapat ditingkatkan. Metode ini tidak disarankan untuk lingkungan produksi, situasi konkurensi tinggi, atau skenario uji stres. Untuk konkurensi yang lebih tinggi, unggah file ke Object Storage Service (OSS) dan panggil API menggunakan URL file audio.
Python SDK
import os
import dashscope
# Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ganti ABSOLUTE_PATH/welcome.mp3 dengan jalur mutlak ke file audio lokal Anda.
audio_file_path = "file://ABSOLUTE_PATH/welcome.mp3"
messages = [
{"role": "system", "content": [{"text": ""}]}, # Konfigurasikan konteks untuk pengenalan kustom
{"role": "user", "content": [{"audio": audio_file_path}]}
]
response = dashscope.MultiModalConversation.call(
# API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-asr-flash",
messages=messages,
result_format="message",
asr_options={
# "language": "zh", # Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
"enable_itn":False
}
)
print(response)Java SDK
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
// Ganti ABSOLUTE_PATH/welcome.mp3 dengan jalur mutlak ke file lokal Anda.
String localFilePath = "file://ABSOLUTE_PATH/welcome.mp3";
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("audio", localFilePath)))
.build();
MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
// Konfigurasikan konteks untuk pengenalan kustom di sini
.content(Arrays.asList(Collections.singletonMap("text", "")))
.build();
Map<String, Object> asrOptions = new HashMap<>();
asrOptions.put("enable_itn", false);
// asrOptions.put("language", "zh"); // Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
MultiModalConversationParam param = MultiModalConversationParam.builder()
// API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-asr-flash")
.message(sysMessage)
.message(userMessage)
.parameter("asr_options", asrOptions)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Keluaran streaming
Model dapat menghasilkan hasil secara bertahap. Berbeda dengan keluaran non-streaming yang mengembalikan hasil lengkap setelah model selesai memproses, keluaran streaming mengembalikan hasil antara saat dihasilkan. Hal ini mengurangi waktu tunggu dengan memungkinkan Anda melihat keluaran lebih cepat. Untuk mengaktifkan keluaran streaming, atur parameter yang sesuai berdasarkan metode pemanggilan Anda:
DashScope Python SDK: Atur parameter
streamke true.DashScope Java SDK: Panggil layanan menggunakan antarmuka
streamCall.HTTP: Atur
X-DashScope-SSEkeenabledi header permintaan.
Python SDK
import os
import dashscope
# Berikut ini adalah URL untuk wilayah Singapura/AS. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{"role": "system", "content": [{"text": ""}]}, # Konfigurasikan konteks untuk pengenalan kustom
{"role": "user", "content": [{"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"}]}
]
response = dashscope.MultiModalConversation.call(
# API key untuk wilayah Singapura/AS dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-asr-flash",
messages=messages,
result_format="message",
asr_options={
# "language": "zh", # Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
"enable_itn":False
},
stream=True
)
for response in response:
try:
print(response["output"]["choices"][0]["message"].content[0]["text"])
except:
passJava SDK
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
import io.reactivex.Flowable;
public class Main {
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("audio", "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3")))
.build();
MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
// Konfigurasikan konteks untuk pengenalan kustom di sini
.content(Arrays.asList(Collections.singletonMap("text", "")))
.build();
Map<String, Object> asrOptions = new HashMap<>();
asrOptions.put("enable_itn", false);
// asrOptions.put("language", "zh"); // Opsional. Jika bahasa audio diketahui, tentukan dengan parameter ini untuk meningkatkan akurasi pengenalan.
MultiModalConversationParam param = MultiModalConversationParam.builder()
// API key untuk wilayah Singapura dan Beijing berbeda. Untuk mendapatkan API key: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-asr-flash")
.message(sysMessage)
.message(userMessage)
.parameter("asr_options", asrOptions)
.build();
Flowable<MultiModalConversationResult> resultFlowable = conv.streamCall(param);
resultFlowable.blockingForEach(item -> {
try {
System.out.println(item.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
} catch (Exception e){
System.exit(0);
}
});
}
public static void main(String[] args) {
try {
// Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}cURL
Anda dapat mengonfigurasi konteks untuk pengenalan kustom menggunakan parameter text dalam pesan sistem.
# ======= Catatan Penting =======
# URL berikut ini untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, Anda harus mengganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# API key untuk wilayah Singapura dan Beijing berbeda. Dapatkan API key: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# === Hapus blok komentar ini sebelum eksekusi ===
curl --location --request POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data "{
"model": "qwen3-asr-flash",
"input": {
"messages": [
{
"content": [
{
"text": ""
}
],
"role": "system"
},
{
"content": [
{
"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
}
],
"role": "user"
}
]
},
"parameters": {
"incremental_output": true,
"asr_options": {
"enable_itn": false
}
}
}"Penggunaan Utama: Pembiasan Konteks
Qwen3-ASR (Automatic Speech Recognition) mendukung context biasing. Anda dapat memberikan konteks untuk meningkatkan pengenalan kosakata spesifik domain, seperti nama, tempat, dan istilah produk, yang secara signifikan meningkatkan akurasi transkripsi. Fitur ini lebih fleksibel dan kuat dibandingkan solusi hotword tradisional.
Batas panjang: Konteks tidak boleh melebihi 10.000 token.
Penggunaan: Saat memanggil API, Anda dapat meneruskan teks dalam parameter text dari pesan sistem.
Jenis teks yang didukung: Jenis teks yang didukung meliputi, namun tidak terbatas pada, hal-hal berikut:
Daftar hotword menggunakan berbagai pemisah (misalnya, hotword 1, hotword 2, hotword 3, hotword 4)
Paragraf teks atau bab dalam format dan panjang apa pun
Konten campuran: Kombinasi apa pun dari daftar kata dan paragraf
Teks yang tidak relevan atau tidak berarti (termasuk karakter acak). Model memiliki toleransi kesalahan tinggi dan kemungkinan besar tidak terpengaruh negatif oleh teks yang tidak relevan.
Contoh:
Dalam contoh ini, transkripsi yang benar untuk segmen audio adalah: "Jargon apa dari industri perbankan investasi yang Anda ketahui? Pertama, sembilan bank investasi asing utama, Bulge Bracket, BB…".
Tanpa context biasing Tanpa context biasing, model salah mengenali beberapa nama bank investasi. Misalnya, "Bulge Bracket" dikenali sebagai "Bird Rock". Hasil pengenalan: "Jargon apa saja dari industri perbankan investasi yang Anda ketahui? Pertama, sembilan bank investasi asing utama, the Bird Rock, BB..." | Menggunakan context biasing Dengan context biasing, model mengenali nama bank investasi dengan benar. Hasil pengenalan: "Jargon apa saja dari industri perbankan investasi yang Anda ketahui? Pertama, sembilan bank investasi asing utama—Bulge Bracket (BB)—..." |
Untuk mencapai hasil ini, Anda dapat menambahkan konten berikut ke dalam konteks:
Daftar kata:
Daftar kata 1:
Bulge Bracket, Boutique, Middle Market, domestic securities firmsDaftar kata 2:
Bulge Bracket Boutique Middle Market domestic securities firmsDaftar kata 3:
['Bulge Bracket', 'Boutique', 'Middle Market', 'domestic securities firms']
Bahasa alami:
The secrets of investment banking categories revealed! Recently, many friends from Australia have asked me, what exactly is an investment bank? Today, I'll explain it. For international students, investment banks can be mainly divided into four categories: Bulge Bracket, Boutique, Middle Market, and domestic securities firms. Bulge Bracket investment banks: These are what we often call the nine major investment banks, including Goldman Sachs, Morgan Stanley, etc. These large banks are enormous in both business scope and scale. Boutique investment banks: These banks are relatively small but highly specialized in their business areas. For example, Lazard, Evercore, etc., have deep expertise and experience in specific fields. Middle Market investment banks: This type of bank mainly serves medium-sized companies, providing services such as mergers and acquisitions, and IPOs. Although not as large as the major banks, they have a high influence in specific markets. Domestic securities firms: With the rise of the Chinese market, domestic securities firms are also playing an increasingly important role in the international market. In addition, there are some Position and business divisions, you can refer to the relevant charts. I hope this information helps you better understand investment banking and prepare for your future career!Bahasa alami dengan gangguan: Konteks dapat berisi teks yang tidak relevan. Contoh berikut mencakup nama-nama yang tidak relevan.
The secrets of investment banking categories revealed! Recently, many friends from Australia have asked me, what exactly is an investment bank? Today, I'll explain it. For international students, investment banks can be mainly divided into four categories: Bulge Bracket, Boutique, Middle Market, and domestic securities firms. Bulge Bracket investment banks: These are what we often call the nine major investment banks, including Goldman Sachs, Morgan Stanley, etc. These large banks are enormous in both business scope and scale. Boutique investment banks: These banks are relatively small but highly specialized in their business areas. For example, Lazard, Evercore, etc., have deep expertise and experience in specific fields. Middle Market investment banks: This type of bank mainly serves medium-sized companies, providing services such as mergers and acquisitions, and IPOs. Although not as large as the major banks, they have a high influence in specific markets. Domestic securities firms: With the rise of the Chinese market, domestic securities firms are also playing an increasingly important role in the international market. In addition, there are some Position and business divisions, you can refer to the relevant charts. I hope this information helps you better understand investment banking and prepare for your future career! Wang Haoxuan, Li Zihan, Zhang Jingxing, Liu Xinyi, Chen Junjie, Yang Siyuan, Zhao Yutong, Huang Zhiqiang, Zhou Zimo, Wu Yajing, Xu Ruoxi, Sun Haoran, Hu Jinyu, Zhu Chenxi, Guo Wenbo, He Jingshu, Gao Yuhang, Lin Yifei, Zheng Xiaoyan, Liang Bowen, Luo Jiaqi, Song Mingzhe, Xie Wanting, Tang Ziqian, Han Mengyao, Feng Yiran, Cao Qinxue, Deng Zirui, Xiao Wangshu, Xu Jiashu, Cheng Yinuo, Yuan Zhiruo, Peng Haoyu, Dong Simiao, Fan Jingyu, Su Zijin, Lv Wenxuan, Jiang Shihan, Ding Muchen, Wei Shuyao, Ren Tianyou, Jiang Yichen, Hua Qingyu, Shen Xinghe, Fu Jinyu, Yao Xingchen, Zhong Lingyu, Yan Licheng, Jin Ruoshui, Taoranting, Qi Shaoshang, Xue Zhilan, Zou Yunfan, Xiong Ziang, Bai Wenfeng, Yi Qianfan
Referensi API
Untuk informasi lebih lanjut, lihat Referensi API pengenalan file audio Qwen.
Perbandingan fitur model
Fitur yang dijelaskan dalam tabel berikut untuk model qwen3-asr-flash dan qwen3-asr-flash-2025-09-08 juga berlaku untuk model qwen3-asr-flash-us dan qwen3-asr-flash-2025-09-08-us yang sesuai di wilayah AS (Virginia).
Fitur | qwen3-asr-flash-filetrans, qwen3-asr-flash-filetrans-2025-11-17 | qwen3-asr-flash, qwen3-asr-flash-2025-09-08 |
Bahasa yang didukung | Chinese (Mandarin, Sichuanese, Minnan, Wu, and Cantonese), English, Japanese, German, Korean, Russian, French, Portuguese, Arabic, Italian, Spanish, Hindi, Indonesian, Thai, Turkish, Ukrainian, Vietnamese, Czech, Danish, Filipino, Finnish, Icelandic, Malay, Norwegian, Polish, and Swedish | |
Format audio yang didukung | aac, amr, avi, flac, flv, m4a, mkv, mov, mp3, mp4, mpeg, ogg, opus, wav, webm, wma, wmv | aac, amr, avi, aiff, flac, flv, m4a, mkv, mp3, mpeg, ogg, opus, wav, webm, wma, wmv |
Laju sampel | Any | |
Saluran | Any Model menangani audio multi-saluran secara berbeda:
| |
Format input | URL file yang dapat diakses publik untuk dikenali | File yang dikodekan Base64, jalur mutlak file lokal, URL file yang dapat diakses publik untuk dikenali |
Ukuran/durasi audio | Ukuran file audio hingga 2 GB, durasi hingga 12 jam | Ukuran file audio hingga 10 MB, durasi hingga 5 menit |
Pengenalan emosi | Selalu aktif | |
Timestamp | Selalu aktif | |
Prediksi tanda baca | Selalu aktif | |
Context biasing | Dapat dikonfigurasi | |
ITN | Secara default dimatikan, dapat diaktifkan. Hanya berlaku untuk bahasa China dan Inggris. | |
Pengenalan suara bernyanyi | Selalu aktif | |
Penolakan kebisingan | Selalu aktif | |
Penyaringan kata sensitif | ||
Speaker Diarization | ||
Penyaringan kata pengisi | ||
VAD | Selalu aktif | |
Batas laju (RPM) | 100 | |
Jenis koneksi | RESTful API | Java/Python SDK, RESTful API |
Harga | Internasional (Singapura): $0,000035/detik AS (Virginia): $0,000032/detik China (Beijing): $0,000032/detik | |
FAQ
T: Bagaimana cara menyediakan URL audio yang dapat diakses publik untuk API?
Anda dapat menggunakan Object Storage Service (OSS). Ini adalah layanan penyimpanan yang sangat tersedia dan andal yang memungkinkan Anda dengan mudah menghasilkan URL akses publik.
Untuk memverifikasi bahwa URL yang dihasilkan dapat diakses publik: Anda dapat mengakses URL tersebut di browser atau dengan perintah curl untuk memastikan file audio berhasil diunduh atau diputar (kode status HTTP 200).
T: Bagaimana cara memeriksa apakah format audio memenuhi persyaratan?
Anda dapat menggunakan alat open-source ffprobe untuk dengan cepat mendapatkan informasi detail tentang audio:
# Query format kontainer audio (format_name), encoding (codec_name), laju sampel (sample_rate), dan jumlah saluran (channels)
ffprobe -v error -show_entries format=format_name -show_entries stream=codec_name,sample_rate,channels -of default=noprint_wrappers=1 your_audio_file.mp3T: Bagaimana cara memproses audio agar memenuhi persyaratan model?
Anda dapat menggunakan alat open-source FFmpeg untuk memotong atau mengonversi audio:
Memotong audio: Ekstrak klip dari file audio panjang
# -i: file input # -ss 00:01:30: Atur waktu mulai potongan (mulai pada 1 menit 30 detik) # -t 00:02:00: Atur durasi potongan (2 menit) # -c copy: Salin langsung aliran audio tanpa re-encoding untuk pemrosesan lebih cepat # output_clip.wav: file output ffmpeg -i long_audio.wav -ss 00:01:30 -t 00:02:00 -c copy output_clip.wavKonversi format
Misalnya, Anda dapat mengonversi file audio apa pun ke file WAV mono 16 kHz, 16-bit.
# -i: file input # -ac 1: Atur jumlah saluran audio menjadi 1 (mono) # -ar 16000: Atur laju sampel menjadi 16000 Hz (16 kHz) # -sample_fmt s16: Atur format sampel menjadi PCM integer bertanda 16-bit # output.wav: file output ffmpeg -i input.mp3 -ac 1 -ar 16000 -sample_fmt s16 output.wav