Konekäännös · Englanninkielinen alkuperäinen
Qwen3-TTS
Native Applen ajoaika · PocketTTS
PocketTTS lisää natiivin CoreML puheen synteesin speech-swift. Kaikki vaiheet oletuksena CPU-yksinomaan suoritukseen. Englanti Alba esiasetetut virrat 1,920-0 näytekehys 24 kHz (80 ms per runko).
Voxtral TTS esilataukset
Voxtral TTS lataa mallin painot, formeizer, config ja kaikki 20 ennalta asetettua äänitiedostoa ensimmäisessä käytössä. Offline-lataaminen edellyttää täydellistä välimuistin nippua, mukaan lukien kaikki voice_embedding/ -tiedostot.
Qwen3-TTS on 12Hz-koodekkikielimalli, jossa on Mimi -dekooderi korkealaatuiselle teksti-puhesynteesille. Oletusarvo MLX -polku käyttää nyt 1,7B-pohjaa bf16 -pakettia; 8-bittisiä nippuja on edelleen saatavilla pienempiä latauksia varten. int4 -versio on poistettu käytöstä TTS -laadun osalta.
VoxCPM2 vs Qwen3-TTS · Täysi viiden kielen vertailu ja menetelmä .
Putkijohto
Puhesynteesi seuraa kolmivaiheista putkea:
- Talker 28-kerroksinen muuntaja, joka muuntaa syötetekstin ensimmäisiksi koodikirjapoleteiksi 12,5 Hz:n taajuudella
- Code Predictor 5 kerroksen muuntaja, joka ennustaa jäljellä olevat 15 koodikirjaa ensimmäisestä piilotetusta koodikirjasta
- Mimi Koodekki Dekooderi ... muuttaa kaikki 16 koodikirjaa 24 kHz:n ääniaaltomuodoksi
Arkkitehtuuri
Puhuja
Puhuja on ydin autoregressiivinen malli, joka tuottaa koodekki rahakkeita tekstisyötteestä.
| Parametri | Arvo |
|---|---|
| Tasot | 28 |
| Piilotettu ulottuvuus | 1024 |
| Kyselypäät | 16 |
| Avain/arvopäät | 8 (GQua) |
| MLP | SwigLUCity name (optional, probably does not need a translation) |
| Sijaintikoodaus | ROPE |
Koodien ennakoija
Kevyt 5-kerroksinen muuntaja, joka ottaa piilotetut tilat ensimmäisestä koodikirjasta ja ennustaa jäljellä olevat 15 koodikirjaa automaattisesti. Yksiosaisen synteesin osalta kiinteä 15-ryhmän silmuka toimii yhtenä koodattuna kaaviona.
Mimi Koodekkipurkaja
Mimi dekooderi muuntaa kvantitatiiviset koodekkimerkit takaisin ääneksi:
- RVQ:n dekoodaus (16 koodikirjaa)
- Esikonvoluutio (512-1024 kanavaa)
- Esimuuntaja (1024-512 pullonkaula, 8 kerrosta, SwiGLU + LayerScale)
- Ylös näyte (2x, 2x)
- SEANet dekooderi (8x, 5x, 4x, 3x ylös näytevaiheet)
- 24 kHz:n aaltomuodon lähtö
Mallivaihtoehdot
| Malli | Koko | HuggingFace |
|---|---|---|
| Qwen3-TTS-0.6B Perus (8-bittinen) | 1,3 GB | aufklarer/Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Perus (8-bittinen) | 2,4 GB | aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Perus (bf16, oletusarvo) | 3,9 GB | aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16 |
| Qwen3-TTS-0.6B Mukautettu ääni (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 Taustaosa
CoreML käyttää kuutta koottua osaa. Laske sijoitus riippuu valitusta nipusta.
- TextProjectProjektor Projects monetic practice upottaa jaetun piilotilan
- KodeEmbedder ...
- MultiCodeEmbedder Upottaa rahakkeita koodikirjoista 1–15
- koodiDekooderi ... 28-kerroksinen autoregressiivinen muuntaja, jossa on kansalaisuudeton KV-välimuisti (max. 256 sijaintia)
- MultiCodeDecoder 5-layer-koodien ennustaja koodikirjojen 1...15 osalta
- PuhelinDekooderi ... Mimi koodekkidekooderi, muuntaa 16 koodikirjaa 24 kHz:n ääneksi.
# 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 käyttää kiinteää 256-paikkaista KV-välimuistia. Pidemmät kohdat tulisi jakaa yksittäisiin lauseisiin. Decode rahakkeet on automaattisesti rajattu sopimaan jäljellä oleviin välimuistin lähtöihin esitäyttöjen jälkeen.
Kokeellinen 1.7B CoreML vienti
Dekooderi käyttää FP32 laskentaa, koska FP16 tarkastuspisteen validointi epäonnistui; välimuistin tensorit ovat edelleen FP16.
Kuusikomponenttinen muunnin tukee 1.7B Base ja 1024-asemainen tilava CodeDecoder. Puhuja ja kaiutin upotetaan on 2048 kanavaa; 1024-kanavainen koodien ennustaja sisältää sen koulutettu tuloennuste.
Swift tukee 0.6B/256 ja 1.7B/1024 nippua; 0,6B pysyy oletusarvona. Kokeelliset 1.7B-nippujen oletusarvot ovat CPU ja edellyttävät valmisteltua 2048-kanavaa Float32 .npy kaiutinta, joka upotetaan --speaker-embedding. GPU/ANE ja iOS validointi pysyy erillisenä.
SpeechDecoderilla on erillinen oletusraja 125 kuvaa (10 sekuntia); suurempi CodeDecodor-välimuisti ei suurenna sitä.
Muuntamislähde ja validointiopas
speech qwen3-tts-coreml "Hello world" \
--model aufklarer/Qwen3-TTS-1.7B-CoreML \
--speaker-embedding speaker-17b.npy --output hello-17b.wav
CLI-käyttö
Luo puhe tekstistä:
.build/release/speech speak "Hello, world!" --output hello.wav
Valinnat
| Lippu | Tavaran kuvaus |
|---|---|
--engine | TTS-moottori: qwen3 (MLX, oletus), coreml (CoreML/GPU) tai cosyvoice |
--output, -o | Tulosta WAV tiedostopolku |
--language | Kieli (oletus: englanti). Omista käyttää puhujan natiivi murre. |
--model | Mallin variantti: base tai customVoice |
--speaker | Puheääni (vaatii --model customVoice) |
--temperature | Näytteenottolämpötila (oletus: 0,3) |
--top-k | Huipputason näytteenottoparametri |
--max-tokens | Tuotettavien rahakkeiden enimmäismäärä (oletus: 500) |
--stream | Ota streaming ... .. säteilee äänipaloja sukupolven aikana |
--first-chunk-frames | Runkojen lukumäärä ensimmäisessä striimatussa palassa |
--chunk-frames | Kehysten määrä seuraavaa striimattua lohkoa kohti |
--batch-file | Polku tekstitiedostoon, jossa on yksi lause eräsynteesiä varten. |
--batch-size | Rinnakkaisten sanojen lukumäärä erämuodossa |
Esimerkit
# 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/
Virtaaminen
--stream -lippu mahdollistaa katkaistun äänilähdön koko sukupolven aikana. Sen sijaan, että odottaisi koko lauseen valmistumista, ääni lähetetään kappaleina. Käytä --first-chunk-frames ja --chunk-frames -kokojen ohjaamiseksi.
Erä
Useiden ilmaisujen syntetisointiin käytetään --batch-file tekstitiedostolla, joka sisältää yhden rivin per lause. --batch-size -lippujen lukumäärät käsitellään rinnakkain.
Tulos
Jos M2 Max, Qwen3-TTS saavuttaa RTF (reaaliaikainen kerroin) noin 0,55, mikä tarkoittaa, että se tuottaa puheen nopeammin kuin reaaliaikainen. compile() lämmittely kestää noin 37 ms.
Oletusarvo on enintään 500 rahaketta, jotka tuottavat noin 40 sekuntia ääntä 12,5 Hz:ssä. Asettamalla korkeammat arvot ylittävät Metal GPU vahtikoiran aikakatkaisun, joka voi aiheuttaa järjestelmän käynnistyksen uudelleen Apple Silicon, koska GPU on jaettu säveltäjän kanssa.
Kieli
Qwen3-TTS tukee monikielistä teksti-puhesynteesiä. Malli tunnistaa syötekielen automaattisesti ja tuottaa sen mukaisesti puheen.
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"))
Ainoastaan paikalliset paketit
Käytä fromLocal, kun sovelluksesi omistaa mallin hankinnan ja varastoinnin. Siirrä pää TTS malli- ja puheenohjainhakemistot erikseen. Puhelu ei koskaan ratkaise välimuistia tai ota yhteyttä verkkoon, ja lue pääpaketin config.json ennen kuin jaat MLX moduulit.
let model = try Qwen3TTSModel.fromLocal(
modelDirectory: ttsDirectory,
tokenizerDirectory: speechTokenizerDirectory
)
fromLocal oletusarvolta .none, joten se ei muuta prosessinlaajuista Metal langallinen muistiraja. fromPretrained pitää .pin(fraction: 0.9) oletus. Molemmat ennalta koulutetut kuormaajat hyväksyvät erillisen tokenizerCacheDir.
Diagnostiikka
Qwen3-TTS lähettää mallin latauksen ja diagnostiikan arvon AudioLog.modelLoading and AudioLog.inference stdoutin tai stderrin sijasta. Laskeet, muodot ja ajoitus ovat edelleen näkyvissä; soittajan antama kieli ja kaiutin ovat yksityisiä, eikä sisääntuloteksti ole koskaan kirjautunut.
Voxtral TTS
Voxtral 4B TTS 2603 toimii paikallisesti Apple Silicon kautta VoextralTTS-moduuli: 20 esiasetettua ääntä, yhdeksän kieltä ja 24 kHz monopuhe.
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.wavVain esiasetetut äänet; viite-audio kloonaaminen ei ole saatavilla. Äänitehovirta SDK, CLI, WebSocket ja HTTP PCM. Toimita täydellinen tuloteksti eteen. Mallipainot käyttävät CC BY-NC 4.0:a.