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

Bruk --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-unitscpucpu eller gpu
--moss-nano-max-frames300 Maksimalt 80 ms rammer; naturlig EOS kreves
--moss-nano-seed0Reproduserbar 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.

MotorPeak RSS Første token: første / varm / cached Første lyd: første / varm / cached
CPU779 MiB542 / 203 / 52 ms563 / 216 / 65 ms
CPU+GPU731 MiB649 / 225 / 24 ms741 / 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.

MotorPeak RSS Første token: første / varm / cached Første lyd: første / varm / cached
CPU670.7 MiB537 / — / — ms560 / — / — ms
CPU+GPU602,5 MiB570 / — / — ms645 / — / — ms

MossTTSNano · OpenMOSS