Traducere automată · Originalul în engleză
MOSS-TTS-Nano
Streaming speech sinteze and voice cloning with CoreML, 48 kHz stereo audio and 80 ms chunks.
Apache-2.0 · aufklater/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.wavUtilizarea --voice-sample pentru clonarea vocii; nu este necesară transcrierea de referință. Referințele mono sunt duplicate la stereo, reincluse la 48 kHz și căptușite la o limită de 80 ms. Codați o dată și refolosiți codurile sale la toate cererile.
--moss-nano-model | aufklare/MOSS-TTS-Nano-100M-CoreML | Dosarul de depozit model sau dosarul local |
--moss-nano-compute-units | cpu | cpu sau gpu |
--moss-nano-max-frames | 300 | Rame maxime de 80 ms; EOS naturale necesare |
--moss-nano-seed | 0 | Seminţe reproducabile Swift |
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 serializeaza cererile si creeaza stare proaspata CoreML pentru fiecare declaratie. sintetizeaza si sintetizeazaStream pastrare stereo; SpeechGenerationModel returneaza un monodownmix. Pass language: nil. Streams se termina cu un marker final gol.
Limite și măsurători
macOS 15+ / iOS 18+; patru grafice compilate total 367.6 MB. Prompt, referinţă şi cadre solicitate împărtăşesc un context de 1,024-rând. Runtime-ul respinge şi ridică o eroare în cazul în care MaxFrames este atins înainte de sfârşitul natural al discursului. CPU este implicit; gpu permite CPU+GPU execuţie. PCG64 eşantionarea utilizează seminţe compatibile cu NumPy; diferenţele numerice de fundal pot schimba încă producţia.
Python/CoreML pe M5 Pro, 48 GB; macOS 26.6.2; procese proaspete separate, cinci cereri calde pe caz. Clonarea utilizează un 2.72-a doua referinta. Prima/calda include citirea de referinta, incarcarea si codificarea codorului; refolosirea cachelor coduri de referinta. Incarcarea modelului sintezei este exclusa. RSS include intreaga Python lucrător, fără PyTorch sau ASR Acestea nu sunt. Swift sau măsurători iPhone și nu măsura similitudine difuzor.
| Platformă | Vârful RSS | Primul simbol: primul / cald / cached | Primul audio: primul / cald / cached |
|---|---|---|---|
| CPU | 779 MiO | 542 / 203 / 52 ms | 563 / 216 / 65 ms |
| CPU+GPU | 731 MiO | 649 / 225 / 24 ms | 741 / 245 / 48 ms |
Swift · Eliberare
Nativ Swift eliberare CLI pe același M5 Pro: o cerere pe proces proaspăt, cu aceeași referință, text și semințe. Preparatul de referință este inclus; încărcarea model de sinteză este exclusă. RSS acoperă întreaga CLI fără greutăți ASR. Dashes înseamnă cazuri de căldură/cache nemăsurate. Ambele ieșiri au trecut independent ASR cu fraza solicitată exactă.
| Platformă | Vârful RSS | Primul simbol: primul / cald / cached | Primul audio: primul / cald / cached |
|---|---|---|---|
| CPU | 670.7 MiO | 537 / bază / ms | 560 / |
| CPU+GPU | 602,5 MiO | 570 / bază / ms | 645 / |