È disponibile una nuova versione pubblica del sistema di sintesi vocale basato su rete neurale Silero Text-to-Speech. Il progetto è principalmente rivolto alla creazione di un sistema moderno di sintesi vocale di alta qualità, competitivo con le soluzioni commerciali delle corporation e accessibile a tutti senza l'uso di costosi hardware server.
I modelli sono distribuiti sotto licenza GNU AGPL, ma l'azienda che sviluppa il progetto non rivela il meccanismo di addestramento dei modelli. Per l'esecuzione, si possono utilizzare PyTorch e framework compatibili con il formato ONNX. La sintesi vocale in Silero si basa sull'uso di algoritmi avanzati di reti neurali modificati e metodi di elaborazione digitale dei segnali.
Si segnala che il principale problema delle soluzioni moderne basate su reti neurali per la sintesi vocale è che spesso sono disponibili solo attraverso soluzioni cloud a pagamento, mentre i prodotti pubblici hanno requisiti hardware elevati, qualità inferiore o non sono prodotti finiti e pronti all'uso. Ad esempio, per l'esecuzione senza problemi di una delle nuove architetture end-to-end di sintesi, VITS, in modalità di sintesi (cioè non per l'addestramento dei modelli), sono necessarie schede grafiche con oltre 16 gigabyte di VRAM.
Contrariamente alla tendenza consolidata, le soluzioni Silero possono essere eseguite con successo anche su un singolo thread di processore Intel x86 con istruzioni AVX2. Su 4 thread del processore, la sintesi consente di generare da 30 a 60 secondi al secondo in modalità di sintesi a 8 kHz, in modalità 24 kHz — 15-20 secondi, e in modalità 48 kHz — circa 10 secondi.
Caratteristiche principali della nuova versione di Silero:
- La dimensione del modello è stata ridotta di 2 volte a 50 megabyte;
- I modelli sono in grado di fare pause;
- Disponibili 4 voci di alta qualità in lingua russa (e un numero infinito di casuali). Esempi di pronuncia;
- I modelli sono diventati 10 volte più veloci e, ad esempio, in modalità 24 kHz consentono di generare fino a 20 secondi di audio al secondo su 4 thread di processore;
- Tutte le varianti vocali per una lingua sono racchiuse in un unico modello;
- I modelli possono accettare interi paragrafi di testo in ingresso, sono supportati i tag SSML;
- La sintesi funziona immediatamente a tre frequenze di campionamento a scelta — 8, 24 e 48 kilohertz;
- Risolti i 'problemi infantili': l'instabilità e la mancanza di parole;
- Aggiunti flag per controllare l'automazione dell'accentuazione e l'uso della lettera 'ё'.
Attualmente, per l'ultima versione del sintetizzatore, sono disponibili pubblicamente 4 voci in lingua russa, ma in un prossimo futuro verrà rilasciata la nuova versione con le seguenti modifiche:
- La velocità di sintesi aumenterà di 2-4 volte;
- Saranno aggiornati i modelli di sintesi per le lingue degli ex paesi sovietici: Calmucchia, Tataro, Uzbeko e Ucraino;
- Saranno aggiunti modelli per le lingue europee;
- Saranno aggiunti modelli per le lingue indiane;
- Saranno aggiunti modelli per la lingua inglese.
Alcuni dei problemi sistemici insiti nella sintesi Silero:
- A differenza delle soluzioni di sintesi più tradizionali, come RHVoice, la sintesi Silero non ha integrazione con SAPI, client facili da installare e integrazioni per Windows e Android;
- La velocità, sebbene sia eccezionalmente alta per questa soluzione, potrebbe non essere sufficiente per la sintesi in tempo reale su processori più deboli in alta qualità;
- La soluzione per la corretta accentuazione non gestisce gli omografi (parole come zAmok e zamOk) e commette ancora degli errori, ma questa mancanza verrà corretta nei futuri rilasci;
- L'attuale versione del sintetizzatore non funziona su processori privi di istruzioni AVX2 (o è necessario modificare specificamente le impostazioni di PyTorch), poiché uno dei moduli all'interno del modello è quantizzato;
- L'attuale versione del sintetizzatore ha come unica dipendenza PyTorch, tutto il contenuto è 'integrato' all'interno del modello e dei pacchetti JIT. I sorgenti dei modelli non vengono pubblicati, né il codice per eseguire i modelli da client PyTorch per altre lingue;
- Libtorch, disponibile per piattaforme mobili, è molto più ingombrante rispetto all'ONNX runtime, ma la versione ONNX del modello non è ancora disponibile.
Fonte: opennet.ru
