Pregunta

Estoy escribiendo una aplicación que se comportará similar a la de reconocimiento de voz existente, pero va a enviar los datos de sonido a un servicio web propio para realizar la parte de reconocimiento de voz. Estoy utilizando el MediaRecord estándar (que es AMR-NB codificado), que parece ser perfecto para el reconocimiento de voz. Los únicos datos proporcionados por esta es la amplitud a través de la getMaxAmplitude () método.

Estoy tratando de detectar cuando la persona comienza a hablar de modo que cuando la persona deja de hablar durante unos 2 segundos puedo procederá a enviar los datos de sonido para el servicio web. En este momento estoy usando un umbral para la amplitud que si su va más de un valor (es decir, 1500) entonces yo supongo que la persona está hablando. Mi preocupación es que los niveles de amplitud pueden variar según el dispositivo (es decir, Nexus One V Droid), así que estoy buscando un enfoque más estándar a esto que se pueden derivar de los valores de amplitud.

P.S. Miré a gráfica de amplitud pero no proporciona una manera de hacerlo con sólo la amplitud.

¿Fue útil?

Solución

Bueno, esto podría no ser de mucha ayuda, pero ¿Qué tal comenzar midiendo el desplazamiento de ruido captado por el micrófono del dispositivo por la aplicación, y aplicar el umbral dinámicamente basándose en eso? De esa manera usted que sea adaptable a los micrófonos de los diferentes dispositivos y también para el medio ambiente que el usuario lo está utilizando en, en un momento dado.

Otros consejos

1500 es demasiado baja de un número. La medición del cambio en la amplitud va a funcionar mejor. Sin embargo, todavía dará lugar a detecciones perder.

temo la única manera de resolver este problema consiste en encontrar la manera de reconocer una palabra simple o tono en lugar de simplemente detectar ruido.

La mayoría de los teléfonos inteligentes vienen con un sensor de proximidad. Android tiene API para utilizar estos sensores. Esto sería adecuada para el trabajo que usted describió. Cuando el usuario mueve el teléfono cerca de su oído, puede codificar la aplicación para empezar a grabar. Debe ser lo suficientemente fácil.

clase de sensor para android

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top