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

Brug --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-modelaufklarer / MOSS-TTS-Nano-100M-CoreMLModel til arkiv eller lokal mappe
--moss-nano-compute-unitscpucpu eller gpu
--moss-nano-max-frames300Højst 80 ms stel; naturlig EOS påkrævet
--moss-nano-seed0Reproducerbar 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.

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

BackendPeak RSSFørste token: første / varm / cacheFørste lyd: første / varm / cache
CPU670.7 MiB537 / - / - ms560 / - / - ms
CPU+GPU602.5 MiB570 / - / - ms645 / - / - ms

MossTTSNano · OpenMOSS