Android: Cómo detectar cuando un usuario deja de hablar en el micrófono
Tengo una aplicación de Android que comienza a grabar desde el micrófono cuando se inicia la aplicación. En mi versión actual, el usuario debe presionar un botón STOP para detener la grabación.
¿Cómo puedo detectar que el usuario ha dejado de hablar y usarlo para disparar la grabadora?
- Cómo detectar el golpe en el micrófono de dispositivo Android
- Analizador de sonido gráfico de micrófono
- Android: muestra el micrófono sin grabación para obtener la amplitud / nivel en vivo?
- Grabación de audio de muchas fuentes / micrófonos
- Cómo modificar la pila Bluetooth de Android para habilitar el fregadero A2dp
Similar a lo que se implementa en la funcionalidad de reconocimiento de voz en Android. El usuario deja de hablar y luego el discurso se traduce. He visto otras aplicaciones que lo hacen, como las aplicaciones Talking Tom tipo.
Como una nota lateral también me encantaría mostrar algún tipo de visual que indica que el micrófono está recibiendo sonido. Algo que muestre el nivel de sonido que viene.
Cualquier ayuda apreciada.
- Cómo grabar audio en la página web (iOS, Android, PC / Mac) - sin flash
- ¿Por qué es imposible utilizar el grabador de voz en el emulador de Android?
- Cómo ajustar el volumen del micrófono en Android?
- ¿Cómo detectar datos de entrada a través de la toma de audio?
- Consumo mínimo de batería para la supervisión del umbral del micrófono en Android
- Android, filtros de audio
- Acceso exclusivo al micrófono en Android
- ¿Grabar audio en Android con MediaPlayer como fuente?
Un enfoque consiste en usar subprocesos en la grabación y el proceso de análisis de potencia de voz en los bytes grabados, hay un código de ejemplo para su referencia: http://musicg.googlecode.com/files/musicg_android_demo.zip
¿Qué estás usando para grabar audio? Esto puede proporcionar algunas pistas:
Android.media.MediaRecorder:
- La constante MEDIA_RECORDER_INFO_MAX_DURATION_REACHED se puede utilizar con un onInfoListener.
Android.speech.SpeechRecognizer:
- Adjunte un RecognitionListener y llame onEndofSpeech ().
- ListView con un adaptador personalizado, agregando elementos uno por uno
- ES6 en JavaScriptCore y React Native