Automatische vertaling · Engels origineel
MOSS-TTS-Nano
Streaming spraaksynthese en stemklonen met CoreML, 48 kHz stereo audio en 80 ms brokken.
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.wavGebruik --voice-sample voor voice-klonen; er is geen referentie-transcript nodig. Mono-verwijzingen worden gedupliceerd naar stereo, herclassificeerd naar 48 kHz en opgevuld tot een 80 ms grens. Codeer een referentie eenmaal en hergebruik de codes van de verzoeken.
--moss-nano-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Model repository of lokale map |
--moss-nano-compute-units | cpu | cpu of gpu |
--moss-nano-max-frames | 300 | Maximaal 80 ms frames; natuurlijk EOS vereist |
--moss-nano-seed | 0 | Herkauwbaar Swift bemonsteringszaad |
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 serialiseert verzoeken en creëert nieuwe CoreML status voor elke uitdrukking. synthesizer en synthesizeStream behoudt stereo; SpeechGenerationModel geeft een mono downmix terug. Pass language: nul. Streams eindigen met een lege laatste marker.
Grenswaarden en metingen
macOS 15+ / iOS 18+; vier gecompileerde grafieken totaal 367.6 MB. Waarschuwing, referentie en gevraagde frames delen een 1.024-rij context. De runtime wijst overflow af en verhoogt een fout als maxFrames wordt bereikt voordat natuurlijke einde-van-spraak. CPU is de standaard; gpu-vergunningen CPU+GPU uitvoering. PCG64 sampling maakt gebruik van NumPy-compatibele zaden; backend numerieke verschillen kunnen nog steeds de output wijzigen.
Python/CoreML op een M5 Pro, 48 GB, macOS 26.6.2; aparte verse processen, vijf warme verzoeken per geval. Klonen maakt gebruik van een 2,72-secondereferentie. Eerste/warm zijn onder andere referentie-, codeer- en coderings-, gecached hergebruik referentiecodes. Synthesis model loading is uitgesloten. RSS omvat de volledige Python werknemer, zonder PyTorch of ASR. Deze zijn niet Swift of iPhone metingen en meten niet speaker overeenkomst.
| Backend | Piek RSS | Eerste token: eerste / warm / gecached | Eerste audio: eerste / warm / gecached |
|---|---|---|---|
| CPU | 779 MiB | 542 / 203 / 52 ms | 563 / 216 / 65 ms |
| CPU+GPU | 731 MiB | 649 / 225 / 24 ms | 741 / 245 / 48 ms |
Swift · Release
Native Swift release CLI on the same M5 Pro: one request per vers proces, with the same reference, text and seed. Reference preparation is included; synthese-model loading is excluded. RSS covers the whole CLI without ASR weights. Dashes mean ungemeten warm/cache cases. both outputs passed onafhankelijk ASR with the exact requeste point.
| Backend | Piek RSS | Eerste token: eerste / warm / gecached | Eerste audio: eerste / warm / gecached |
|---|---|---|---|
| CPU | 670,7 MiB | 537 / . / . | 560 / . / . |
| CPU+GPU | 602,5 MiB | 570 / .. / . | 645 / . / . ms |