AIREITER

Ming-3.0-TTS in locale: 0.5B o Tiny?

Ultimo Aggiornamento: 2026-10-20 02:27:29

Un modello chiamato “Tiny” sembra, sulla carta, la scelta più semplice da eseguire in locale. Con Ming-3.0-TTS è il contrario: per iniziare conviene il checkpoint dense da 0.5B, mentre Tiny ha senso soprattutto se serve generare podcast con più speaker. Il punto interrogativo è l'hardware: InclusionAI documenta test su H800/H20, non una GPU consumer minima.

Scegli il checkpoint prima di creare l'ambiente

Ming-3.0-TTS propone due checkpoint, con backbone, dipendenze e punti di accesso differenti. Il modello 0.5B è l'installazione più ragionevole per cominciare; Tiny giustifica il suo ingombro maggiore quando la somiglianza vocale o i dialoghi multi-speaker contano più della semplicità di deployment.

Criterio decisionaleMing-3.0-tts-0.5BMing-3.0-tts-tiny
ArchitetturaBackbone dense Qwen2.5-0.5BLing V3 MoE, 7.9B totali / 1.3B attivi
Classe API ufficialeming_tts.MingTTSming_tiny.MingTinyTTS
CLI principaleinfer.pyinfer_tiny.py e script one-click
Ambiente di riferimentoPyTorch 2.6, CUDA 12.4Python 3.10.15, PyTorch 2.7.1+cu118
Hardware documentatoTestato su H800-80GB e H20-96GH800 consigliata
Motivo esclusivo per sceglierloCheckpoint dense più piccolo; nei test del fornitore, maggiore accuratezza in coreano e nei controlli di baseModalità podcast multi-speaker; nei test del fornitore, migliore somiglianza vocale in cinese/inglese
Dimensione pubblicata del checkpointCirca 2.96 GB, secondo il confronto fra file riportato da OrcaRouterCirca 18 GB su Hugging Face

Entrambi i checkpoint generano audio a 44.1 kHz, supportano sette lingue e separano clonazione vocale, progettazione della voce, emozione, dialetto e altri controlli in modalità di attività distinte. L'repository ufficiale rilascia entrambi con licenza MIT e specifica che Tiny richiede un ambiente dedicato, perché le dipendenze fissate differiscono da quelle di 0.5B.

“Tiny” descrive il calcolo MoE attivo, non la dimensione dei pesi archiviati. La model card di Tiny indica 7.9B di parametri del backbone, circa 1.3B attivi per token e un repository di circa 18 GB.

Installazione locale: dal clone alla verifica del checkpoint

Per una configurazione locale affidabile di Ming-3.0-TTS, i due modelli vanno mantenuti in ambienti separati. Clona una volta il codice ufficiale, installa solo i requisiti del checkpoint scelto, scaricane i pesi e avvia lo script di preflight corrispondente prima di caricare il modello.

Installare l'ambiente per 0.5B

Il percorso base nel repository è breve:

git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
conda create -n ming-tts python=3.10 -y
conda activate ming-tts
pip install -r requirements.txt

La model card di 0.5B indica come configurazione di riferimento PyTorch 2.6, CUDA 12.4 e transformers==4.46.3. FlashAttention è opzionale; in alternativa interviene PyTorch SDPA. Questa alternativa garantisce la compatibilità, ma il progetto non pubblica dati sulla relativa perdita di velocità.

Numeri, date, unità e simboli passano dalla normalizzazione testuale FST. Installa la versione fissata di Pynini tramite Conda:

conda install -c conda-forge pynini==2.1.6

pynini non dispone di una wheel universale. --no_text_normalization permette di aggirarlo, ma così abbreviazioni, date, numeri e simboli arrivano grezzi al sintetizzatore: è quindi un interruttore per il troubleshooting, non un'impostazione predefinita da produzione.

Installare Tiny in un ambiente separato

Non installare Tiny sopra l'ambiente di 0.5B. La configurazione ufficiale fissa Python 3.10.15, wheel CUDA 11.8, PyTorch e torchaudio 2.7.1, oltre a transformers==4.46.3:

conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt

Tiny usa calcolo BF16, un loop MoE portabile e stato ricorrente FP32. InclusionAI consiglia una NVIDIA H800, mentre la documentazione non fornisce un percorso supportato per CPU, Apple Silicon, GGUF o llama.cpp.

Scaricare e verificare uno dei checkpoint

La CLI di Hugging Face può salvare i pesi in una directory locale prevedibile:

pip install "huggingface_hub[cli]"
hf download inclusionAI/Ming-3.0-tts-0.5B \
  --local-dir Ming-3.0-tts-0.5b
python tools/preflight.py --model_path Ming-3.0-tts-0.5b

Per Tiny, sostituisci l'ID del modello ed esegui il suo verificatore dedicato:

hf download inclusionAI/Ming-3.0-tts-tiny \
  --local-dir Ming-3.0-tts-tiny
python tools/preflight_tiny.py --model_path Ming-3.0-tts-tiny

Gli script di preflight controllano struttura del checkpoint e tokenizer senza caricare i pesi. Gli utenti nella Cina continentale possono usare il comando di download ModelScope documentato nel README del progetto.

Genera un file prima di aggiungere un server

La prima verifica utile è un WAV generato dalla CLI del repository. Per la clonazione vocale con 0.5B, servono testo di destinazione, WAV di riferimento, trascrizione esatta e --use_spk_emb; la trascrizione fa parte del percorso di condizionamento, non è un metadato opzionale.

python infer.py \
  --model_path Ming-3.0-tts-0.5b \
  --task TTS \
  --language_id English \
  --text "The release candidate passed every audio check." \
  --prompt_wav_path reference.wav \
  --prompt_text "This is the exact speech in the reference recording." \
  --use_spk_emb \
  --output output/first.wav

L'output dovrebbe essere un WAV a 44.1 kHz. Se la verifica del checkpoint riesce ma questo comando fallisce, controlla la compatibilità tra CUDA e PyTorch e il file di riferimento prima di aggiungere un'interfaccia o un livello server. I repository Hugging Face distribuiscono i checkpoint; entrambe le model card precisano che per un'inferenza pratica serve il repository GitHub separato.

La registrazione di riferimento dovrebbe essere pulita e trascritta con precisione. La documentazione ufficiale non pubblica una durata ideale per il riferimento: non trasformare quindi una regola empirica non documentata in un requisito rigido di validazione.

Esporre Ming-3.0-TTS con un unico endpoint vocale

SGLang-Omni può esporre entrambi i checkpoint tramite POST /v1/audio/speech su una sola GPU. Il cookbook SGLang per Ming-3.0-TTS colloca il preprocessing sulla CPU e backbone più decoder AudioVAE sulla stessa GPU.

Avvia un checkpoint:

sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-0.5B

Poi richiedi un WAV:

curl http://127.0.0.1:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "inclusionAI/Ming-3.0-tts-0.5B",
    "input": "The local speech endpoint is ready.",
    "response_format": "wav",
    "seed": 123
  }' \
  --output speech.wav

L'endpoint accetta wav, mp3, flac o pcm; WAV è il formato predefinito. Un input vuoto restituisce HTTP 400. Il campo model deve corrispondere al checkpoint usato per avviare il server.

Non progettare la riproduzione attorno a uno streaming stile token. Il cookbook SGLang chiarisce che stream=true attende comunque il termine della generazione e restituisce un unico corpo di risposta PCM completo. Accetta inoltre una sola registrazione di riferimento per la clonazione; una seconda viene rifiutata.

I controlli sono modalità di attività, non flag combinabili

I controlli di Ming-3.0-TTS seguono contratti di attività separati. In ogni richiesta va scelta l'attività che corrisponde all'output desiderato, invece di tentare di combinare tutti i controlli disponibili.

ObiettivoAttività 0.5BAttività TinyRegola importante per l'input
Clonare una voceTTSseedAudio di riferimento più trascrizione esatta
Tedesco, spagnolo, francese, coreano o giapponeseMULTILINGUALmultilingualRiferimento e trascrizione; lingua di destinazione esplicita
Risate, sospiri o respiri inlineTTSparalinguisticCinese o inglese; usa i tag inline documentati
Indicazioni di interpretazione in linguaggio naturaleFREEFORMfreeformNessun riferimento consigliato; non combinare con altre attività di controllo
Progettare una voce dal testoVOICE_DESIGNvoice_designNessun audio di riferimento
Impostare l'emozioneEMOTIONemotionAudio di riferimento; nessuna trascrizione di riferimento
Impostare velocità, intonazione e volumeBASICbasicFornisci tutti e tre i controlli
Sichuanese o cantoneseDIALECTdialectNessun language_id
Script multi-speakerNon supportatopodcastUn riferimento e una trascrizione per speaker; ogni riga inizia con speaker_N:

Il cookbook ufficiale dice esplicitamente che la modalità free-form non può essere combinata con voice design, voci integrate, emozione, dialetto o attributi di base. Sono supportati più eventi paralinguistici nella stessa frase, ma le limitazioni del repository indicano che la stabilità resta inferiore rispetto agli eventi singoli.

Cosa dimostrano, e cosa non dimostrano, i punteggi

Le evidenze pubbliche più solide indicano 0.5B come scelta predefinita e Tiny come opzione specialistica. I risultati di Artificial Analysis, riportati nel README ufficiale, attribuiscono a Ming-3.0-TTS 1,069 Controlled Voice Elo e il 93.2% di robustezza nella pronuncia nell'ottobre 2026; queste affermazioni da leaderboard riguardano però il modello 0.5B e non dimostrano la qualità di Tiny.

Le valutazioni del fornitore mostrano un compromesso reale fra checkpoint. Sui dati di valutazione Seed-TTS, 0.5B riporta WER cinese/inglese dello 0.800%/1.584%, contro lo 0.820%/1.666% di Tiny. Tiny segnala una maggiore somiglianza vocale in entrambe le lingue: 0.781/0.728 contro 0.758/0.691 di 0.5B. Questi valori provengono dalle tabelle di valutazione di InclusionAI, non da un test locale riprodotto.

Tiny non è sistematicamente migliore nelle sue sette lingue. La tabella multilingue ufficiale riporta per il coreano un CER del 6.000% con Tiny, contro l'1.728% di 0.5B. Solo Tiny supporta i podcast e dichiara 2.03% di podcast CER, 0.561 di somiglianza vocale condizionale e 2.12 UTMOS, ma InclusionAI indica anche la qualità audio prevista per i podcast come area da migliorare.

La lettura pratica è circoscritta: scegli 0.5B per il primo deployment, il coreano e una minore complessità operativa; valuta Tiny per la generazione di podcast o quando la sua maggiore somiglianza vocale misurata in cinese/inglese si conferma sui tuoi riferimenti.

Valida il deployment sul tuo hardware

Il successo della configurazione ufficiale non dimostra che il modello sia adatto alla produzione su una GPU consumer. Una soglia di approvazione per il deployment dovrebbe registrare VRAM di picco, tempo al primo WAV completato, real-time factor, tasso di errore e qualità dell'output nelle esatte condizioni di lingua e audio di riferimento previste dall'applicazione.

“No GGUF/llama.cpp yet, and no consumer-GPU benchmarks.” — @TeksEdge on X

L'osservazione coincide con il limite delle evidenze ufficiali: la documentazione di 0.5B cita sistemi di test H800-80GB e H20-96G, mentre Tiny raccomanda H800. Nessuna delle model card ufficiali pubblica risultati per RTX 4090, RTX 3090, Windows, WSL2, macOS, VRAM minima o real-time factor.

Segui questa sequenza di superamento/fallimento:

  1. Esegui lo script di preflight corrispondente e conserva l'output insieme alla revisione del checkpoint.
  2. Genera un WAV breve con un percorso built-in o zero-speaker, quindi ripeti con il formato di riferimento della produzione.
  3. Misura VRAM di picco e tempo effettivo per testi di produzione brevi, mediani e lunghi.
  4. Valuta separatamente intelligibilità e identità vocale in ogni lingua che verrà distribuita.
  5. Testa ogni controllo richiesto come attività autonoma; escludi le configurazioni che dipendono da combinazioni non supportate.
  6. Metti sotto carico il comportamento dell'API a forma d'onda completa, inclusi timeout delle richieste e concorrenza.

Senza queste misurazioni, “funziona in locale” significa soltanto che lo stack di riferimento riesce a caricare e sintetizzare sull'hardware datacenter documentato.

FAQ su Ming-3.0-TTS

Ming-3.0-TTS può funzionare su RTX 4090 o 3090?

La release ufficiale non pubblica un valore minimo di VRAM né benchmark su GPU consumer. Il checkpoint 0.5B è il punto di partenza più plausibile, ma prima di impegnarti su una delle due schede verifica localmente allocazione di picco e real-time factor.

Ming-3.0-TTS funziona su Windows o macOS?

Gli ambienti di riferimento ufficiali sono stack Linux basati su CUDA. Nel repository ufficiale non è documentato supporto nativo per Windows, WSL2, Apple Silicon, MLX, GGUF o llama.cpp.

Ming-3.0-TTS è utilizzabile commercialmente?

Il codice e i checkpoint rilasciati sono sotto licenza MIT. Nelle linee guida d'uso, i responsabili vietano l'impersonificazione ingannevole o non consensuale e chiedono di etichettare il parlato sintetico quando potrebbe essere scambiato per una registrazione reale.

L'API SGLang trasmette l'audio in streaming in tempo reale?

No. Il comportamento documentato di stream=true completa la generazione prima di restituire un singolo corpo di risposta PCM; i client dovrebbero quindi trattarlo come generazione a risposta completa, non come riproduzione incrementale.

Meglio Ming-3.0-tts-0.5B o Tiny?

Usa prima 0.5B se cerchi un checkpoint più piccolo, un deployment più semplice, sintesi in coreano e normale utilizzo single-speaker. Scegli Tiny quando la generazione di podcast multi-speaker è indispensabile o quando una valutazione locale conferma che i suoi maggiori punteggi di somiglianza vocale in cinese/inglese si trasferiscono alle tue voci.