Question

Je suis en train d'écrire une application qui se comporte similaire à la reconnaissance vocale existante mais va envoyer les données sonores à un service Web exclusif pour effectuer la partie de la reconnaissance vocale. J'utilise la norme MediaRecord (qui est codé AMR-NB) qui semble être parfait pour la reconnaissance vocale. Les seules données fournies par la présente est l'amplitude par l'intermédiaire du getMaxAmplitude () Méthode .

J'essaie de détecter le moment où la personne commence à parler de telle sorte que lorsque la personne cesse de parler pendant environ 2 secondes, je peux procéder à l'envoi des données sonores au service Web. En ce moment, je me sers d'un seuil pour l'amplitude que si sa passe au-dessus d'une valeur (à savoir 1500), alors je suppose que la personne parle. Ma préoccupation est que les niveaux d'amplitude peuvent varier selon l'appareil (à savoir le Nexus One v Droid), donc je suis à la recherche d'une approche plus standard à ce qui peut être dérivée des valeurs d'amplitude.

P.S. Je regardais amplitude graphique, mais il ne fournit pas une façon de le faire avec juste l'amplitude.

Était-ce utile?

La solution

Eh bien, cela pourrait ne pas être d'une grande aide, mais que diriez-vous de commencer en mesurant le bruit décalage capté par le microphone de l'appareil par l'application, et d'appliquer le seuil en fonction dynamique à ce sujet? De cette façon, vous le rendre adaptable aux différents microphones des appareils et aussi à l'environnement à l'utilisateur l'utilise à, à un moment donné.

Autres conseils

1500 est trop faible d'un nombre. La mesure de la variation d'amplitude fonctionnera mieux. Cependant, il en résultera encore détections manquer.

Je crains que la seule façon de résoudre ce problème est de savoir comment reconnaître un simple mot ou le ton plutôt que de simplement détecter le bruit.

La plupart des smartphones sont livrés avec un capteur de proximité. Android a API pour l'utilisation de ces capteurs. Ce serait suffisant pour le travail que vous avez décrit. Lorsque l'utilisateur déplace le téléphone près de son oreille, vous pouvez coder l'application pour commencer l'enregistrement. Il devrait être assez facile.

classe capteur pour Android

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top