Java: panoramica sui motori di sintesi vocale [chiuso]
-
02-07-2019 - |
Domanda
Sono ora alla ricerca di un framework TTS (Java Text to Speech). Durante le mie indagini ho trovato diversi framework JSAPI1.0 (parzialmente) compatibili elencati in Pagina delle implementazioni JSAPI , nonché una coppia di framework Java TTS che non sembrano seguire le specifiche JSAPI ( Mary , Say-It-Now ) . Ho anche notato che attualmente non esiste alcuna implementazione di riferimento per JSAPI.
Brevi test che ho fatto per FreeTTS (il primo elencato nella pagina impls di JSAPI) mostrano che è lungi dal leggere parole semplici e ovvie (esempi: ABC, lavagna). Altri test sono attualmente in corso.
Ed ecco la domanda (6, in realtà):
- Quale dei framework TTS basati su Java hai usato?
- Quali, secondo te, sono in grado di leggere la più grande base di parole?
- E la loro qualità vocale?
- E la loro esibizione?
- Quali framework non Java con collegamenti Java ci sono sulla scena?
- Quale di questi consiglieresti?
Grazie in anticipo per i tuoi commenti e suggerimenti.
Soluzione
In realtà ho avuto abbastanza fortuna con FreeTTS
Altri suggerimenti
Google Translate ha un segreto API: https://translate.google.com/translate_tts?ie=utf-8&tl= it & amp; q = Ciao% 20World
Ho usato Mary prima e sono rimasto molto colpito dalla qualità delle voci. Sfortunatamente, non ho usato nessuno degli altri.
In realtà, non c'è una grande scelta:
- Festival, il più vecchio. Scritto in C ++ ma ha collegamenti a Java.
- eSpeak, rapido e semplice, utilizzato da Google Translate
- MBROLA
Pure Java:
- FreeTTS, il cui codice è stato portato da Festival, quindi è stato aperto e lo sviluppo è stato interrotto.
- MaryTTS - più potente e pronta per la produzione.
Inoltre ci sono altri programmi proprietari come:
- Acapella
- Nuance Vocalizer
Se il tuo software è solo Windows, puoi utilizzare l'API di Microsoft Speech.
Ho usato AT & amp; T Natural Voices che fornisce hook JSAPI e MS SAPI. Fornisce voci di qualità eccellente, un buon "generale" dizionario vocale, molti controlli sulla pronuncia e più lingue. È un po 'caro, ma funziona molto bene.
L'ho usato per leggere importanti dati di telemetria del sensore per i driver in un'applicazione sensore mobile. Non possiamo lamentarci della qualità della voce. Aveva circa il 75% di accuratezza immediata con termini scientifici e molto più alto (forse 90% +) con un dialogo normale. Abbiamo ottenuto una precisione del 99% circa utilizzando i markup (la maggior parte degli errori erano in termini scientifici con combinazioni di fonemi insolite).
Era un po 'difficile per il processore (eravamo in esecuzione su una macchina equivalente Pentium-III e stava spingendo il 50% -75% di picco della CPU). Questo utilizza un motore vocale nativo (compatibile con Windows, Linux e Mac) con un'interfaccia Java.
C'è un'enorme varietà di voci e lingue ...
Ho usato FreeTTS ma ho avuto un grosso problema a far funzionare le voci di MBrola su My MacbookPro. Ho fatto funzionare le voci di MBrola su Windows (dolorosamente) e Linux. Non ho avuto fortuna a caricare altri pacchetti vocali su FreeTTS, il che è un peccato perché le voci fornite sono orribili IMO. Oltre a ciò, ho avuto un piccolo successo anche con Cloudgarden, ma funziona solo su Windows AFAIK. Sarei interessato a sentire altri successi / insuccessi con i motori vocali poiché questo tipo di lavoro è particolarmente impegnativo. Sto anche giocando un po 'con Sphinx4. Ho appena rimosso JVXML (che sembra essere basato su Sphinx4) ieri sera ma non sono riuscito a farlo funzionare per qualche strano motivo.
Ho contribuito a Mary. Sento che ha potenziale se qualcuno più intelligente di me separasse le voci HMM dal core (quelle voci non hanno bisogno di grandi set di dati e suonano bene). Sto anche cercando di fare un sistema di eventi per freetts per inviare eventi quando dice una parola. Ho avuto successo, ma ora è rotto in Linux. (probabilmente a causa di un bug del timer).
Grazie mille a tutti, il trucco è nella fonte FreeTTS. In breve: se eseguito come java -jar freetts.jar some-more-args-here
, comporterà meno parole rispetto a quando viene eseguito in un modo bin / Server.jar e bin / Client.jar .
Ho trovato poco a mio agio con MarryTTS Ha una lingua multilingue e una voce chiara da capire.
Per convertire il parlato in testo, l'opzione migliore è sphinx4-5prealpha . Do un pollice, perché ha un riconoscimento e una grammatura modificabili, flessibili e modificabili.