Konekäännös · Englanninkielinen alkuperäinen

MOSS-TTS-Nano

Puhesynteesi ja äänen kloonaus, joissa CoreML, 48 kHz:n stereoääni ja 80 ms:n palaset.

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

KLI

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

Käytä --voice-sample äänen kloonauksessa; referenssiä ei tarvita. Monoviitteet toistetaan stereoihin, otetaan uudelleen 48 kHz:iin ja lisätään 80 ms:n rajaan. Koodataan viite kerran ja käytetään uudelleen sen koodit pyynnöissä.

--moss-nano-modelaufklarer/MOSS-TTS-Nano-100M-CoreML Mallivarasto tai paikallinen hakemisto
--moss-nano-compute-unitscpucpu tai gpu
--moss-nano-max-frames300 Enintään 80 ms kehykset; luonnollinen EOS vaaditaan
--moss-nano-seed0 Uusittavissa Swift näytteen siemenet

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 serialisoi pyyntöjä ja luo tuore CoreML tila kunkin lauseen. syntetisoi ja syntetisoidaStream state stereot; SpeechGenerationModel palauttaa mono downmix. Pass language: noil. Streams päättyy tyhjä lopullinen merkki.

Raja-arvot ja mittaukset

macOS 15+ / iOS 18+; neljä koottua kaaviota yhteensä 367.6 MB. Näppärät, referenssit ja pyydetyt kehykset jakavat 1,024-row asiayhteys. Runtime hylkää ylivuoto ja nostaa virhe, jos maxFrames saavutetaan ennen luonnollista loppua-of-puhe. CPU on oletus; gpu-luvat CPU+GPU teloitus. PCG64 näytteenotossa käytetään NumPy-yhteensopivia siemeniä; taustaosan numeeriset erot voivat vielä muuttaa tuotosta.

Python/CoreML n M5 Pro 48 GB, macOS 26.6.2; erilliset tuoreet prosessit, viisi lämmintä pyyntöä per tapaus. Kloonaus käyttää 2.72- toinen referenssi. Ensimmäinen/lämmin sisältää referenssin, koodaimen latauksen ja koodauksen; välimuistissa uudelleenkäytetään viitekoodeja. Python työntekijä, ilman PyTorchia tai ASR. Nämä eivät ole Swift tai iPhone mittaukset ja eivät mittaa kaiutin samankaltaisuutta.

TaustaosaRSS-huippu Ensimmäinen merkki: ensimmäinen / lämmin / välimuisti Ensimmäinen ääni: ensimmäinen / lämmin / välimuisti
CPU779 MiB542 / 203 / 52 ms563 / 216/65 ms
CPU+GPU731 MiB649 / 225 / 24 ms741 / 245 / 48 ms

Swift · Julkaisu

Native Swift release CLI samalla M5 Pro: yksi pyyntö per tuoreprosessi, jossa on sama viite, teksti ja siemenet. Reference preparation is included; synteesimallien kuormitusta ei oteta huomioon. RSS kattaa koko CLI:n ilman ASR -painoa. Dashes tarkoittaa mittaamattomia lämpimiä/välimuistitapauksia. Molemmat tuotokset läpäisivät riippumattoman ASR-painon ja tarkasti vaaditun lauseen.

TaustaosaRSS-huippu Ensimmäinen merkki: ensimmäinen / lämmin / välimuisti Ensimmäinen ääni: ensimmäinen / lämmin / välimuisti
CPU670,7 MiB537 / 560 / ... / ms
CPU+GPU602,5 MiB570 / 645 / ...

MossTTSNano · OpenMOSS