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.wav

Uż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-modelaufklarer / MOSS-TTS-Nano-100M-CoreMLRepozytorium modelu lub katalog lokalny
--moss-nano-compute-unitscpucpu lub gpu
--moss-nano-max-frames300Maksymalne ramy 80 ms; wymagane naturalne EOS
--moss-nano-seed0Odtwarzalny 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.

WsteczSzczyt RSSPierwszy token: pierwszy / ciepły / buforowanyPierwszy dźwięk: pierwszy / ciepły / buforowany
CPU779 MiB542 / 203 / 52 ms563 / 216 / 65 ms
CPU+GPU731 MiB649 / 225 / 24 ms741 / 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.

WsteczSzczyt RSSPierwszy token: pierwszy / ciepły / buforowanyPierwszy dźwięk: pierwszy / ciepły / buforowany
CPU670,7 MiB537 / - / - ms560 / - / - ms
CPU+GPU602,5 MiB570 / - / - ms645 / - / - ms

MossTTSNano · OpenMOSS