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).
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/.
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:
- Talker - 28-layer transformer yang mengkonversi teks masukan kedalam token-token codebook pertama di 12.5 Hz
- Prediktor Kode - 5-layer transformer yang tersisa memprediksikan kodebuku 15 dari codebook pertama yang tersembunyi
- 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.
| Parameter | Nilai |
|---|---|
| Lapisan | 28 |
| Dimensi Tersembunyi | 1024 |
| Kepala kuiri | 16 |
| Kepala kunci / Nilai | 8. |
| MLP | SwiGLU |
| Encoding posisi | ROPE |
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:
- RVQ decode (16 buku kode)
- Pre- convoIution (512 sampai 1024 saluran)
- Pre- transformer (1024 sampai 512 bottleneck, 8 lapis, SwiGLU + LayerScale)
- Upsample (2x, 2x)
- Seanet decoder (8x, 5x, 4x, 3x upsample sestages)
- Keluaran 24 kHz waveform
Variants Model
| Model | Ukuran | HuggingFace |
|---|---|---|
| Qwen3-TTS-0.6B Base (8- bit) | 1.3 GB | aufklarer / Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Base (8- bit) | 2.4 GB | aufklarer / Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Base (baku bf16) | 3.9 GB | aufklarer / Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16 |
| Qwen3-TTS-0.6B CustomVoice (bf16) | 1.8 GB | aufklarer / Qwen3-TTS-12Hz-0.6B-CustomVoice-MLX-bf16 |
| Qwen3-TTS CoreML (FP16) | 2.1 GB | aufklarer / Qwen3-TTS-CoreML |
CoreML Backend
CoreML menjalankan enam komponen terkompail. Penempatan komputer tergantung pada bundel yang dipilih.
- Pengproyektor TektProyektor - Proyek teks token menggelapkan ke ruang tersembunyi bersama
- CodeEmbedder - Embed First-Codebook token dan controI token
- MultiCodeEmbedder - Token Embed dari buku kode 1–15
- CodeDecoder - 28-layer autoregresif transformer dengan status KV cache (max posisi 256)
- MultiCodeDecoder — 5-layer prediktor kode untuk codebooks 1–15
- 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
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
| Flag | Deskripsi |
|---|---|
--engine | Mesin TTS: qwen3 (MLX, default), coreml (CoreML / GPU), atau cosyvoice |
--output, -o | Path berkas keluaran WAV |
--language | Bahasa (baku: bahasa Inggris). Abaikan untuk menggunakan dialek pembicara asli. |
--model | Varian model: base atau customVoice |
--speaker | Suara Speaker (memerlukan --model customVoice) |
--temperature | Temperatur Sampling (baku: 0.3) |
--top-k | Parameter sampling Top- k |
--max-tokens | Jumlah token maksimum yang akan dibuat (baku: 500) |
--stream | Aktifkan streaming - memancarkan potongan audio selama pembuatan |
--first-chunk-frames | Jumlah frame dalam potongan pertama yang diperjelas |
--chunk-frames | Jumlah frame per potongan pita |
--batch-file | Path ke berkas teks dengan satu kalimat per baris untuk batch synthesis |
--batch-size | Jumlah 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.
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
)
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.wavHanya 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.