Traduzione automatica · Originale inglese
MOSS-TTS-Nano
Streaming della sintesi vocale e clonazione vocale con CoreML, 48 kHz audio stereo e 80 ms pezzi.
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.wavUtilizzare --voice-sample per clonazione vocale; non è necessaria alcuna trascrizione di riferimento. I riferimenti mono sono duplicati a stereo, rivenditampleed a 48 kHz e imbottiti a un limite di 80 ms. codificare un riferimento una volta e riutilizzare i suoi codici attraverso le richieste.
--moss-nano-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Repositore di modello o directory locale |
--moss-nano-compute-units | C'e' un problema. | cpu o gpu |
--moss-nano-max-frames | 300 | Telaio massimo 80 ms; EOS naturale richiesto |
--moss-nano-seed | 0 | Riproducibile Swift seme di campionamento |
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 serializza richieste e crea fresco CoreML stato per ogni pronuncia. sintetizzare e sintetizzareStream preservare stereo; SpeechGenerationModel restituisce un mono downmix. Lingua di passaggio: nil. Streams termina con un marcatore finale vuoto.
Limiti e misure
macOS 15+ / iOS 18+; quattro grafici compilati totali 367.6 MB. Prompt, riferimento e frame richiesti condividono una 1,024Il runtime rifiuta il troppopieno e solleva un errore se maxFrames viene raggiunto prima dell'estremo naturale del picco. CPU è il default; gpu permessi CPU+GPU esecuzione. PCG64 campionamento utilizza semi compatibili con NumPy; differenze numeriche backend possono ancora cambiare l'output.
Python/CoreML su un M5 Pro, 48 GB, macOS 26.6.2; processi freschi separati, cinque richieste calde per caso. Cloning utilizza un 2.72-secondo riferimento. Prima/guerra includono la lettura di riferimento, il caricamento e la codifica di encoder; i codici di riferimento di riutilizzo della cache. Il caricamento del modello di sintesi è escluso. Python lavoratore, senza PyTorch o ASR. Questi non sono Swift o misure iPhone e non misurare la somiglianza dei diffusori.
| Indietro | picco RSS | Primo token: primo / caldo / cache | Primo audio: primo / caldo / 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 · Rilasciare
Nativo Swift rilascio CLI sulla stessa M5 Pro: una richiesta per processo fresco, con lo stesso riferimento, testo e seme. La preparazione di riferimento è inclusa; il caricamento del modello di sintesi è escluso. RSS copre l'intero CLI senza ASR pesi. I trattini significano casi caldi/cache non misurati. Entrambe le uscite hanno superato indipendenti ASR con l'esatta sentenza richiesta.
| Indietro | picco RSS | Primo token: primo / caldo / cache | Primo audio: primo / caldo / cache |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / — / — m | 560 / — / — m |
| CPU+GPU | 602.5 MiB | 570 / — / — ms | 645 / — / — m |