Android: reconnaissance Vocale
[éventuellement en double] Mais je n'ai pas trouver de réponses à mes questions ci-dessous.
J'ai fait quelques recherches sur la reconnaissance de la voix pour les deux derniers jours et je n'ai pas eu de réponses à mes questions:
- Est-il possible d'exécuter la reconnaissance de la voix en tant que service? Je voudrais mettre en place quelque chose comme ceci: j'ai besoin d'appeler un numéro, si mon téléphone par reconnaissance vocale est en mode veille.
- N'reconnaissance vocale fonctionne correctement pour détecter les mots quand je suis dans un train, bus, etc?
- Est-il un capteur pour détecter la voix en dehors de la reconnaissance vocale?
- De reconnaissance de la voix fonctionne correctement, l'utilisateur doit-il besoin de parler plus près du téléphone?
- Entendez-vous la voix de la reconnaissance ou de reconnaissance de la parole? (Lire le reconnaissance vocale> extrait: "la Reconnaissance de la Voix des moyens d'identification de la personne qui parle et il est souvent mal appliquée pour dire "Reconnaissance Vocale" - l'identification de ce qui est dit.")
- La prochaine fois, essayez de lancer une recherche sur une question à la fois et poser une question à la fois. Qui vous aidera à trouver la réponse.
Vous devez vous connecter pour publier un commentaire.
1) C'est la bonne approche pour mettre de reconnaissance vocale dans un service, comme il est fait dans les api de Google, où les méthodes de rappel sont utilisés pour obtenir des résultats. Pour le faire fonctionner de façon continue, le service doit composer avec de wakelock qui permettra d'éviter de tomber dans un mode de veille. Plus d'information est disponible ici Wake serrures android de service récurrents Il a un gros inconvénient, haute de l'utilisation de la batterie, la cause par le travail continu de l'UC et coninuous calculs de la réception des données audio. (Peut être réduit avec des filtres, des seuils, etc.)
2) de reconnaissance Vocale n'est pas une tâche simple. Il désire le grand nombre de calcul et de données de référence. Si l'entrée audio n'est pas clair (bruit, beaucoup de voix humaines, etc.), il est plus difficile d'obtenir un bon de sortie. Ce qui peut être fait pour rendre une meilleure précision est, filtre d'entrée audio: bruit de la suppresion, filtre passe-bas etc. Vous ne pouvez pas s'attendre à une précision de 100%, mais 80 à 95% peuvent être atteints.
Plus difficile est de filtrer le nombre de voix humaines. Mais il peut être utilisé une simple amplitude (audio niveau de force) des algorithmes adaptatifs seuil qui décide quand le mot commence et se termine. L'idée est que la voix est la plus forte = le plus proche pour téléphone/appareil. Ainsi, selon 4) précision est meilleure lorsque l'utilisateur parle à proximité du microphone, parce que c'est la voix la plus forte.
3) je ne sais pas ce que tu veux dire par capteur, mais il existe des algorithmes de simplement détecter des voix humaine plutôt que de décoder les mots. Ces algorithmes sont appelés Détection d'Activité Vocale (VAD) du code doit être trouvé dans Speex de la documentation de projet http://www.speex.org/
Méthode la plus simple pour gérer la reconnaissance de la voix est d'utiliser Google Speech api qui est très bon, et la reconnaissance de beaucoup de langues, mais besoin d'une connexion Internet et il faut un certain temps pour obtenir le résultat.
Plus rapide est la CMU Sphinx, mais il a peu de modèles de langage, a besoin de plus de mémoire RAM et proccesor le calcul puisque tous le décodage est effectué sur l'appareil. À mon avis, il est très bon quand dicitionary (les mots qui sont revognized) est les petits comme les commandes (à gauche,à droite, en arrière, arrêt, démarrage, etc).