2011-04-21 2 views
12

Je souhaite créer un fichier de modèle de langage ARPA avec près de 50 000 mots. Je ne peux pas générer le modèle de langue en transmettant mon fichier texte à l'outil de langage CMU. Y at-il un autre lien disponible où je peux obtenir un modèle de langage pour ces nombreux mots?Création d'un fichier de modèle de langage ARPA avec 50 000 mots

+0

Voulez-vous dire dire que vous avez besoin d'une collection de mots anglais? –

Répondre

10

Je pensais que je répondrais à celui-ci puisqu'il a quelques votes, bien que basé sur les autres questions de Christina je ne pense pas que ce sera une réponse utilisable pour elle puisque un modèle de langue de 50.000 mots ne sera certainement pas avoir un taux d'erreur de mot acceptable ou une vitesse de reconnaissance (ou très probablement même fonctionner longtemps) avec des systèmes de reconnaissance intégrés pour iOS qui utilisent actuellement ce format de modèle de langage, en raison de contraintes matérielles. J'ai pensé qu'il valait la peine de le documenter car je pense que cela pourrait être utile aux autres utilisateurs d'une plate-forme où garder un vocabulaire de cette taille en mémoire est plus viable, et peut-être aussi pour les futurs modèles d'appareils. Je ne connais pas d'outil basé sur le Web tel que l'outil de base de connaissances de Sphinx qui va permettre de créer un corpus en texte clair de 50 000 mots et de renvoyer un modèle de langage ARPA. Mais, vous pouvez obtenir un modèle de langage DMP de 64 000 mots déjà complet (qui peut être utilisé avec Sphinx sur la ligne de commande ou dans d'autres implémentations de plate-forme comme un fichier ARPA .lm) avec les étapes suivantes:

  1. Téléchargez ce modèle de langue à partir du site de la parole CMU:

http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US%20English%20HUB4%20Language%20Model/HUB4_trigram_lm.zip

Dans ce dossier est un fichier appelé language_model.arpaformat.DMP qui sera votre modèle de langage.

  1. Téléchargez ce fichier à partir du site de la parole CMU, qui deviendra votre dictionnaire de prononciation:

https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/pocketsphinx/model/lm/en_US/cmu07a.dic

Convertir le contenu de cmu07a.dic en majuscules des lettres.

Si vous le souhaitez, vous pouvez également rogner le dictionnaire de prononciation en supprimant les mots de ce qui ne se trouvent pas dans le language_model.vocabulary corpus (ce serait un problème de regex). Ces fichiers sont destinés à être utilisés avec l'un des modèles acoustiques Sphinx de langue anglaise. Si le désir d'utiliser un modèle de langue anglaise de 50 000 mots est motivé par l'idée de faire une sorte de reconnaissance généralisée du grand vocabulaire et non par la nécessité d'utiliser 50 000 mots très spécifiques (par exemple, quelque chose de spécialisé comme un dictionnaire médical ou une liste de contacts de 50 000 entrées), cette approche devrait donner ces résultats si le matériel peut le gérer. Il va probablement y avoir des paramètres Sphinx ou Pocketsphinx qui devront être modifiés, ce qui optimisera les recherches à travers cette taille de modèle.

+1

Oreilles ouvertes nouvelle version qui est 0,91 ont une fonctionnalité intégrée de création de fichier de modèle de langue .Qui a vraiment résolu mon problème.Et espérons que tout le monde va obtenir de l'aide – Christina

+0

Salut Christina, heureux d'entendre que la génération de modèle de langage dynamique OpenEARS .91 fonctionne bien pour vous, mais je suis étonné d'entendre que cela fonctionne pour générer un modèle de langue de 50 000 mots. Est-ce que cela fonctionne sur l'appareil ou seulement sur le simulateur? – Halle

+0

Je demande juste par curiosité puisque je n'avais aucune idée qu'il serait utilisé ou utilisable pour des modèles aussi grands quand j'ai conçu la classe LanguageModelGenerator - je pensais de l'ordre de 10-500 mots pour le commandement et le contrôle spécifique au contexte modèles de langue. – Halle

0

Quelle est la taille de votre corpus d'entraînement? si ce n'est que 50000 mots, ce serait minuscule/trop petit.

En général, vous pouvez soit utiliser la boîte à outils de la CMU ou HTK

documentation détaillée pour la reconnaissance vocale HTK Toolkit ici: http://htk.eng.cam.ac.uk/ftp/software/htkbook_html.tar.gz

est ici aussi une description de la boîte à outils SLM CMU: http://www.speech.cs.cmu.edu/SLM/toolkit_documentation.html

voir aussi: Building openears compatible language model

Vous pouvez prendre un modèle de langage plus général, basé sur un corpus plus grand et interpoler votre plus petit Modèle de langage avec cela .. par exemple un modèle de langage de back-off ... mais ce n'est pas une tâche triviale.

voir: http://en.wikipedia.org/wiki/Katz « s_back-off_model

Questions connexes