Eliminar el ruido del registro de la muestra de audio mediante audiorecorder
Estoy haciendo TalkingTomcat como app. Estoy grabando la voz usando el grabador de audio android y el uso de libsonic estoy jugando sonido cambiando de tono. pero durante la reproducción de sonido da mucho ruido. Incluso estoy jugando la muestra de sonido utilizando pista de audio, entonces también dar ruido. Estoy utilizando la frecuencia de muestreo 44100 y MONO y 16 bits.
Si alguien me puede ayudar por favor, ayúdame. O darme otra manera de lograr esto.
- Utilice el botón del auricular para grabar sonido
- Análisis de audio de Android en tiempo real
- Cómo modificar la pila Bluetooth de Android para habilitar el fregadero A2dp
- Android: prueba si Audio-Record-Focus está disponible?
- Problemas con la configuración de clase MediaRecorder fuente de audio - setAudioSource () - parámetro no compatible
- Frecuencia de muestreo y ruido de Android MediaRecorder
- Pausar y reanudar la grabación de audio en Android
- Procesamiento de señales (decodificación de código Morse) con aplicación Android
- Grabar un archivo wav desde el micrófono en Android - problemas
- ¿Cómo mantiene Google Keep Speech Recognition mientras se guarda la grabación de audio al mismo tiempo?
- ¿Cómo grabar audio solo si está por encima de cierto nivel de sonido?
- Tratando de grabar audio, pero recibiendo el mensaje "mediarecorder se fue con eventos no controlados" y "Señal fatal 11 (SIGSEGV) ..."
- Androide. ¿Cómo hacer la grabación de audio con alto volumen?
Has jugado con NoiseSuppressor ? "La supresión de ruido (NS) es un preprocesamiento de audio que elimina el ruido de fondo de la señal capturada"
Usted puede hacer la eliminación de ruido en la etapa de pre-procesamiento. Aquí he filtrado el rango audible para el habla y la música. Encontré esto para ser muy eficaz durante mis pruebas en comparación con NoiseSuppressor. Los métodos de uso y utilidad,
recorder.read(data, 0, data.length); if(isAudible(data)) { // TODO further processing can go here } public static boolean isAudible(short[] data) { double rms = getRootMeanSquared(data); return (rms > 198 && 5600 > rms); } public static double getRootMeanSquared(short[] data) { double ms = 0; for (int i = 0; i < data.length; i++) { ms += data[i] * data[i]; } ms /= data.length; return Math.sqrt(ms); }
- ¿Cómo determinar la mayor resolución de vídeo y / o tasa de bits que un dispositivo (Android) puede reproducir?
- ¿Debería comprobarse la existencia del motor Text-To-Speech en nuevas plataformas android?