All Products
Search
Document Center

Alibaba Cloud Model Studio:Terjemahan audio dan video - Referensi API Qwen

Last Updated:Aug 26, 2026

qwen3-livetranslate-flash menerjemahkan audio dan video melalui titik akhir chat completions yang kompatibel dengan OpenAI. Semua permintaan dikirimkan secara streaming.

Catatan: Antarmuka DashScope tidak didukung.

Model yang didukung

  • qwen3-livetranslate-flash
  • qwen3-livetranslate-flash-2025-12-01

Prasyarat

Sebelum memulai, lengkapi langkah-langkah berikut:

  1. Buat Kunci API
  2. Konfigurasikan Kunci API sebagai variabel lingkungan
  3. Instal SDK OpenAI (untuk Python atau Node.js)

Titik akhir

WilayahSDK base_urlTitik akhir HTTP
Singapurahttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions
Beijinghttps://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions

PentingModel Studio telah merilis domain khusus ruang kerja untuk wilayah Singapura: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com. Domain khusus baru ini memberikan performa lebih unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami menyarankan Anda bermigrasi dari https://dashscope-intl.aliyuncs.com ke domain baru ini.

{WorkspaceId} adalah ID ruang kerja Anda, yang dapat ditemukan di halaman Detail Ruang Kerja pada Konsol Model Studio. Domain lama tetap berfungsi sepenuhnya.

Mulai cepat

Contoh berikut menerjemahkan file audio dan mengembalikan teks serta audio terjemahan melalui streaming. Ganti base_url jika Anda menggunakan wilayah Beijing.

Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Berikut ini adalah URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

completion = client.chat.completions.create(
    model="qwen3-livetranslate-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_audio",
                    "input_audio": {
                        "data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
                        "format": "wav",
                    },
                }
            ],
        }
    ],
    modalities=["text", "audio"],
    audio={"voice": "Cherry", "format": "wav"},
    stream=True,
    stream_options={"include_usage": True},
    extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}},
)

for chunk in completion:
    print(chunk)

Node.js

import OpenAI from "openai";

const client = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Berikut ini adalah URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
});

async function main() {
    const completion = await client.chat.completions.create({
        model: "qwen3-livetranslate-flash",
        messages: [
            {
                role: "user",
                content: [
                    {
                        type: "input_audio",
                        input_audio: {
                            data: "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
                            format: "wav",
                        },
                    },
                ],
            },
        ],
        modalities: ["text", "audio"],
        audio: { voice: "Cherry", format: "wav" },
        stream: true,
        stream_options: { include_usage: true },
        translation_options: { source_lang: "zh", target_lang: "en" },
    });

    for await (const chunk of completion) {
        console.log(JSON.stringify(chunk));
    }
}

main();

curl

## Berikut ini adalah URL wilayah Singapura. Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. URL berbeda-beda tergantung wilayah.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
  -H "Authorization: Bearer $DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-livetranslate-flash",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "input_audio",
            "input_audio": {
              "data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
              "format": "wav"
            }
          }
        ]
      }
    ],
    "modalities": ["text", "audio"],
    "audio": {
      "voice": "Cherry",
      "format": "wav"
    },
    "stream": true,
    "stream_options": {
      "include_usage": true
    },
    "translation_options": {
      "source_lang": "zh",
      "target_lang": "en"
    }
  }'

Input video

Untuk menerjemahkan video alih-alih audio, atur tipe konten menjadi video_url:

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "video_url",
                "video_url": {
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
                },
            }
        ],
    },
]

Semua parameter lain tetap sama.

Isi permintaan

Parameter wajib

ParameterTipeDeskripsi
modelstringNama model. Nilai yang valid: qwen3-livetranslate-flash, qwen3-livetranslate-flash-2025-12-01.
messagesarrayArray pesan. Hanya satu pesan pengguna yang didukung.
streambooleanHarus diatur ke true. Nilai default-nya adalah false, tetapi hanya keluaran streaming yang didukung, sehingga Anda harus mengatur nilai ini ke true.
translation_optionsobjectKonfigurasi terjemahan. Lihat Opsi terjemahan. Ini adalah parameter non-standar OpenAI. Di SDK Python, masukkan dalam extra_body. Di Node.js atau HTTP, masukkan di tingkat atas badan permintaan.

Parameter opsional

ParameterTipeDefaultDeskripsi
modalitiesarray["text"]Modalitas keluaran. Atur ke ["text", "audio"] untuk menerima keluaran teks dan audio, atau ["text"] hanya untuk teks.
audioobject-Konfigurasi audio keluaran. Wajib saat modalities mencakup "audio". Lihat Opsi keluaran audio.
stream_optionsobject-Konfigurasi streaming. Lihat Opsi streaming.
max_tokensintegerMaksimum modelJumlah maksimum token yang akan dihasilkan. Generasi berhenti pada batas ini atau ketika selesai.
seedinteger-Seed acak untuk reproduktibilitas. Seed yang sama menghasilkan keluaran identik untuk permintaan identik. Rentang: [0, 2^31-1].
speech_ratefloat1.0Mengontrol kecepatan audio keluaran. 1.0 adalah kecepatan normal, kurang dari 1.0 lebih lambat, lebih dari 1.0 lebih cepat. Rentang: [0.5, 2.0].

Parameter pengambilan sampel

Untuk akurasi terjemahan, pertahankan parameter-parameter ini pada nilai default-nya.

ParameterTipeDefaultRentangCatatan
temperaturefloat0.000001[0, 2)Mengontrol keragaman keluaran.
top_pfloat0.8(0, 1.0]Ambang batas pengambilan sampel nucleus.
presence_penaltyfloat0[-2.0, 2.0]Mengurangi pengulangan saat bernilai positif.
top_kinteger1>= 0Ukuran kumpulan kandidat. Jika nilainya None atau lebih besar dari 100, top_k dinonaktifkan dan hanya top_p yang berlaku. Parameter non-standar OpenAI. SDK Python: gunakan extra_body.
repetition_penaltyfloat1.05> 0Memberikan penalti pada urutan yang berulang. Parameter non-standar OpenAI. SDK Python: gunakan extra_body.

Objek pesan

Array messages harus berisi tepat satu objek dengan role diatur ke user.

Properti item array content:
BidangTipeWajibDeskripsi
typestringYainput_audio untuk input audio, video_url untuk input video.
input_audioobjectSaat type adalah input_audioInput audio. Lihat di bawah.
video_urlobjectSaat type adalah video_urlInput video. Lihat di bawah.
Objek input_audio:
BidangTipeWajibDeskripsi
datastringYaURL file audio, atau URL data Base64. Untuk file lokal, lihat Masukkan file lokal yang dikodekan Base64.
formatstringYaFormat audio, seperti mp3 atau wav.
Objek video_url:
BidangTipeWajibDeskripsi
urlstringYaURL publik file video, atau URL data Base64. Untuk file lokal, lihat Masukkan file lokal yang dikodekan Base64.

Opsi terjemahan

BidangTipeWajibDeskripsi
source_langstringTidakNama lengkap bahasa sumber dalam bahasa Inggris. Lihat Bahasa yang didukung. Jika dihilangkan, bahasa akan dideteksi secara otomatis.
target_langstringYaNama lengkap bahasa target dalam bahasa Inggris. Lihat Bahasa yang didukung.

Catatan: translation_options adalah parameter non-standar OpenAI. Di SDK Python, masukkan dalam extra_body. Di Node.js atau HTTP, masukkan di tingkat atas badan permintaan.

extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}}

Opsi keluaran audio

Wajib saat modalities diatur ke ["text", "audio"].

BidangTipeWajibDeskripsi
voicestringYaSuara untuk audio keluaran. Lihat Suara yang didukung.
formatstringYaFormat audio keluaran. Hanya wav yang didukung.

Opsi streaming

BidangTipeDefaultDeskripsi
include_usagebooleanfalseSaat diatur ke true, chunk terakhir mencakup detail penggunaan token.

Tanggapan

API mengembalikan serangkaian chunk streaming, masing-masing berupa objek chat.completion.chunk. Chunk dibagi menjadi tiga kategori: teks, audio, dan penggunaan token.

Chunk teks

Berisi teks terjemahan bertahap dalam choices[0].delta.content:

{
  "id": "chatcmpl-c22a54b8-40cc-4a1d-988b-f84cdf86868f",
  "choices": [
    {
      "delta": {
        "content": null,
        "role": null,
        "audio": {
          "data": "///+//7////+////////////AAAAAAAAAAABA......",
          "expires_at": 1764755440,
          "id": "audio_c22a54b8-40cc-4a1d-988b-f84cdf86868f"
        }
      },
      "finish_reason": null,
      "index": 0
    }
  ],
  "created": 1764755440,
  "model": "qwen3-livetranslate-flash",
  "object": "chat.completion.chunk"
}

Chunk audio

Berisi segmen audio bertahap yang dikodekan Base64 dalam choices[0].delta.audio.data:

{
  "id": "chatcmpl-c22a54b8-40cc-4a1d-988b-f84cdf86868f",
  "choices": [
    {
      "delta": {
        "content": null,
        "role": null,
        "audio": {
          "data": "///+//7////+////////////AAAAAAAAAAABA......",
          "expires_at": 1764755440,
          "id": "audio_c22a54b8-40cc-4a1d-988b-f84cdf86868f"
        }
      },
      "finish_reason": null,
      "index": 0
    }
  ],
  "created": 1764755440,
  "model": "qwen3-livetranslate-flash",
  "object": "chat.completion.chunk"
}

Chunk penggunaan token

Dikembalikan sebagai chunk terakhir saat include_usage diatur ke true. Array choices kosong, dan usage berisi rincian penggunaan token:

{
  "id": "chatcmpl-c22a54b8-40cc-4a1d-988b-f84cdf86868f",
  "choices": [],
  "created": 1764755440,
  "model": "qwen3-livetranslate-flash",
  "object": "chat.completion.chunk",
  "usage": {
    "completion_tokens": 242,
    "prompt_tokens": 415,
    "total_tokens": 657,
    "completion_tokens_details": {
      "accepted_prediction_tokens": null,
      "audio_tokens": 191,
      "reasoning_tokens": null,
      "rejected_prediction_tokens": null,
      "text_tokens": 51
    },
    "prompt_tokens_details": {
      "audio_tokens": 415,
      "cached_tokens": null,
      "text_tokens": 0,
      "video_tokens": null
    }
  }
}

Catatan: Untuk input video, prompt_tokens_details.audio_tokens mencakup token audio yang diekstraksi dari video. video_tokens melaporkan jumlah token khusus video.

Bidang tanggapan

BidangTipeDeskripsi
idstringPengidentifikasi permintaan. Identik di semua chunk.
choicesarrayKonten yang dihasilkan. Kosong pada chunk penggunaan terakhir.
choices[].delta.contentstringTeks terjemahan bertahap. null pada chunk audio.
choices[].delta.audioobjectData audio bertahap. null pada chunk teks.
choices[].delta.audio.datastringSegmen audio yang dikodekan Base64.
choices[].delta.audio.idstringPengidentifikasi unik untuk audio keluaran.
choices[].delta.audio.expires_atintegerTimestamp saat permintaan dibuat.
choices[].delta.rolestringPeran pesan. Hanya ada pada chunk pertama.
choices[].finish_reasonstringstop saat generasi selesai secara normal, length saat dipotong oleh max_tokens, null selama proses berlangsung.
choices[].indexintegerSelalu 0.
createdintegerTimestamp Unix untuk permintaan. Identik di semua chunk.
modelstringNama model.
objectstringSelalu chat.completion.chunk.
usageobjectKonsumsi token. Hanya ada pada chunk terakhir saat include_usage diatur ke true.
usage.prompt_tokensintegerTotal token input.
usage.completion_tokensintegerTotal token output.
usage.total_tokensintegerJumlah dari prompt_tokens dan completion_tokens.
usage.completion_tokens_details.audio_tokensintegerToken audio output.
usage.completion_tokens_details.text_tokensintegerToken teks output.
usage.prompt_tokens_details.audio_tokensintegerToken audio input. Untuk input video, ini mencakup audio yang diekstraksi dari video.
usage.prompt_tokens_details.text_tokensintegerToken teks input. Selalu 0.
usage.prompt_tokens_details.video_tokensintegerToken video input. Hanya ada untuk input video.

Bidang yang selalu bernilai null

Bidang-bidang berikut ada dalam tanggapan demi kompatibilitas OpenAI tetapi selalu mengembalikan null:

reasoning_content, function_call, refusal, tool_calls, logprobs, service_tier, system_fingerprint

Catatan penggunaan

  • Hanya streaming. Atur stream ke true. Panggilan non-streaming tidak didukung.
  • Pesan tunggal. Array messages hanya menerima satu pesan pengguna.
  • Parameter non-standar. translation_options, top_k, dan repetition_penalty tidak ada dalam API OpenAI standar. SDK Python: masukkan dalam extra_body. Node.js/HTTP: sertakan di tingkat atas.
  • Nilai default pengambilan sampel. Nilai default untuk temperature, top_p, top_k, presence_penalty, dan repetition_penalty telah dioptimalkan untuk akurasi terjemahan. Mengubahnya dapat menurunkan kualitas.
  • Format audio keluaran. Hanya wav yang didukung.
  • Deteksi bahasa otomatis. Jika source_lang dihilangkan, bahasa input akan dideteksi secara otomatis.

Referensi