2017-04-24 1 views
-1

Je suis en train d'essayer de construire un jeu avec l'unité qui ont une reconnaissance vocale en arabe à utiliser sur les appareils Android. Je suis bloqué à l'outil de reconnaissance de la parole. lequel est le plus approprié avec l'unité? puis-je utiliser google API directement? Si oui, puis-je contrôler les données?moteur de jeu de l'unité, sphinx et discours google api sur android

ou sphinx est plus approprié pour le jeu sur un appareil Android? J'ai lu sur le sphinx mais le modèle acoustique de la langue arabe n'était pas disponible mais pour cela.

J'ai essayé de le faire en utilisant MATLAB mais cela me coûtera beaucoup de le construire sur mobile en utilisant le codeur MATLAB et aussi il n'a pas toutes les bibliothèques requises.

une aide à ce sujet?

Répondre

0

plugin pour l'unité officielle pocketsphinx est ici:

https://github.com/cmusphinx/pocketsphinx-unity-demo

modèle arabe doit être formé, oui. En fin de compte, vous pourriez avoir un bon système, mais vous devez y investir suffisamment.

+0

le lien fourni est pour OSX pas pour android. –

0

En ce qui concerne Speech et Android, la plate-forme Google est la meilleure solution. Le problème est qu'il nécessite un appel à la plate-forme. Il y a une version hors ligne que je n'ai pas essayée: Offline Speech Recognition In Android (JellyBean) Quant à la plate-forme Google, il y a des plugins bon marché pour 20 $ dans Asset Store. Problème principal, ils ne fournissent pas de détection continue, vous devez déclencher l'enregistrement et l'arrêter pour être envoyé. Peut-être que cela vous convient. Le problème est que si vous obtenez beaucoup d'utilisateurs, seulement 1h est gratuit par mois et vous finissez par payer l'utilisation du serveur. Je pense que c'est environ 0,015 $/minutes. D'autre part, il a plus de 80 langues de travail, y compris les accents locaux.

CMUSphynx est une autre solution. Les capacités opensource et offline en font un bon choix. Nous avons dû créer notre propre plugin Android pour Unity mais nous avons eu de mauvais résultats qui nous ont obligés à abandonner l'usage (avant de le demander, non, nous ne pouvons malheureusement pas fournir le plugin ... NDA impliqué). En outre, les langues sont limitées.

Il existe d'autres solutions comme Nuance, beaucoup mieux mais aussi beaucoup plus cher (très probablement hors de portée pour un jeu de démonstration). Leur API est beaucoup plus avancée et régulièrement utilisée dans des situations professionnelles comme la voix sur téléphone pour la redirection automatique. Il est également utilisé sur les appareils Vuzix. Étant donné que vous essaieriez Google Speech, oui, vous pouvez contrôler les données.

Fondamentalement, vous enregistrez un fichier audio, l'envoyez au serveur et le serveur répond avec un objet json contenant une liste de mots reconnus avec probabilité de succès.

Vous récupéreriez le premier et analyser le contenu. Considérant que vous souhaitez obtenir une action de mouvement et le résultat serait:

// This is the result from GSP 
    string str = "Move player one unit"; 

    if(str.Length == 4) 
    { 
     // Parse 
     string action = str[0]; 
     string actor = str[1]; 
     string amountStr = str[2]; 
     string unit = str[3]; 
     // Convert 
     float amoutFl = ParseAmount(amountStr); 

     // Check 
     if(hashSetActor.Contains(actor) == false){ // error } 
     if(hashSetUnit.Contains(unit) == false){ // error } 
     if(actionDictionary.Contains(action)) 
     { 
      // Act 
      actionDictionary[action](actor, amountFl,unit); 
     } 
    }