Strojový překlad · Anglický originál

MOSS- TTS- Nano

Streamování syntézy řeči a klonování hlasu s úlomky CoreML, 48 kHz stereo audio a 80 ms.

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

Použijte --voice-sample pro hlasové klonování; není potřeba žádný referenční přepis. Odkazy na mononukleární jsou duplikovány na stereo, přetvořeny na 48 kHz a polstrovány na hranici 80 ms. Zakódujte reference jednou a znovu své kódy napříč požadavky.

--moss-nano-modelaufklarer / MOSS-TTS-Nano-100M-CoreMLModel úložiště nebo lokální adresář
--moss-nano-compute-unitscpucpu nebo gpu
--moss-nano-max-frames300Maximálně 80 ms snímků; vyžaduje se přirozený EOS
--moss-nano-seed0Reprodukovatelné osivo Swift pro odběr vzorků

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 serializuje žádosti a vytváří čerstvé CoreML stav pro každé utce. syntetizovat a syntetizeStream zachovat stereo; SpeechGenerationModel vrací mono downmix. Pass jazyk: nula. Streams konec s prázdnou finální marker.

Mezní hodnoty a měření

macOS 15+ / iOS 18+; čtyři sestavené grafy celkem 367.6 MB. Prompt, reference a požadované rámy sdílejí a 1,024-řádek kontext. runtime odmítá přetečení a vyvolává chybu, pokud maxFrames je dosaženo před přirozeným end- of- proslovu. CPU je výchozí; gpu povolení CPU+GPU poprava. PCG64 odběr vzorků používá semínka kompatibilní s NumPy-; číselné rozdíly v backendu mohou ještě změnit výstup.

Python/CoreML na M5 Pro, 48 GB, macOS 26.6.2; oddělené čerstvé procesy, pět teplých požadavků na případ. Klonování používá 2.72-second reference. První / teplotní patří referenční čtení, kódování a kódování kódování, cached reuses reference codes. Syntetický model zatížení je vyloučen. RSS obsahuje plné Python pracovník, bez PyTorch nebo ASRNejsou. Swift nebo iPhone měření a neměří reproduktor podobnost.

BackendVrchol RSSPrvní token: první / teplý / cachovanýPrvní zvuk: první / teplý / cached
CPU779 MiB542 / 203 / 52 ms563 / 216 / 65 ms
CPU+GPU731 MiB649 / 225 / 24 ms741 / 245 / 48 ms

Swift · Vydání

Původní Swift vydání CLI na stejném M5 Pro: jeden požadavek na čerstvý proces, se stejným odkazem, textem a semenem. Referenční příprava je zahrnuta; syntetizované-model zatížení je vyloučeno. RSS pokrývá celou CLI bez závaží ASR. Odpady znamenají neměřené teplé / cache případy. Oba výstupy prošly nezávislým ASR s přesně požadovanou větou.

BackendVrchol RSSPrvní token: první / teplý / cachovanýPrvní zvuk: první / teplý / cached
CPU670.7 MiB537 / -560 / - /
CPU+GPU602.5 MiB570 / - / - ms645 / - / - ms

MossTTSNano · OpenMOSName