web-dev-qa-db-fra.com

Java: Présentation des moteurs de synthèse vocale

Je suis maintenant à la recherche d'un framework Java Text to Speech (TTS). Au cours de mes investigations, j'ai trouvé plusieurs frameworks compatibles JSAPI1.0 partiellement) compatibles répertoriés sur --- ( Page Implémentations JSAPI , ainsi qu'une paire de cadres Java TTS qui ne semblent pas suivre les spécifications JSAPI ( Mary , Say-It) -Maintenant ). J'ai également noté qu'il n'existe actuellement aucune implémentation de référence pour JSAPI.

De brefs tests que j'ai effectués pour FreeTTS (le premier répertorié dans la page des implants JSAPI) montrent qu'il est loin de lire des mots simples et évidents (exemples: ABC, tableau noir). D'autres tests sont actuellement en cours.

Et voici la question (6, en fait):

  1. Lequel des frameworks TTS basés sur Java avez-vous utilisé?
  2. Lesquels, selon vous, sont capables de lire la plus grande base de mots?
  3. Qu'en est-il de leur qualité vocale?
  4. Et leurs performances?
  5. Quels frameworks non Java avec des liaisons Java sont là sur la scène?
  6. Lequel recommanderiez-vous?

Merci d'avance pour vos commentaires et suggestions.

51
DiaWorD

J'ai vraiment eu de la chance avec FreeTTS

18
pfranza
14
nvrandow

En fait, il n'y a pas de grand choix:

  • Festival, le plus ancien. Écrit en C++ mais a des liaisons avec Java.
  • eSpeak, rapide et simple, utilisé par Google Translate
  • mbrola

Java pur:

  • FreeTTS, dont le code a été porté à partir de Festival, puis a été open source et le développement a été arrêté.
  • MaryTTS - plus puissant et semble prêt pour la production.

Il existe également d'autres programmes propriétaires comme:

  • Acapella
  • Nuance Vocalizer

Si votre logiciel est uniquement Windows, vous pouvez utiliser l'API Microsoft Speech.

7
stokito

J'ai déjà utilisé Mary et j'ai été très impressionnée par la qualité des voix. Malheureusement, je n'ai utilisé aucun des autres.

7
Ryan

J'ai utilisé AT&T Natural Voices qui fournit des crochets JSAPI et MS SAPI. Il fournit des voix d'excellente qualité, un bon dictionnaire vocal "général", de nombreux contrôles sur la prononciation et plusieurs langues. C'est un peu cher, mais ça marche très bien.

Je l'ai utilisé pour lire la télémétrie de capteurs importante aux pilotes dans une application de capteur mobile. Nous n'avons eu aucune plainte concernant la qualité de la voix. Il avait environ 75% de précision prête à l'emploi avec des termes scientifiques et beaucoup plus (peut-être 90% +) avec un dialogue normal. Nous l'avons obtenue jusqu'à une précision d'environ 99% en utilisant des annotations (la plupart des erreurs étaient sur le plan scientifique avec des combinaisons de phonèmes inhabituelles).

Le processeur était un peu dur (nous fonctionnions sur une machine équivalente au Pentium-III et il poussait le CPU de pointe à 50% -75%). Celui-ci utilise un moteur vocal natif (compatible Windows, Linux et Mac) avec une interface Java.

Il y a une grande variété de voix et de langues ...

5
James Schek

J'ai contribué à Mary. Je pense que cela a du potentiel si quelqu'un plus intelligent que moi a séparé les voix HMM du cœur (ces voix n'ont pas besoin de grands ensembles de données et le son est correct). J'essaye également de faire un système d'événement pour que les freetts envoient des événements quand il dit un mot. J'ai eu du succès, mais il est cassé sous Linux maintenant. (probablement à cause d'un bug de minuterie).

1
i30817

J'ai utilisé FreeTTS mais j'ai eu un problème majeur pour que les voix MBrola s'exécutent sur My MacbookPro. J'ai réussi à faire fonctionner les voix MBrola sur Windows (douloureusement) et Linux. Je n'ai pas eu de chance de charger d'autres packages vocaux sur FreeTTS, ce qui est dommage car les voix fournies sont horribles IMO. En dehors de cela, j'ai également eu un peu de succès avec Cloudgarden, mais cela ne fonctionne que sur Windows AFAIK. Je serais intéressé d'entendre d'autres succès/échecs avec les moteurs vocaux car ce type de travail est particulièrement difficile. Je joue aussi un peu avec Sphinx4. Je viens de retirer JVXML (qui semble être basé sur Sphinx4) hier soir, mais je n'ai pas pu le faire fonctionner pour une raison étrange.

1
Cliff

Merci beaucoup à tous, l'astuce est dans la source FreeTTS. En bref: s'il est exécuté en tant que Java -jar freetts.jar some-more-args-here, il écrit moins de mots que lorsqu'il est exécuté à la manière de bin/Server.jar et bin/Client.jar.

1
DiaWorD

J'ai trouvé peu à l'aise avec MarryTTS Il a une voix multilingue et claire à comprendre.

Pour convertir la parole en texte, la meilleure option est sphinx4-5prealpha . Je donne un pouce, car il a une reconnaissance et une grammaire réglables, flexibles et modifiables.

0
susan097