MOSS-TTS-Nano

CoreML ile akışlı konuşma sentezi ve ses klonlama; 48 kHz stereo ve 80 ms parçalar.

Apache-2.0 · aufklarer/MOSS-TTS-Nano-100M-CoreML

Komut satırı

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

Ses klonlama için --voice-sample kullanın; referans dökümü gerekmez. Mono referans stereo olarak çoğaltılır, 48 kHz ile yeniden örneklenir ve 80 ms sınırına tamamlanır. Referansı bir kez kodlayıp kodlarını tekrar kullanın.

--moss-nano-modelaufklarer/MOSS-TTS-Nano-100M-CoreMLModel deposu veya yerel dizin
--moss-nano-compute-unitscpucpu veya gpu
--moss-nano-max-frames300En fazla 80 ms kare; doğal bitiş gerekli
--moss-nano-seed0Tekrarlanabilir Swift örnekleme tohumu

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 istekleri sırayla yürütür ve her ifade için yeni CoreML durumu oluşturur. synthesize ve synthesizeStream stereoyu korur; SpeechGenerationModel mono karışım döndürür. language: nil geçirin. Akış boş bir son işaretle biter.

Sınırlar ve ölçümler

macOS 15+ / iOS 18+ gerekir; dört derlenmiş model toplam 367,6 MB. İstem, referans ve istenen kareler 1.024 satırlık bağlamı paylaşır. Taşma veya doğal bitişten önce maxFrames sınırına ulaşılması hata verir. Varsayılan CPU; gpu, CPU+GPU kullanımına izin verir. PCG64 tohumları NumPy ile uyumludur; arka uçların sayısal farkları çıktıyı değiştirebilir.

M5 Pro, 48 GB, macOS 26.6.2 üzerinde Python/CoreML; ayrı süreçler ve durum başına beş sıcak istek. Referans 2,72 saniye. İlk/sıcak süreler okuma, kodlayıcı yükleme ve kodlamayı içerir; önbellek referans kodlarını kullanır. Sentez modeli yüklemesi hariçtir. RSS tüm Python sürecidir, PyTorch/ASR yoktur. Swift/iPhone veya konuşmacı benzerliği ölçümü değildir.

Arka uçTepe RSSİlk token: ilk / sıcak / önbellekİlk ses: ilk / sıcak / önbellek
CPU779 MiB542 / 203 / 52 ms563 / 216 / 65 ms
CPU+GPU731 MiB649 / 225 / 24 ms741 / 245 / 48 ms

Swift · Release

Aynı M5 Pro üzerinde yerel Swift release CLI: aynı referans, metin ve tohumla yeni süreç başına bir istek. Referans hazırlığı dahil, sentez modeli yüklemesi hariçtir. RSS, ASR ağırlıkları olmadan tüm CLI sürecidir. Çizgiler ölçülmeyen sıcak/önbellek durumlarını gösterir. İki çıktı da bağımsız ASR ile istenen cümleyi eksiksiz verdi.

Arka uçTepe RSSİlk token: ilk / sıcak / önbellekİlk ses: ilk / sıcak / önbellek
CPU670.7 MiB537 / — / — ms560 / — / — ms
CPU+GPU602.5 MiB570 / — / — ms645 / — / — ms

MossTTSNano · OpenMOSS