MOSS-TTS-Nano
Tổng hợp và nhân bản giọng nói qua CoreML, âm thanh stereo 48 kHz và khối 80 ms.
Apache-2.0 · aufklarer/MOSS-TTS-Nano-100M-CoreML
Dòng lệnh
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.wavDùng --voice-sample để nhân bản giọng, không cần bản chép lời tham chiếu. Âm mono được nhân đôi thành stereo, lấy mẫu lại ở 48 kHz và đệm đến ranh giới 80 ms. Mã hóa tham chiếu một lần và tái sử dụng mã cho các yêu cầu.
--moss-nano-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Kho mô hình hoặc thư mục cục bộ |
--moss-nano-compute-units | cpu | cpu hoặc gpu |
--moss-nano-max-frames | 300 | Số khung 80 ms tối đa; phải kết thúc tự nhiên |
--moss-nano-seed | 0 | Hạt giống lấy mẫu Swift tái lập |
API Swift
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 xử lý yêu cầu tuần tự và tạo trạng thái CoreML mới cho mỗi câu. synthesize và synthesizeStream giữ stereo; SpeechGenerationModel trả về bản trộn mono. Truyền language: nil. Luồng kết thúc bằng dấu cuối rỗng.
Giới hạn và phép đo
Cần macOS 15+ / iOS 18+; bốn mô hình biên dịch tổng cộng 367,6 MB. Prompt, tham chiếu và số khung yêu cầu dùng chung ngữ cảnh 1.024 hàng. Vượt ngữ cảnh hoặc đạt maxFrames trước khi kết thúc tự nhiên sẽ gây lỗi. CPU mặc định; gpu cho phép CPU+GPU. Hạt giống PCG64 tương thích NumPy; sai khác số học giữa các bộ xử lý vẫn có thể đổi đầu ra.
Python/CoreML trên M5 Pro, 48 GB, macOS 26.6.2; tiến trình riêng và năm yêu cầu đã làm nóng cho mỗi trường hợp. Tham chiếu dài 2,72 giây. Lần đầu/làm nóng gồm đọc, tải bộ mã hóa và mã hóa; bộ nhớ đệm dùng lại mã. Không tính tải mô hình tổng hợp. RSS gồm toàn bộ tiến trình Python, không PyTorch/ASR. Đây không phải phép đo Swift/iPhone hay độ giống người nói.
| Bộ xử lý | RSS đỉnh | Token đầu: lần đầu / làm nóng / đệm | Âm thanh đầu: lần đầu / làm nóng / đệm |
|---|---|---|---|
| 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
CLI Swift release gốc trên cùng M5 Pro: một yêu cầu mỗi tiến trình mới, cùng tham chiếu, văn bản và hạt giống. Có tính chuẩn bị tham chiếu, không tính tải mô hình tổng hợp. RSS là toàn bộ CLI không có trọng số ASR. Dấu gạch chỉ các trường hợp làm nóng/đệm chưa đo. Cả hai đầu ra đều được ASR độc lập chép đúng nguyên câu yêu cầu.
| Bộ xử lý | RSS đỉnh | Token đầu: lần đầu / làm nóng / đệm | Âm thanh đầu: lần đầu / làm nóng / đệm |
|---|---|---|---|
| CPU | 670.7 MiB | 537 / — / — ms | 560 / — / — ms |
| CPU+GPU | 602.5 MiB | 570 / — / — ms | 645 / — / — ms |