Terjemahan mesin · Versi asli bahasa Inggris

Qwen3-TTS

Asli Apple waktu jalan

PocketTTS menambahkan asli CoreML speech synthesis to speech-swift. Semua tahap baku ke CPU hanya eksekusi. Aliran Alba Inggris preset 1,920-sampel frame di 24 kHz (80 ms per frame).

Penggunaan Swift dan CLI

Voxtral TTS preset unduhan

Voxtral TTS download model bobot, tokenizer, config dan semua 20 preset berkas suara pada penggunaan pertama. Pemuatan Offline membutuhkan bundle cache lengkap, termasuk setiap berkas dalam voice_embedding/.

Swift penggunaan dan persyaratan bundle

Qwen3-TTS adalah 12Model bahasa codec Hz dengan Mimi decoder untuk tinggi-kualitas teks -to-speech synthesis. Baku MLX path sekarang menggunakan 1.7Basis B bf16 bundle; 8-bit bundles tetap tersedia untuk unduhan yang lebih kecil. int4 dinonaktifkan untuk TTS kualitas.

VoxCPM2 vs Qwen3-TTS · Suara lima bahasa penuh - kloning perbandingan dan metodologi.

Baris pipa

Sintesis pidato mengikuti pipeline tahap tiga:

  1. Talker - 28-layer transformer yang mengkonversi teks masukan kedalam token-token codebook pertama di 12.5 Hz
  2. Prediktor Kode - 5-layer transformer yang tersisa memprediksikan kodebuku 15 dari codebook pertama yang tersembunyi
  3. Mimi Codec Decoder - Mengkonversi semua 16 token codebook kedalam 24 bentuk gelombang audio kHz

Arsitektur

Talker

Talker adalah inti model autoregresif yang menghasilkan token codec dari masukan teks.

ParameterNilai
Lapisan28
Dimensi Tersembunyi1024
Kepala kuiri16
Kepala kunci / Nilai8.
MLPSwiGLU
Encoding posisiROPE

Prediktor Kode

Transformer lapisan 5- ringan yang mengambil negara bagian tersembunyi dari buku kode pertama dan memprediksi 15 buku kode yang tersisa secara autoregreatly. Untuk sintesis item tunggal, loop grup 15 tetap berjalan sebagai salah satu grafik yang dikompilasi.

Mimi Codec Decoder

The Mimi decoder mengkonversi token codec yang telah diquantized kembali ke audio:

  1. RVQ decode (16 buku kode)
  2. Pre- convoIution (512 sampai 1024 saluran)
  3. Pre- transformer (1024 sampai 512 bottleneck, 8 lapis, SwiGLU + LayerScale)
  4. Upsample (2x, 2x)
  5. Seanet decoder (8x, 5x, 4x, 3x upsample sestages)
  6. Keluaran 24 kHz waveform

Variants Model

ModelUkuranHuggingFace
Qwen3-TTS-0.6B Base (8- bit)1.3 GBaufklarer / Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit
Qwen3-TTS-1.7B Base (8- bit)2.4 GBaufklarer / Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit
Qwen3-TTS-1.7B Base (baku bf16)3.9 GBaufklarer / Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16
Qwen3-TTS-0.6B CustomVoice (bf16)1.8 GBaufklarer / Qwen3-TTS-12Hz-0.6B-CustomVoice-MLX-bf16
Qwen3-TTS CoreML (FP16)2.1 GBaufklarer / Qwen3-TTS-CoreML

CoreML Backend

CoreML menjalankan enam komponen terkompail. Penempatan komputer tergantung pada bundel yang dipilih.

  1. Pengproyektor TektProyektor - Proyek teks token menggelapkan ke ruang tersembunyi bersama
  2. CodeEmbedder - Embed First-Codebook token dan controI token
  3. MultiCodeEmbedder - Token Embed dari buku kode 1–15
  4. CodeDecoder - 28-layer autoregresif transformer dengan status KV cache (max posisi 256)
  5. MultiCodeDecoder — 5-layer prediktor kode untuk codebooks 1–15
  6. SpeechDecoder — Mimi codec decoder, converts 16 token codebook ke 24 audio kHz
# CoreML synthesis
.build/release/speech speak "Hello, world!" --engine coreml -o hello.wav

# CoreML uses temperature 0.8 by default (required for quality output)
.build/release/speech speak "Long text here." --engine coreml --temperature 0.9 -o out.wav
CoreML Limit Cache KV

0.6B: CoreML CodeDecoder menggunakan sebuah fixed 256-position kV cache. Lebih lama bagian harus dibagi ke dalam kalimat individual. Token decode secara otomatis dipotong untuk cocok dalam sisa slot cache setelah prefill.

Eksperimental 1.7B CoreML ekspor

Decoder menggunakan FP32 komputasi karena FP16 gagal pemeriksaan validasi; tensor cache tetap FP16.

Konverter enam komponen mendukung 1.7B Base dan sebuah Codedecoder status 1024- posisi. Talker dan pembicara menggelapkan memiliki 2048 saluran; kode 1024- channel prediktor termasuk proyeksi masukan yang terlatih.

Swift dukungan 0.6B /256 dan 1.7B /1024 bundles; 0.6B tetap yang default. 1.7B bundle default ke CPU dan membutuhkan persiapan 2048-channel Float32 .npy Pembicara embedding via --speaker-embeddingGPU / ANE dan iOS validasi tetap terpisah.

Cache termasuk posisi prompt dan audio. SpeechDecoder memiliki batas baku terpisah dari 125 frame (10 detik); cache CodeDecoder yang lebih besar tidak memperbesar.

Panduan sumber dan validasi konversi

speech qwen3-tts-coreml "Hello world" \
  --model aufklarer/Qwen3-TTS-1.7B-CoreML \
  --speaker-embedding speaker-17b.npy --output hello-17b.wav

Penggunaan CLI

Hasilkan pidato dari teks:

.build/release/speech speak "Hello, world!" --output hello.wav

Opsi

FlagDeskripsi
--engineMesin TTS: qwen3 (MLX, default), coreml (CoreML / GPU), atau cosyvoice
--output, -oPath berkas keluaran WAV
--languageBahasa (baku: bahasa Inggris). Abaikan untuk menggunakan dialek pembicara asli.
--modelVarian model: base atau customVoice
--speakerSuara Speaker (memerlukan --model customVoice)
--temperatureTemperatur Sampling (baku: 0.3)
--top-kParameter sampling Top- k
--max-tokensJumlah token maksimum yang akan dibuat (baku: 500)
--streamAktifkan streaming - memancarkan potongan audio selama pembuatan
--first-chunk-framesJumlah frame dalam potongan pertama yang diperjelas
--chunk-framesJumlah frame per potongan pita
--batch-filePath ke berkas teks dengan satu kalimat per baris untuk batch synthesis
--batch-sizeJumlah dari ucapan paralel dalam mode batch

Contoh

# Basic synthesis
.build/release/speech speak "The quick brown fox." -o fox.wav

# Streaming output
.build/release/speech speak "Long passage of text..." --stream -o stream.wav

# Batch synthesis from file
.build/release/speech speak --batch-file sentences.txt --batch-size 4 -o output_dir/

Streaming

The --stream flag memungkinkan keluaran audio dipotong selama generasi. Alih-alih menunggu seluruh ucapan untuk menyelesaikan, audio dipancarkan dalam potongan sebagai token dihasilkan. Gunakan --first-chunk-frames dan --chunk-frames untuk mengontrol ukuran setiap potongan.

Mode Batch

Untuk mensintesis ucapan berganda, gunakan --batch-file dengan berkas teks yang berisi satu baris per kalimat. The --batch-size flag mengontrol berapa banyak ucapan diproses dalam paralel.

Penampilan

Pada M2 Max, Qwen3-TTS mencapai sebuah RTF (Faktor real-time) sekitar 0.55, berarti menghasilkan pidato lebih cepat dari real-time. compile() warmap, setiap langkah mengambil sekitar 37 ms.

Batas Keselamatan

Maksimum baku 500 token, yang menghasilkan kira-kira 40 detik audio di 12.5 Hz. Menata nilai yang lebih tinggi risiko melebihi Metal GPU waktu istirahat, yang dapat menyebabkan sistem reboot pada Apple Silicon sejak GPU Dibagi dengan kompositor.

Bahasa

Qwen3-TTS mendukung multibahasa teks -to-speech synthesis. Model secara otomatis mendeteksi bahasa masukan dan menghasilkan pidato sesuai.

Swift API

import Qwen3TTS
import AudioCommon

let model = try await Qwen3TTSModel.fromPretrained()
let audio = model.synthesize(text: "Hello, world!", language: "english")
try WAVWriter.write(samples: audio, sampleRate: 24000, to: URL(filePath: "hello.wav"))

Local- hanya bundles

Gunakan fromLocal ketika aplikasi anda memiliki model akuisisi dan penyimpanan. Lewatkan model TTS utama dan direktori speech-tokenizer secara terpisah. Panggilan tidak pernah menyelesaikan cache atau kontak jaringan, dan membaca bundel utama config.json sebelum mengalokasikan modul MLX.

let model = try Qwen3TTSModel.fromLocal(
    modelDirectory: ttsDirectory,
    tokenizerDirectory: speechTokenizerDirectory
)
Kebijakan memori

fromLocal default ke .none, sehingga tidak mengubah proses-lebar Metal batas memori. fromPretrained menyimpan nya .pin(fraction: 0.9) baku. Kedua pelanggar yang terlatih menerima terpisah tokenizerCacheDir.

Diagnostik

Qwen3-TTS mengirimkan model-loading dan diagnosis inferensi ke AudioLog.modelLoading dan AudioLog.inference bukan stdout atau stderr. Menghitung, bentuk, dan waktu tetap terlihat; caller- yang disediakan nilai bahasa dan speaker adalah pribadi, dan teks masukan tidak pernah log.

Voxtral TTS

Voxtral 4B TTS 2603 berjalan lokal pada Apple Silicon melalui modul Voxtral TTS: 20 preset suara, sembilan bahasa, dan 24 KHz mono speech.

speech speak "Hello, welcome to Voxtral." --engine voxtral --voxtral-voice casual_male --stream --voxtral-chunk-frames 3 -o hello.wav
speech speak --engine voxtral --list-speakers
speech speak "Bonjour." --engine voxtral --voxtral-voice fr_female --voxtral-max-frames 500 --voxtral-seed 0 -o bonjour.wav

Hanya preset suara; reference-audio cloning tidak tersedia. Keluaran stream audio melalui SDK, CLI, WebSocket dan HTTP PCM. Pasokan teks masukan lengkap di depan. Model bobot menggunakan CC BY- NC 4.0.

Baca Voxtral TTS Panduan