Terjemahan mesin · Versi asli bahasa Inggris
MOSS- TTS- Nano
Sintesis suara dan suara berklon dengan CoreML, audio stereo 48 dan chunks 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.wavGunakan --voice-sample untuk pengkloning suara; tidak ada transkrip referensi dibutuhkan. Referensi Mono diduplikasi ke stereo, diresepkan ke 48 kHz dan padded ke 80 ms. kode referensi sekali dan gunakan kembali kode melalui permintaan.
--moss-nano-model | aufklarer / MOSS-TTS-Nano-100M-CoreML | Repositori model atau direktori lokal |
--moss-nano-compute-units | cpu | cpu atau gpu |
--moss-nano-max-frames | 300 | Maksimum 80 ms frame; EOS alami dibutuhkan |
--moss-nano-seed | 0 | Bibit yang diambil ulang 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 serializes permintaan dan menciptakan segar CoreML keadaan untuk setiap tingkat. mensintesis dan synthesizeStream melestarikan stereo; SpeechGenerationModel mengembalikan sebuah downmix mono. Pass bahasa: nil. Streams berakhir dengan penanda akhir kosong.
Batas dan pengukuran
macOS 15+ / iOS 18+; empat grafik yang dikompile total 367.6 MB. Prompt, referensi dan diminta berbagi frame 1,024-row konteks. Kegagalan waktu-jalan overflow dan menimbulkan kesalahan jika maxFrames dicapai sebelum akhir natural -of- pidato. CPU adalah perizinan baku; gpu CPU+GPU Eksekusi. PCG64 sampling menggunakan NumPy-compatible seeds; backend numerik difference masih dapat mengubah keluaran.
Python/CoreML pada M5 Pro, 48 GB, macOS 26.6.2; pisahkan proses segar, lima permintaan hangat per kasus. Mengkloning menggunakan 2.72-second reference. First / warm including reading reference loading, enkoder, and encoder; cache reuse codes. Synthesis model loading tidak termasuk. RSS termasuk penuh Python Pekerja, tanpa PyTorch atau ASRIni bukan Swift atau pengukuran iPhone dan jangan mengukur kesamaan speaker.
| Backend | Puncak RSS | Token pertama: pertama / hangat / cache | Audio pertama: first / warm / cache |
|---|---|---|---|
| CPU | 779 MiB | 542 / 203 / 52 ms | 563 / 216 / 65 md |
| CPU+GPU | 731 MiB | 649 / 225 / 24 ms | 741 / 245 / 48 ms |
Swift
Asli Swift Rilis CLI pada sama M5 Pro: satu permintaan per proses segar, dengan referensi yang sama, teks dan benih. Persiapan referensi disertakan; pemuatan model sintesis- tidak termasuk. RSS mencakup seluruh CLI tanpa ASR bobot. dash berarti tidak diukur kasus hangat / cache. Kedua outputs dilewatkan independen ASR dengan kalimat yang tepat yang diminta.
| Backend | Puncak RSS | Token pertama: pertama / hangat / cache | Audio pertama: first / warm / cache |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / - / - ms | 560 / - / - ms |
| CPU+GPU | 602.5 MiB | 570 / - / - ms | 645 / - / - ms |