L’ANALISI
llama.cpp b11850: Soprano genera audio in locale
llama.cpp integra Soprano 80M per TTS locale: conversione GGUF, decoder Vocos, limiti dello streaming e procedura di prova controllata.

In breve: Il delta è un percorso TTS nativo dentro llama.cpp: il convertitore esporta il backbone Soprano come Qwen3 e il decoder Vocos come mmproj, mentre il tool TTS genera audio senza dipendere dal runtime Python del progetto. La prima implementazione, però, restituisce l’intera frase in un solo blocco dopo il flush e resta inglese-only.
Che cosa contiene b11850
La modifica aggiunge riconoscimento dei checkpoint Soprano, conversione del modello linguistico e del decoder audio, grafo Vocos con ISTFT, stima memoria e una pipeline dedicata nel helper multimodale.
Backbone e decoder restano separati
Il backbone Qwen3 produce token acustici; il decoder Vocos viene caricato come mmproj generativo e trasforma l’intera sequenza in forma d’onda. Questa separazione va conservata nel packaging e negli hash del test.
Streaming: attenzione al significato
La model card Soprano descrive uno streaming a bassa latenza nel runtime originale. Il supporto llama.cpp iniziale esegue invece il decoder sull’intera frase e invia l’audio in un solo chunk dopo il flush: non è ancora streaming audio incrementale equivalente.
Perché interessa i sistemi locali
Una pipeline TTS nello stesso ecosistema C/C++ riduce dipendenze Python e può semplificare assistenti offline, lettori vocali e dispositivi embedded. Il vantaggio reale dipende da supporto hardware, qualità della voce e tempo al primo audio misurati sul dispositivo.
Limiti del modello
Soprano 1.1 80M è Apache 2.0, inglese-only e senza clonazione vocale. La model card segnala possibili errori su parole rare, numeri e caratteri speciali e suggerisce normalizzazione fonetica del testo.
Condizioni e limitazioni
Il supporto è appena entrato nella build continua e non è una release stabile numerata. Soprano è solo in inglese, non offre voice cloning e può pronunciare male termini rari, numeri e simboli. Le velocità dichiarate nella model card sono del progetto e non sono state riprodotte da Radar.
Checklist pratica
- Fissare la build b11850 o un commit successivo verificato.
- Convertire e conservare separatamente backbone GGUF e decoder mmproj.
- Usare frasi inglesi corte, poi includere numeri, URL e termini rari.
- Misurare tempo al primo audio, durata totale, RAM e CPU/GPU.
- Verificare che il file non sia troncato e che la punteggiatura sia pronunciata correttamente.
- Non descrivere l’output a blocco singolo come streaming incrementale.