Tłumaczenie automatyczne · Oryginał angielski
MOSS- TTS- Nano
Synteza strumieniowa mowy i klonowanie głosu za pomocą fragmentów CoreML, 48 kHz stereo i 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.wavUżyj --voice-sample do klonowania głosu; nie jest potrzebny zapis odniesienia. Odniesienia Mono są duplikowane do stereo, przestawione do 48 kHz i wyściełane do granicy 80 ms. Kodować referencję raz i ponownie jej kody w różnych żądaniach.
--moss-nano-model | aufklarer / MOSS-TTS-Nano-100M-CoreML | Repozytorium modelu lub katalog lokalny |
--moss-nano-compute-units | cpu | cpu lub gpu |
--moss-nano-max-frames | 300 | Maksymalne ramy 80 ms; wymagane naturalne EOS |
--moss-nano-seed | 0 | Odtwarzalny materiał siewny do pobierania próbek 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 serializuje żądania i tworzy świeży stan CoreML dla każdego wyniku. syntetyzuj i syntetyzuj Stream zachować stereo; SpeechGenerationModel zwraca mono downmix. Pass language: zero. Streams kończy się z pustym znacznikiem końcowym.
Granice i pomiary
macOS 15+ / iOS 18+; cztery wykresy zestawione łącznie 367.6 MB. Szybkie, odniesienia i wymagane ramki współdzielą a 1,024-kontekst wiersza. Czas trwania odrzuca przepełnienie i podnosi błąd, jeśli maxFrames zostanie osiągnięty przed naturalnym end- of- mowy. CPU jest domyślny; pozwolenia gpu CPU+GPU egzekucja. PCG64 Pobieranie próbek wykorzystuje nasiona kompatybilne z numPy; różnice numeryczne oparcia mogą nadal zmieniać wydajność.
Python/CoreML w sprawie M5 Pro, 48 GB, macOS 26.6.2; oddzielny świeże procesy, pięć ciepłych żądań na przypadek. Klonowanie wykorzystuje 2.72-drugi referencja. Pierwszy / ciepły zawierać referencyjny czytanie, kodowanie i kodowanie; cached ponownie wykorzystuje referencyjne kody. Synteza model obciążenia jest wykluczony. RSS zawiera pełny Python pracownik, bez PyTorch lub ASRTo nie są... Swift lub pomiary iPhone i nie mierzą podobieństwa głośnika.
| Wstecz | Szczyt RSS | Pierwszy token: pierwszy / ciepły / buforowany | Pierwszy dźwięk: pierwszy / ciepły / buforowany |
|---|---|---|---|
| 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 wydania CLI na tym samym M5 Pro: jeden wniosek na świeży proces, z tym samym odniesieniem, tekst i nasion. Preparat referencyjny jest włączony; syntetyczne-model obciążenia jest wykluczony. RSS obejmuje cały CLI bez ciężarów ASR. Dashs oznacza niemierzone przypadki ciepła / bufora. Oba wyjścia przeszedł niezależny ASR z dokładnym żądanym zdaniem.
| Wstecz | Szczyt RSS | Pierwszy token: pierwszy / ciepły / buforowany | Pierwszy dźwięk: pierwszy / ciepły / buforowany |
|---|---|---|---|
| CPU | 670,7 MiB | 537 / - / - ms | 560 / - / - ms |
| CPU+GPU | 602,5 MiB | 570 / - / - ms | 645 / - / - ms |