All Products
Search
Document Center

Alibaba Cloud Model Studio:Terjemahan audio dan video real-time - Qwen

Last Updated:May 08, 2026

qwen3-livetranslate-flash-realtime adalah model terjemahan real-time yang ditingkatkan dengan visi untuk menerjemahkan antara 18 bahasa, termasuk Tiongkok, Inggris, Rusia, dan Prancis. Model ini memproses input audio dan gambar dari aliran video real-time atau file video lokal, memanfaatkan konteks visual untuk meningkatkan akurasi terjemahan, serta menghasilkan teks dan audio terjemahan secara real-time.

Coba demo online dengan penerapan satu klik menggunakan Function Compute.

Fitur

  • Dukungan multi-bahasa: Mendukung 18 bahasa dan 6 dialek Tiongkok, termasuk Tiongkok, Inggris, Prancis, Jerman, Rusia, Jepang, Korea, Mandarin, Kanton, dan Sichuan.

  • Peningkatan visual: Menganalisis petunjuk visual, seperti gerakan bibir, isyarat tubuh, dan teks pada layar, untuk meningkatkan akurasi terjemahan—terutama di lingkungan bising atau untuk kata-kata ambigu.

  • Latensi 3 detik: Memberikan interpretasi simultan dengan latensi serendah 3 detik.

  • Interpretasi simultan tanpa kehilangan kualitas: Menggunakan prediksi unit semantik untuk menyelesaikan perbedaan urutan kata antarbahasa, sehingga menghasilkan kualitas terjemahan real-time yang setara dengan terjemahan offline.

  • Suara alami: Menghasilkan suara alami dengan mencocokkan secara otomatis intonasi dan emosi dari audio sumber.

  • Konfigurasi hotword: Memungkinkan Anda mengonfigurasi hotword untuk meningkatkan akurasi terjemahan istilah tertentu.

Prosedur

1. Konfigurasikan koneksi

Model qwen3-livetranslate-flash-realtime menggunakan protokol WebSocket. Koneksi memerlukan parameter berikut:

Parameter

Deskripsi

endpoint

Tiongkok daratan: wss://dashscope.aliyuncs.com/api-ws/v1/realtime

Internasional: wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime

query parameter

Parameter kueri model harus diatur ke nama model. Contoh: ?model=qwen3-livetranslate-flash-realtime

message header

Gunakan Bearer Token untuk autentikasi: Authorization: Bearer DASHSCOPE_API_KEY

DASHSCOPE_API_KEY adalah Kunci API Anda dari Model Studio.

Kode Python contoh untuk membuat koneksi:

Kode contoh Python untuk koneksi WebSocket

# pip install websocket-client
import json
import websocket
import os

API_KEY=os.getenv("DASHSCOPE_API_KEY")
API_URL = "wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=qwen3-livetranslate-flash-realtime"

headers = [
    "Authorization: Bearer " + API_KEY
]

def on_open(ws):
    print(f"Connected to server: {API_URL}")
def on_message(ws, message):
    data = json.loads(message)
    print("Received event:", json.dumps(data, indent=2))
def on_error(ws, error):
    print("Error:", error)

ws = websocket.WebSocketApp(
    API_URL,
    header=headers,
    on_open=on_open,
    on_message=on_message,
    on_error=on_error
)

ws.run_forever()

2. Konfigurasikan bahasa, modalitas, dan suara

Kirim event client session.update dengan parameter berikut:

  • Bahasa

    • Bahasa sumber: Konfigurasikan menggunakan parameter session.input_audio_transcription.language.

      Nilai default adalah en (Inggris).
    • Bahasa target: Konfigurasikan menggunakan parameter session.translation.language.

      Nilai default adalah en (Inggris).

    Lihat Bahasa yang didukung.

  • Keluarkan hasil pengenalan bahasa sumber

    Untuk mengaktifkan fitur ini, atur parameter session.input_audio_transcription.model. Saat diatur ke qwen3-asr-flash-realtime, server mengembalikan hasil terjemahan sekaligus hasil pengenalan ucapan (teks asli) untuk input audio.

    Saat fitur ini diaktifkan, server mengembalikan event berikut:

    • conversation.item.input_audio_transcription.text: Mengalirkan hasil pengenalan.

    • conversation.item.input_audio_transcription.completed: Mengembalikan hasil akhir setelah pengenalan selesai.

  • Modalitas output

    Atur parameter session.modalities ke ["text"] (hanya teks) atau ["text","audio"] (teks dan audio).

  • Suara

    Konfigurasikan menggunakan parameter session.voice. Lihat Suara yang didukung.

  • Hotword

    Konfigurasikan hotword menggunakan parameter session.translation.corpus.phrases. Hotword adalah pasangan kunci-nilai yang memetakan istilah sumber ke terjemahan target, sehingga meningkatkan akurasi untuk istilah tertentu.

    Contoh: Petakan "artificial intelligence" ke "Artificial Intelligence".

3. Input audio dan gambar

Kirim data audio dan gambar yang telah dikodekan Base64 menggunakan event input_audio_buffer.append dan input_image_buffer.append. Input audio wajib; input gambar opsional.

Gambar dapat berasal dari file lokal atau ditangkap secara real-time dari aliran video.
Server secara otomatis mendeteksi batas ucapan dan memicu respons model.

4. Terima respons model

Saat server mendeteksi akhir input audio, model memberikan respons. Format respons bergantung pada modalitas output yang dikonfigurasi.

Model yang didukung

Model

Versi

Jendela konteks

Input maks

Output maks

(tokens)

qwen3-livetranslate-flash-realtime

Alias untuk qwen3-livetranslate-flash-realtime-2025-09-22

Stable

53.248

49.152

4.096

qwen3-livetranslate-flash-realtime-2025-09-22

Snapshot

Memulai

  1. Siapkan lingkungan

    Memerlukan Python 3.10 atau lebih baru.

    Pertama, instal pyaudio.

    macOS

    brew install portaudio && pip install pyaudio

    Debian/Ubuntu

    sudo apt-get install python3-pyaudio
    
    or
    
    pip install pyaudio

    CentOS

    sudo yum install -y portaudio portaudio-devel && pip install pyaudio

    Windows

    pip install pyaudio

    Kemudian instal dependensi WebSocket:

    pip install websocket-client==1.8.0 websockets
  2. Buat klien

    Buat file bernama livetranslate_client.py dengan kode berikut:

    Kode klien - livetranslate_client.py

    import os
    import time
    import base64
    import asyncio
    import json
    import websockets
    import pyaudio
    import queue
    import threading
    import traceback
    
    class LiveTranslateClient:
        def __init__(self, api_key: str, target_language: str = "en", voice: str | None = "Cherry", *, audio_enabled: bool = True):
            if not api_key:
                raise ValueError("API key cannot be empty.")
                
            self.api_key = api_key
            self.target_language = target_language
            self.audio_enabled = audio_enabled
            self.voice = voice if audio_enabled else "Cherry"
            self.ws = None
            self.api_url = "wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=qwen3-livetranslate-flash-realtime"
            
            # Audio input configuration (from microphone)
            self.input_rate = 16000
            self.input_chunk = 1600
            self.input_format = pyaudio.paInt16
            self.input_channels = 1
            
            # Audio output configuration (for playback)
            self.output_rate = 24000
            self.output_chunk = 2400
            self.output_format = pyaudio.paInt16
            self.output_channels = 1
            
            # State management
            self.is_connected = False
            self.audio_player_thread = None
            self.audio_playback_queue = queue.Queue()
            self.pyaudio_instance = pyaudio.PyAudio()
    
        async def connect(self):
            """Establish a WebSocket connection to the translation service."""
            headers = {"Authorization": f"Bearer {self.api_key}"}
            try:
                self.ws = await websockets.connect(self.api_url, additional_headers=headers)
                self.is_connected = True
                print(f"Successfully connected to the server: {self.api_url}")
                await self.configure_session()
            except Exception as e:
                print(f"Connection failed: {e}")
                self.is_connected = False
                raise
    
        async def configure_session(self):
            """Configure the translation session, setting the target language, voice, etc."""
            config = {
                "event_id": f"event_{int(time.time() * 1000)}",
                "type": "session.update",
                "session": {
                    # 'modalities' controls the output type.
                    # ["text", "audio"]: Returns both translated text and synthesized audio (recommended).
                    # ["text"]: Returns only the translated text.
                    "modalities": ["text", "audio"] if self.audio_enabled else ["text"],
                    **({"voice": self.voice} if self.audio_enabled and self.voice else {}),
                    "input_audio_format": "pcm",
                    "output_audio_format": "pcm",
                    # 'input_audio_transcription' configures source language recognition.
                    # Set 'model' to 'qwen3-asr-flash-realtime' to also output the source language recognition result.
                    # "input_audio_transcription": {
                    #     "model": "qwen3-asr-flash-realtime",
                    #     "language": "zh"  # source language, default 'en'
                    # },
                    "translation": {
                        "language": self.target_language,
                        # 'corpus' configures hotwords to improve the translation accuracy of specific terms.
                        # "corpus": {
                        #     "phrases": {
                        #         "人工智能": "Artificial Intelligence",
                        #         "机器学习": "Machine Learning"
                        #     }
                        # }
                    }
                }
            }
            print(f"Sending session configuration: {json.dumps(config, indent=2, ensure_ascii=False)}")
            await self.ws.send(json.dumps(config))
    
        async def send_audio_chunk(self, audio_data: bytes):
            """Encode and send an audio chunk to the server."""
            if not self.is_connected:
                return
                
            event = {
                "event_id": f"event_{int(time.time() * 1000)}",
                "type": "input_audio_buffer.append",
                "audio": base64.b64encode(audio_data).decode()
            }
            await self.ws.send(json.dumps(event))
    
        async def send_image_frame(self, image_bytes: bytes, *, event_id: str | None = None):
            # Send an image frame to the server.
            if not self.is_connected:
                return
    
            if not image_bytes:
                raise ValueError("image_bytes cannot be empty.")
    
            # Encode to Base64
            image_b64 = base64.b64encode(image_bytes).decode()
    
            event = {
                "event_id": event_id or f"event_{int(time.time() * 1000)}",
                "type": "input_image_buffer.append",
                "image": image_b64,
            }
    
            await self.ws.send(json.dumps(event))
    
        def _audio_player_task(self):
            stream = self.pyaudio_instance.open(
                format=self.output_format,
                channels=self.output_channels,
                rate=self.output_rate,
                output=True,
                frames_per_buffer=self.output_chunk,
            )
            try:
                while self.is_connected or not self.audio_playback_queue.empty():
                    try:
                        audio_chunk = self.audio_playback_queue.get(timeout=0.1)
                        if audio_chunk is None: # Termination signal
                            break
                        stream.write(audio_chunk)
                        self.audio_playback_queue.task_done()
                    except queue.Empty:
                        continue
            finally:
                stream.stop_stream()
                stream.close()
    
        def start_audio_player(self):
            """Start the audio player thread (only when audio output is enabled)."""
            if not self.audio_enabled:
                return
            if self.audio_player_thread is None or not self.audio_player_thread.is_alive():
                self.audio_player_thread = threading.Thread(target=self._audio_player_task, daemon=True)
                self.audio_player_thread.start()
    
        async def handle_server_messages(self, on_text_received):
            """Handle incoming messages from the server in a loop."""
            try:
                async for message in self.ws:
                    event = json.loads(message)
                    event_type = event.get("type")
                    if event_type == "response.audio.delta" and self.audio_enabled:
                        audio_b64 = event.get("delta", "")
                        if audio_b64:
                            audio_data = base64.b64decode(audio_b64)
                            self.audio_playback_queue.put(audio_data)
    
                    elif event_type == "response.done":
                        print("\n[INFO] Response round complete.")
                        usage = event.get("response", {}).get("usage", {})
                        if usage:
                            print(f"[INFO] token usage: {json.dumps(usage, indent=2, ensure_ascii=False)}")
                    # Process source language recognition results (requires enabling input_audio_transcription.model)
                    # elif event_type == "conversation.item.input_audio_transcription.text":
                    #     stash = event.get("stash", "")  # Pending recognition text
                    #     print(f"[Recognizing] {stash}")
                    # elif event_type == "conversation.item.input_audio_transcription.completed":
                    #     transcript = event.get("transcript", "")  # Complete recognition result
                    #     print(f"[Source language] {transcript}")
                    elif event_type == "response.audio_transcript.done":
                        print("\n[INFO] Translation complete.")
                        text = event.get("transcript", "")
                        if text:
                            print(f"[INFO] Translated text: {text}")
                    elif event_type == "response.text.done":
                        print("\n[INFO] Translation complete.")
                        text = event.get("text", "")
                        if text:
                            print(f"[INFO] Translated text: {text}")
    
            except websockets.exceptions.ConnectionClosed as e:
                print(f"[WARNING] Connection closed: {e}")
                self.is_connected = False
            except Exception as e:
                print(f"[ERROR] An unexpected error occurred while processing messages: {e}")
                traceback.print_exc()
                self.is_connected = False
    
        async def start_microphone_streaming(self):
            """Capture audio from the microphone and stream it to the server."""
            stream = self.pyaudio_instance.open(
                format=self.input_format,
                channels=self.input_channels,
                rate=self.input_rate,
                input=True,
                frames_per_buffer=self.input_chunk
            )
            print("Microphone is on. Start speaking...")
            try:
                while self.is_connected:
                    audio_chunk = await asyncio.get_event_loop().run_in_executor(
                        None, stream.read, self.input_chunk
                    )
                    await self.send_audio_chunk(audio_chunk)
            finally:
                stream.stop_stream()
                stream.close()
    
        async def close(self):
            """Gracefully close the connection and release resources."""
            self.is_connected = False
            if self.ws:
                await self.ws.close()
                print("WebSocket connection closed.")
            
            if self.audio_player_thread:
                self.audio_playback_queue.put(None) # Send termination signal
                self.audio_player_thread.join(timeout=1)
                print("Audio player thread stopped.")
                
            self.pyaudio_instance.terminate()
            print("PyAudio instance released.")
  3. Berinteraksi dengan model

    Di direktori yang sama, buat file bernama main.py dengan kode berikut:

    main.py

    import os
    import asyncio
    from livetranslate_client import LiveTranslateClient
    
    def print_banner():
        print("=" * 60)
        print("  Powered by Qwen qwen3-livetranslate-flash-realtime")
        print("=" * 60 + "\n")
    
    def get_user_config():
        """Get user configuration."""
        print("Select a mode:")
        print("1. Voice + Text [Default] | 2. Text Only")
        mode_choice = input("Enter your choice (press Enter for Voice + Text): ").strip()
        audio_enabled = (mode_choice != "2")
    
        if audio_enabled:
            lang_map = {
                "1": "en", "2": "zh", "3": "ru", "4": "fr", "5": "de", "6": "pt",
                "7": "es", "8": "it", "9": "ko", "10": "ja", "11": "yue"
            }
            print("Select the target language (Voice + Text mode):")
            print("1. English | 2. Chinese | 3. Russian | 4. French | 5. German | 6. Portuguese | 7. Spanish | 8. Italian | 9. Korean | 10. Japanese | 11. Cantonese")
        else:
            lang_map = {
                "1": "en", "2": "zh", "3": "ru", "4": "fr", "5": "de", "6": "pt", "7": "es", "8": "it",
                "9": "id", "10": "ko", "11": "ja", "12": "vi", "13": "th", "14": "ar",
                "15": "yue", "16": "hi", "17": "el", "18": "tr"
            }
            print("Select the target language (Text Only mode):")
            print("1. English | 2. Chinese | 3. Russian | 4. French | 5. German | 6. Portuguese | 7. Spanish | 8. Italian | 9. Indonesian | 10. Korean | 11. Japanese | 12. Vietnamese | 13. Thai | 14. Arabic | 15. Cantonese | 16. Hindi | 17. Greek | 18. Turkish")
    
        choice = input("Enter your choice (defaults to the first option): ").strip()
        target_language = lang_map.get(choice, next(iter(lang_map.values())))
    
        voice = None
        if audio_enabled:
            print("\nSelect a speech synthesis voice:")
            voice_map = {"1": "Cherry", "2": "Nofish", "3": "Sunny", "4": "Jada", "5": "Dylan", "6": "Peter", "7": "Eric", "8": "Kiki"}
            print("1. Cherry (Female) [Default] | 2. Nofish (Male) | 3. Sunny (Sichuan Female) | 4. Jada (Shanghai Female) | 5. Dylan (Beijing Male) | 6. Peter (Tianjin Male) | 7. Eric (Sichuan Male) | 8. Kiki (Cantonese Female)")
            voice_choice = input("Enter your choice (press Enter for Cherry): ").strip()
            voice = voice_map.get(voice_choice, "Cherry")
        return target_language, voice, audio_enabled
    
    async def main():
        """Main program entry point."""
        print_banner()
        
        api_key = os.environ.get("DASHSCOPE_API_KEY")
        if not api_key:
            print("[ERROR] Please set the DASHSCOPE_API_KEY environment variable.")
            print("  For example: export DASHSCOPE_API_KEY='your_api_key_here'")
            return
            
        target_language, voice, audio_enabled = get_user_config()
        print("\nConfiguration complete:")
        print(f"  - Target language: {target_language}")
        if audio_enabled:
            print(f"  - Synthesized voice: {voice}")
        else:
            print("  - Output mode: Text Only")
        
        client = LiveTranslateClient(api_key=api_key, target_language=target_language, voice=voice, audio_enabled=audio_enabled)
        
        # Define the callback function.
        def on_translation_text(text):
            print(text, end="", flush=True)
    
        try:
            print("Connecting to the translation service...")
            await client.connect()
            
            # Start audio playback based on the mode.
            client.start_audio_player()
            
            print("\n" + "-" * 60)
            print("Connection successful! Speak into the microphone.")
            print("The program will translate your speech in real time and play the translated audio. Press Ctrl+C to exit.")
            print("-" * 60 + "\n")
    
            # Run message handling and microphone recording concurrently.
            message_handler = asyncio.create_task(client.handle_server_messages(on_translation_text))
            tasks = [message_handler]
            # Capture audio from the microphone for translation, regardless of whether audio output is enabled.
            microphone_streamer = asyncio.create_task(client.start_microphone_streaming())
            tasks.append(microphone_streamer)
    
            await asyncio.gather(*tasks)
    
        except KeyboardInterrupt:
            print("\n\nUser interrupted. Exiting...")
        except Exception as e:
            print(f"\nA critical error occurred: {e}")
        finally:
            print("\nCleaning up resources...")
            await client.close()
            print("Program exited.")
    
    if __name__ == "__main__":
        asyncio.run(main())

    Jalankan main.py dan bicara ke mikrofon Anda. Model menghasilkan audio dan teks terjemahan secara real-time. Sistem secara otomatis mendeteksi ucapan dan mengirimkannya ke server.

Tingkatkan terjemahan dengan gambar

Model qwen3-livetranslate-flash-realtime menggunakan input gambar untuk meningkatkan terjemahan audio, membantu menghilangkan ambiguitas homonim dan mengenali kata benda proper yang tidak umum. Kirim tidak lebih dari 2 gambar per detik.

Unduh contoh gambar berikut: medical mask.pngmasquerade mask.png

Unduh kode berikut ke direktori yang sama dengan livetranslate_client.py dan jalankannya. Ucapkan "What is mask?" ke mikrofon Anda. Model menggunakan gambar yang disediakan untuk menghilangkan ambiguitas kata "mask." Misalnya, menggunakan file medical mask.png menerjemahkan frasa tersebut sebagai "What is a medical mask?", sedangkan menggunakan file masquerade mask.png menerjemahkannya sebagai "What is a masquerade mask?".

import os
import time
import json
import asyncio
import contextlib
import functools

from livetranslate_client import LiveTranslateClient

IMAGE_PATH = "medical mask.png"
# IMAGE_PATH = "masquerade mask.png"

def print_banner():
    print("=" * 60)
    print("  Powered by Qwen qwen3-livetranslate-flash-realtime — single-turn interaction example (mask)")
    print("=" * 60 + "\n")

async def stream_microphone_once(client: LiveTranslateClient, image_bytes: bytes):
    pa = client.pyaudio_instance
    stream = pa.open(
        format=client.input_format,
        channels=client.input_channels,
        rate=client.input_rate,
        input=True,
        frames_per_buffer=client.input_chunk,
    )
    print(f"[INFO] Recording started. Please speak...")
    loop = asyncio.get_event_loop()
    last_img_time = 0.0
    frame_interval = 0.5  # 2 fps
    try:
        while client.is_connected:
            data = await loop.run_in_executor(None, stream.read, client.input_chunk)
            await client.send_audio_chunk(data)

            # Append an image frame every 0.5 seconds
            now = time.time()
            if now - last_img_time >= frame_interval:
                await client.send_image_frame(image_bytes)
                last_img_time = now
    finally:
        stream.stop_stream()
        stream.close()

async def main():
    print_banner()
    api_key = os.environ.get("DASHSCOPE_API_KEY")
    if not api_key:
        print("[ERROR] Please set the DASHSCOPE_API_KEY environment variable.")
        return

    client = LiveTranslateClient(api_key=api_key, target_language="zh", voice="Cherry", audio_enabled=True)

    def on_text(text: str):
        print(text, end="", flush=True)

    try:
        await client.connect()
        client.start_audio_player()
        message_task = asyncio.create_task(client.handle_server_messages(on_text))
        with open(IMAGE_PATH, "rb") as f:
            img_bytes = f.read()
        await stream_microphone_once(client, img_bytes)
        await asyncio.sleep(15)
    finally:
        await client.close()
        if not message_task.done():
            message_task.cancel()
            with contextlib.suppress(asyncio.CancelledError):
                await message_task

if __name__ == "__main__":
    asyncio.run(main())

Penerapan satu klik Function Compute

Untuk menerapkan aplikasi:

  1. Buka Templat Function Compute, masukkan Kunci API Anda, lalu klik Create and Deploy Default Environment untuk menguji aplikasi.

  2. Tunggu sekitar satu menit. Di Environment Details > Environment Context, ambil endpoint, ubah protokol dari http ke https (misalnya, https://qwen-livetranslate-flash-realtime-intl.fcv3.xxx.ap-southeast-1.fc.devsapp.net/), lalu buka URL tersebut di browser untuk berinteraksi dengan model.

    Penting

    Endpoint ini menggunakan sertifikat tanda tangan sendiri dan hanya untuk pengujian sementara. Browser Anda akan menampilkan peringatan keamanan saat kunjungan pertama. Ini merupakan perilaku yang diharapkan. Jangan gunakan endpoint ini di lingkungan produksi. Untuk melanjutkan, ikuti instruksi di layar (misalnya, klik Advanced → Proceed to (unsafe)).

Jika diminta mengonfigurasi izin Resource Access Management, ikuti instruksi di layar.
Untuk melihat kode sumber proyek, buka Resource Information > Function Resources.
Baik Function Compute maupun Model Studio menyediakan kuota gratis bagi pengguna baru, cukup untuk debugging dasar. Setelah kuota gratis habis, penagihan bayar sesuai penggunaan berlaku.

Alur interaksi

Terjemahan ucapan real-time mengikuti model WebSocket berbasis event. Server secara otomatis mendeteksi batas ucapan dan memberikan respons.

Siklus hidup

Event klien

Server event

Inisialisasi sesi

session.update

Konfigurasi sesi

session.created

Sesi dibuat

session.updated

Konfigurasi sesi diperbarui

Input audio pengguna

input_audio_buffer.append

Tambahkan audio ke buffer

Tidak ada

Output audio server

Tidak ada

response.created

Menandakan bahwa server mulai menghasilkan respons.

response.output_item.added

Menandakan bahwa item output baru tersedia.

response.content_part.added

Menandakan bahwa bagian konten baru telah ditambahkan ke pesan asisten.

response.audio_transcript.text

Berisi pembaruan bertahap untuk transkrip teks.

response.audio.delta

Berisi chunk bertahap dari audio sintesis.

response.audio_transcript.done

Menandakan bahwa transkrip teks lengkap telah selesai.

response.audio.done

Menandakan bahwa audio sintesis telah selesai.

response.content_part.done

Menandakan bahwa bagian konten teks atau audio untuk pesan asisten telah selesai.

response.output_item.done

Menandakan bahwa seluruh item output untuk pesan asisten telah selesai.

response.done

Menandakan bahwa seluruh respons telah selesai.

API

Lihat Qwen-Livetranslate-Realtime.

Penagihan

  • Audio: Setiap detik input atau output audio mengonsumsi 12,5 token.

  • Gambar: Setiap 28×28 piksel mengonsumsi 0,5 token.

  • Teks: Saat pengenalan ucapan bahasa sumber diaktifkan, layanan mengembalikan transkrip input audio selain terjemahan. Transkrip ini ditagih sebagai token teks output.

Untuk informasi harga, lihat Daftar model.

Bahasa yang didukung

Gunakan kode bahasa berikut untuk menentukan bahasa sumber dan target.

Beberapa bahasa target hanya mendukung teks.

Kode bahasa

Bahasa

Output

en

Inggris

Audio + teks

zh

Tiongkok

Audio + teks

ru

Rusia

Audio + teks

fr

Prancis

Audio + teks

de

Jerman

Audio + teks

pt

Portugis

Audio + teks

es

Spanyol

Audio + teks

it

Bahasa Italia

Audio + teks

id

Bahasa Indonesia

Teks

ko

Bahasa Korea

Audio + teks

ja

Jepang

Audio + teks

vi

Bahasa Vietnam

Teks

th

Bahasa Thailand

Teks

ar

Arab

Teks

yue

Kanton

Audio + teks

hi

Hindi

Teks

el

Yunani

Teks

tr

Turki

Teks

Suara yang didukung

Nama

Parameter suara

Contoh

Deskripsi

Bahasa

Cherry

Cherry

Suara perempuan ramah dan percakapan dengan nada ceria dan positif.

Tiongkok, Inggris, Prancis, Jerman, Rusia, Italia, Spanyol, Portugis, Jepang, dan Korea

Nofish

Nofish

Suara pria santai dengan aksen Mandarin non-retrofleks.

Tiongkok, Inggris, Prancis, Jerman, Rusia, Italia, Spanyol, Portugis, Jepang, dan Korea

Jada

Jada

Suara perempuan energik dengan aksen Shanghai.

Tiongkok

Dylan

Dylan

Suara pria muda dengan aksen Beijing.

Tiongkok

Sunny

Sunny

Suara perempuan hangat dan manis dengan aksen Sichuan.

Tiongkok

Peter

Peter

Suara pria komedi dengan aksen Tianjin.

Tiongkok

Kiki

Kiki

Suara perempuan manis dalam bahasa Kanton.

Kanton

Eric

Eric

Suara pria ceria dengan aksen Chengdu (Sichuan).

Tiongkok