Maskinoversettelse · Engelsk original
MOSS-TTS-Nano
Streaming talesyntese og stemmekloning med CoreML, 48 kHz stereolyd og 80 ms biter.
Apache-2.0 · aufklarer/MOSS-TTS-Nano-100M-CoreML
CLI
speech speak "Hello world." --engine moss-nano -o hello.wav
speech speak "The weather is nice today." --engine moss-nano \
--voice-sample reference.wav --moss-nano-seed 1 -o cloned.wav
speech speak "Hello world." --engine moss-nano --stream --play -o streamed.wavBruk --voice-sample for stemmekloning; ingen referansetranskripsjon er nødvendig. Mono-referanser dupliseres til stereo, resuppleres til 48 kHz og polstret til en 80 ms grense. Kode en referanse en gang og gjenbruke kodene på tvers av forespørsler.
--moss-nano-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Modellarkiv eller lokal mappe |
--moss-nano-compute-units | cpu | cpu eller gpu |
--moss-nano-max-frames | 300 | Maksimalt 80 ms rammer; naturlig EOS kreves |
--moss-nano-seed | 0 | Reproduserbar Swift prøvetakingsfrø |
Swift API
import AudioCommon
import MossTTSNano
let model = try await MossTTSNanoModel.fromPretrained()
let reference = try await model.encodeReference(url: referenceURL)
let result = try await model.synthesize(
text: "The weather is nice today.", reference: reference,
options: MossTTSNanoOptions(maxFrames: 300, seed: 1))
try WAVWriter.writeStereo(left: result.left, right: result.right,
sampleRate: 48000, to: outputURL)MossTTSNanoModel serierer forespørsler og skaper friske CoreML tilstand for hver uttalelse. syntetisere og syntetisereStream konservering stereo; SpeechGenerationModel gir en mono downmix. Pass språk: nil. Strømmer slutter med en tom sluttmarkering.
Grenser og målinger
macOS 15+ / iOS 18+; fire kompilerte grafer totalt 367.6 MB. Spør, referanse og forespurt rammer deler en 1,024-row-kontekst. Runtimen avviser overflod og hever en feil hvis maxframes nås før naturlig slutt på peech. CPU er standard; gpu-tillatelser CPU+GPU henrettelse. PCG64 prøvetaking bruker NumPy-kompatible frø; backend numeriske forskjeller kan fortsatt endre utdata.
Python/CoreML på en M5 Pro, 48 GB, macOS 26.6.2; separate friske prosesser, fem varme forespørsler per tilfelle. Cloning bruker en 2.72 sekunders referanse. Første/varm inkluderer referanselesing, koder lasting og koding; cachede gjenbruker referansekoder. Syntesemodelllasting er utelukket. RSS inkluderer hele Python arbeider, uten PyTorch eller ASR. Disse er ikke Swift eller iPhone-målinger og måler ikke høyttalerlikhet.
| Motor | Peak RSS | Første token: første / varm / cached | Første lyd: første / varm / cached |
|---|---|---|---|
| CPU | 779 MiB | 542 / 203 / 52 ms | 563 / 216 / 65 ms |
| CPU+GPU | 731 MiB | 649 / 225 / 24 ms | 741 / 245 / 48 ms |
Swift · Utgivelse
Native Swift release CLI på det samme M5 Pro: en forespørsel per frisk prosess, med samme referanse, tekst og frø. Referansebehandling er inkludert; syntese-modell lasting er utelukket. RSS dekker hele CLI uten ASR vekter. Dashes betyr ikke målt varme / kake tilfeller. Begge utgangene passert uavhengig ASR med den nøyaktig etterspurte setningen.
| Motor | Peak RSS | Første token: første / varm / cached | Første lyd: første / varm / cached |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / — / — ms | 560 / — / — ms |
| CPU+GPU | 602,5 MiB | 570 / — / — ms | 645 / — / — ms |