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.wavSes 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-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Model deposu veya yerel dizin |
--moss-nano-compute-units | cpu | cpu veya gpu |
--moss-nano-max-frames | 300 | En fazla 80 ms kare; doğal bitiş gerekli |
--moss-nano-seed | 0 | Tekrarlanabilir 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 |
|---|---|---|---|
| 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
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 |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / — / — ms | 560 / — / — ms |
| CPU+GPU | 602.5 MiB | 570 / — / — ms | 645 / — / — ms |