Traducere automată · Originalul în engleză
Qwen3-TTS
Nativ Apple runtime · PocketTTS
PocketTTS adaugă sinteze native CoreML sinteze de vorbire la speech-swift. Toate etapele sunt implicite pentru executarea exclusivă a procesorului. Fluxurile de prefixe engleze Alba sunt 1,920-frame de probe la 24 kHz (80 ms per cadru).
Voxtral TTS descărcări prestabilite
Voxtral TTS descarcă greutățile modelului, tokenizer, config și toate cele 20 de fișiere vocale presetate la prima utilizare. Încărcarea offline necesită pachetul cached complet, inclusiv fiecare fișier din voice_embedding/.
Qwen3-TTS este un model de limbaj codec 12Hz cu un decodor Mimi pentru sinteza de înaltă calitate a textului-la-discurs. Calea implicită MLX utilizează acum pachetul de bază 1.7B bf16; pachete de 8 biți rămân disponibile pentru descărcări mai mici. int4 a fost dezafectată pentru calitatea TTS
VoxCPM2 vs Qwen3-TTS · Comparație și metodologie de clonare vocală în cinci limbi .
Conductă
Sinteza vorbirii urmează unei conducte în trei etape:
- Talker Transformator 28-strat care convertește textul de intrare în primele jetoane de coduri la 12,5 Hz
- Code Predictor Transformator 5-strat care prezice restul de 15 coduri din primele state ascunse codebook
- Decodor Mimi Conversia tuturor jetoanelor de cod 16 într-o formă audio 24 kHz
Arhitectură
Vorbitor
Talker este modelul de bază autoregresiv care generează jetoane codec de intrare text.
| Parametru | Valoare |
|---|---|
| Straturi | 28 |
| Dimensiunea ascunsă | 1024 |
| Capete de interogare | 16 |
| Capete cheie/valoare | 8 (GQA) |
| MLP | SwigluCity in Germany |
| Codare poziție | RoPE |
Predictor de cod
Un transformator usor cu 5 straturi care ia starile ascunse din primul cod si prezice restul de 15 coduri autoregresiv. Pentru sinteza unui singur element, bucla fixa de 15 grupuri functioneaza ca un grafic compilat.
Mimi Decodor codec
Mimi decodorul convertește jetoanele codec cuantice înapoi în audio:
- RVQ decodează (16 cărți de coduri)
- Pre-convoluție (512 până la 1024 canale)
- Pre-transformator (1024 până la 512 sticluță, 8 straturi, SwiGLU + StrateScale)
- Proba de sus (2x, 2x)
- Decodor SEANet (8x, 5x, 4x, 3x în sus etape de probă)
- Ieșire a formei de undă 24 kHz
Model Variante
| Model | Dimensiune | HuggingFace |
|---|---|---|
| Qwen3-TTS-0.6B Base (8-bit) | 1,3 GB | aufklarer/Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Baza (8-bit) | 2.4 GB | aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Baza (bf16 implicit) | 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 Platformă
CoreML ruleaza sase componente compilate. Plasarea calcul depinde de pachetul selectat.
- TextProjector
- CodeEmbedder
- MultiCodeEmbedder 1–15
- Decodor de cod Transformator autoregresiv 28 cu cache KV apatrid (maxim 256)
- Decodor multicod — 5-previzionator de coduri pentru coduri 1–15
- Decodor de vorbire Decodor Mimi codec, convertește jetoane de cod 16 în audio 24
# 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: The CoreML CodDecodor folosește un cache KV poziție fixă 256. Pasaje mai lungi ar trebui să fie împărțite în propoziții individuale. Decodarea jetoanelor sunt automat plafonate pentru a se potrivi în sloturile cache rămase după prefill.
Experimental 1.7B CoreML export
Decodorul utilizează un calcul FP32 deoarece FP16 validarea punctului de control eșuat; tensorii cache rămân FP16.
Convertorul cu șase componente suportă 1,7B Base și un Cod deDecodor de ultimă poziție 1024-poziție. Conversitorul și difuzorul au 2048 de canale; predictorul de cod 1024-canal include proiecția sa de intrare instruită.
Swift suportă 0.6B/256 și 1.7B/1024 pachete; 0.6B rămâne implicit.Experimental 1.7B pachet implicit la CPU și necesită un 2048-canal pregătit Float32 .npy difuzor înglobare prin --speaker-embedding. GPU/ANE și iOS validare rămâne separată.
Cache-ul include poziţii prompte şi audio. DiseachDecodorul are o limită implicită separată de 125 de cadre (10 secunde); un cache mai mare CodeDecodor nu-l măreşte.
Sursă de conversie și ghid de validare
speech qwen3-tts-coreml "Hello world" \
--model aufklarer/Qwen3-TTS-1.7B-CoreML \
--speaker-embedding speaker-17b.npy --output hello-17b.wav
Utilizarea CLI
Generează discursul din text:
.build/release/speech speak "Hello, world!" --output hello.wav
Opțiuni
| Steag | Descriere |
|---|---|
--engine | TTS motor: qwen3 (MLX, implicit), coreml (CoreML/GPU), sau cosyvoice |
--output, -o | Ieșire WAV calea fișierului |
--language | Limba (default: english). Omit pentru a utiliza dialectul nativ difuzor. |
--model | Model de variantă: base sau customVoice |
--speaker | Voce difuzor (necesită --model customVoice) |
--temperature | Temperatura eșantionului (default: 0,3) |
--top-k | Parametrul de eșantionare Top-K |
--max-tokens | Numărul maxim de jetoane de generat (default: 500) |
--stream | Activează streaming-ul emite bucăți audio în timpul producției |
--first-chunk-frames | Numărul de cadre din prima bucată |
--chunk-frames | Numărul de cadre per bucată de flux ulterioară |
--batch-file | Calea către un fișier text cu o declarație pe linie pentru sinteza lotului |
--batch-size | Numărul de declaraţii paralele în modul lot |
Exemple
# 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
Steagul --stream permite o ieșire audio în timpul producției. În loc să aștepte întreaga declarație pentru a finaliza, audio este emis în bucăți ca jetoane sunt produse. Utilizați --first-chunk-frames și --chunk-frames pentru a controla dimensiunea fiecărei bucăți.
Mod lot
Pentru sintetizarea mai multor declaraţii, utilizaţi --batch-file cu un fişier text conţinând o linie per declaraţie. --batch-size
Performanță
Pe o M2 Max, Qwen3-TTS atinge un RTF (factor în timp real) de aproximativ 0.55Adică generează vorbirea mai repede decât în timp real. compile() încălzire, fiecare pas ia despre 37 ms.
Maximul implicit este de 500 de jetoane, care produce aproximativ 40 de secunde de audio la 12,5 Hz. Stabilirea de valori mai mari riscuri care depășesc Metal GPU watchdog temporizeaza, care poate provoca o repornire a sistemului pe Apple Silicon deoarece GPU este partajat cu compositorul.
Limbi
Qwen3-TTS suportă sinteza multilingvă text-la-discurs. Modelul detectează automat limba de intrare și generează vorbirea în consecință.
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"))
Doar pachete locale
Utilizaţi fromLocal atunci când aplicaţia dumneavoastră deţine modelul de achiziţie şi stocare. Treceţi la modelul principal TTS şi la directoarele pentru tokenizator de vorbire separat. Apelul nu rezolvă niciodată o cache sau contactează reţeaua, şi citeşte modulele pachetului principal config.json înainte de alocarea MLX.
let model = try Qwen3TTSModel.fromLocal(
modelDirectory: ttsDirectory,
tokenizerDirectory: speechTokenizerDirectory
)
fromLocal implicits to .none, astfel încât nu schimbă procesul la nivel Metal wired-memory limit. fromPretrained păstrează .pin(fraction: 0.9) implicit.Ambii încărcători precalificați acceptă un separat tokenizerCacheDir.
Diagnostice
Qwen3-TTS trimite diagnosticul de încărcare a modelelor și de interferență la AudioLog.modelLoading și AudioLog.inference în loc de stdout sau stderr. Counts, forme, și calendarul rămân vizibile; limba și valorile difuzorului furnizate de apelant sunt private, iar textul de intrare nu este niciodată autentificat.
Voxtral TTS
Voxtral 4B TTS 2603 ruleaza local pe Apple Silicon prin modulul VotralTTSS: 20 voci prestabilite, nouă limbi, și 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.wavDoar vocile presetate; clonarea de referință-audio nu este disponibilă. Fluxuri de ieșire audio prin SDK, CLI, WebSocket și HTTP PCM. Furnizarea textului complet de intrare în față. Greutate model de utilizare CC BY-NC 4.0.