Maskinoversættelse · Engelsk original
MOSS- TTS- Nano
Streaming tale syntese og stemme kloning med CoreML, 48 kHz stereo audio og 80 ms stykker.
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.wavBrug --voice-sample til stemmekloning; der er ikke behov for referencetryk. Mono-referencer kopieres til stereo, reamples til 48 kHz og poleres til en 80 ms grænse. Indkode en reference én gang og genbruge sine koder på tværs af anmodninger.
--moss-nano-model | aufklarer / MOSS-TTS-Nano-100M-CoreML | Model til arkiv eller lokal mappe |
--moss-nano-compute-units | cpu | cpu eller gpu |
--moss-nano-max-frames | 300 | Højst 80 ms stel; naturlig EOS påkrævet |
--moss-nano-seed | 0 | Reproducerbar Swift-prøvetagningsfrø |
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 serialiserer anmodninger og skaber frisk CoreML tilstand for hver ytter. syntetisering og synthesize Stream bevare stereo; SpeechGenerationModel returnerer en mono downmix. Pass sprog: nul. Streams slutter med en tom sidste markør.
Grænser og målinger
macOS 15+ / iOS 18+; fire kompilerede grafer i alt 367.6 MB. Prompt, reference og ønskede rammer deler en 1,024-række sammenhæng. Runtime afviser overløb og rejser en fejl, hvis maxFrames er nået før naturlige slut- af-tale. CPU er standard; gpu tillader CPU+GPU henrettelse. PCG64 prøver bruger NumPy- kompatible frø; backend numeriske forskelle kan stadig ændre output.
Python/CoreML på en M5 Pro, 48 GB macOS 26.6.2; separate friske processer, fem varme anmodninger per sag. Kloning bruger en 2.72-anden reference. Første / varm omfatter referenceaflæsning, indkodning og kodning; cache genbruger referencekoder. Syntese model indlæsning er udelukket. RSS omfatter den fulde Python arbejdstager, uden PyTorch eller ASRDet er ikke Swift eller iPhone målinger og ikke måle højttalerens lighed.
| Backend | Peak RSS | Første token: første / varm / cache | Første lyd: første / varm / cache |
|---|---|---|---|
| CPU | 779 MiB | 542 / 203 / 52 ms | 563 / 216 / 65 ms |
| CPU+GPU | 731 MiB | 649 / 225 / 24 ms | 741 / 245 / 48 ms |
Swift · Udgivelse
Native Swift release CLI på samme M5 Pro: en anmodning pr. frisk proces, med samme reference, tekst og frø. Referenceforberedelse er inkluderet; synthesis- model loading er udelukket. RSS dækker hele CLI uden ASR vægte. Dash betyder umålte varme / cache sager. Begge udgange bestået uafhængig ASR med den nøjagtige ønskede sætning.
| Backend | Peak RSS | Første token: første / varm / cache | Første lyd: første / varm / cache |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / - / - ms | 560 / - / - ms |
| CPU+GPU | 602.5 MiB | 570 / - / - ms | 645 / - / - ms |