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).

Swift ja CLI-käyttö

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.

Swift käyttö- ja nippuvaatimukset

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:

  1. Talker 28-kerroksinen muuntaja, joka muuntaa syötetekstin ensimmäisiksi koodikirjapoleteiksi 12,5 Hz:n taajuudella
  2. Code Predictor 5 kerroksen muuntaja, joka ennustaa jäljellä olevat 15 koodikirjaa ensimmäisestä piilotetusta koodikirjasta
  3. 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
Tasot28
Piilotettu ulottuvuus1024
Kyselypäät16
Avain/arvopäät8 (GQua)
MLPSwigLUCity name (optional, probably does not need a translation)
SijaintikoodausROPE

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:

  1. RVQ:n dekoodaus (16 koodikirjaa)
  2. Esikonvoluutio (512-1024 kanavaa)
  3. Esimuuntaja (1024-512 pullonkaula, 8 kerrosta, SwiGLU + LayerScale)
  4. Ylös näyte (2x, 2x)
  5. SEANet dekooderi (8x, 5x, 4x, 3x ylös näytevaiheet)
  6. 24 kHz:n aaltomuodon lähtö

Mallivaihtoehdot

Malli KokoHuggingFace
Qwen3-TTS-0.6B Perus (8-bittinen)1,3 GBaufklarer/Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit
Qwen3-TTS-1.7B Perus (8-bittinen)2,4 GBaufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit
Qwen3-TTS-1.7B Perus (bf16, oletusarvo)3,9 GBaufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16
Qwen3-TTS-0.6B Mukautettu ääni (bf16)1.8 GBaufklarer/Qwen3-TTS-12Hz-0.6B-CustomVoice-MLX-bf16
Qwen3-TTS CoreML (FP16)2,1 GBaufklarer/Qwen3-TTS-CoreML

CoreML Taustaosa

CoreML käyttää kuutta koottua osaa. Laske sijoitus riippuu valitusta nipusta.

  1. TextProjectProjektor Projects monetic practice upottaa jaetun piilotilan
  2. KodeEmbedder ...
  3. MultiCodeEmbedder Upottaa rahakkeita koodikirjoista 1–15
  4. koodiDekooderi ... 28-kerroksinen autoregressiivinen muuntaja, jossa on kansalaisuudeton KV-välimuisti (max. 256 sijaintia)
  5. MultiCodeDecoder 5-layer-koodien ennustaja koodikirjojen 1...15 osalta
  6. 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
CoreML KV välimuistiraja

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
--engineTTS-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-framesRunkojen lukumäärä ensimmäisessä striimatussa palassa
--chunk-frames Kehysten määrä seuraavaa striimattua lohkoa kohti
--batch-filePolku tekstitiedostoon, jossa on yksi lause eräsynteesiä varten.
--batch-sizeRinnakkaisten 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.

Turvaraja

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
)
Muistipolitiikka

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.wav

Vain 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.

Lue Voxtral TTS Guide