Grabador de audio especializado para Android

Necesito grabar sonidos que emanan de equipos mecánicos. Estos sonidos ocurren aleatoriamente cada pocas horas y solo duran aproximadamente de 1 a 3 segundos.

Para realizar esta tarea, necesito una grabadora de audio que esté funcionando constantemente, pero que solo grabe cuando haya audio presente. Hay muchas grabadoras de audio que son "activadas por voz", pero no he encontrado ninguna que funcione porque en el momento en que se activan, los sonidos que estoy tratando de capturar han concluido.

Para lograr esto, necesito una aplicación que grabe continuamente, pero solo mantenga el audio de "activación de sonido menos x segundos". No hay problema si 'x' está fijo.

Requisitos

  1. Compatible con AndroidKitKat
  2. Puede funcionar durante al menos 4 horas sin supervisión

Preferencias (ninguna requerida)

  1. Gratis (gratis)
  2. Bajo consumo de batería durante el funcionamiento
  3. Puede funcionar durante al menos 12 horas (o más) sin supervisión

Actualización: ¡Felicidades! He otorgado la recompensa a @4mohit por su respuesta. Todavía estoy realizando pruebas para ver si funciona de manera confiable para mi tarea. Gracias también a Steve Barnes por su respuesta creativa.

Como todavía estoy en la fase de prueba, estoy abierto a más respuestas. Publicaré más actualizaciones a medida que avancen las pruebas.

Respuestas (3)

Si está buscando una grabadora de voz que pueda grabar audio continuamente y salte el silencio y pueda funcionar durante 4 horas sin supervisión, entonces creo que debería buscar en Smart Voice Recorder . Cumple con sus requisitos de,

  • ser gratis
  • Puede funcionar durante 12 horas.
  • Puede grabar en segundo plano incluso cuando la pantalla está apagada (asegúrese de tener suficiente espacio en disco en su dispositivo)
  • Puede grabar desde 8 kHz (calidad de teléfono) hasta 44,1 kHz (calidad de CD)

De la descripción en la tienda Google Play:

Grabadora de voz inteligente

Captura de pantalla de Smart Voice Recorder, actualmente grabando

Grabadora de voz inteligente diseñada para grabación de sonido de alta calidad durante mucho tiempo con omisión de silencio relativo sobre la marcha. Por ejemplo, puede usarlo para grabar conversaciones de sueño nocturno (o ronquidos :)), reuniones de negocios, un día normal de su niñera, cómo canta o toca la guitarra, etc. ¡Es fantástico! Y puede usarlo como grabadora de voz regular con una interfaz de usuario simple y agradable. ¡Darle una oportunidad! :)

NOTA: Esta aplicación no es una grabadora de llamadas. Puede que no funcione correctamente en algunos teléfonos. La interfaz de usuario aún no está optimizada para tabletas. Las grabaciones en este formato no se pueden enviar por mensaje de texto/sms/mms. No dude en enviarme comentarios por correo electrónico si tiene alguno.

Características:

  • control de sensibilidad automático y manual para el modo Saltar silencio (Beta)
  • analizador de espectro de audio en vivo
  • codificación wave/pcm con frecuencia de muestreo ajustable (8-44 kHz)
  • grabación en segundo plano (incluso cuando la pantalla está apagada)
  • herramienta de calibración de ganancia de micrófono
  • guardar/pausar/reanudar/cancelar el control del proceso de grabación
  • almacenamiento y cambio de directorio (predeterminado: sdcard/SmartVoiceRecorder)
  • el tiempo de grabación restante se muestra en la pantalla de inicio, limitado solo por el espacio disponible en su almacenamiento (y límite tecnológico de 2 GB por archivo)
  • lista de grabaciones fácil de usar
  • enviar/compartir una grabación por correo electrónico, whatsapp, dropbox, etc.
  • establecer una grabación como tono de llamada, alarma o notificación con un solo clic

Los permisos que necesita esta aplicación son:

  • acceso a Internet (para mostrar anuncios y recopilar algunas estadísticas)
  • escribir en almacenamiento externo (para almacenar grabaciones)
  • grabar audio
  • wake lock (para evitar que el dispositivo entre en modo de suspensión)
  • configuración de escritura (para poder configurar el tono de llamada/notificación/alarma predeterminados del sistema)
  • facturación (para la opción en la aplicación para desactivar los anuncios)
Gracias por la recomendación. Desafortunadamente, casi todas estas grabadoras de voz perderán los primeros 250ms a 1s de la grabación y, por lo tanto, no funcionarán para esta aplicación. Esto se debe a que en realidad no comienzan a grabar hasta que detectan una cantidad suficiente de audio. ¿Sabes si esta aplicación en particular funcionará para el propósito indicado?
Sí, seguro que puede funcionar. No está activado por voz, por lo que puede grabar un sonido durante mucho tiempo.
Y puede eliminar todo el espacio vacío de la grabación. Y también tiene un analizador de espectro de audio en vivo
¡Felicitaciones! He otorgado la recompensa a @4mohit por esta respuesta.

Si puede usar una computadora portátil en lugar de un teléfono móvil, puede hacerlo con python + pyaudio . La muestra de registro se parece a:

"""PyAudio example: Record a few seconds of audio and save to a WAVE file."""

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

Pero podría modificar esto fácilmente para verificar si los niveles de sonido han superado un umbral determinado y si se ha excedido para grabar el conjunto actual de fotogramas en un archivo con el nombre de la hora y la fecha.

Determinar si el nivel sonoro ha superado un determinado umbral debería ser tan sencillo como:

loudest = max([max(chunk) for chunk in frames])
if loudest > THRESHOLD:
   # Save your frame

pero consideraría usar a dqueuepara almacenar su cuadro y una vez que se alcanza la longitud del cuadro, saque un trozo de un extremo antes de empujar hacia el otro, si está grabando, guarde el trozo, de lo contrario, tómelo y deséchelo. Luego, al obtener cada fragmento, simplemente verifique el máximo de ese fragmento y, si está por encima del umbral, establezca un contador para el tamaño del marco más el exceso deseado y, si no hay un archivo de onda abierto actual, abra uno con el nombre basado en el momento, si no lo hay, decrementa el contador si es superior a 0 y escribe en el archivo, cuando llega a 0 cierra el archivo.

  • Libre
  • Android No creo que pyaudio haya sido portado a Android, así que no
  • El tamaño de su marco determinará la cantidad de tiempo antes de que se grabe el sonido. También puede sobrepasar el final de los sonidos por un tiempo seleccionado.
  • Las marcas de tiempo en los nombres de los archivos le permitirían ver cuándo fueron los sonidos.

Python también se puede usar para trazar y analizar los archivos resultantes como en este blog .

Muy agradable. ¿Es este un script fácilmente disponible o simplemente lo preparaste tú mismo?
La secuencia de comandos de ejemplo está disponible: debe ajustar un poco para obtener lo que necesita, pero debería poder hacerlo con bastante facilidad.
También te puede interesar zulko.github.io/blog/2014/07/04/… que utiliza mecanismos similares para detectar las partes importantes de los videos de partidos de fútbol.
Gracias por las ideas creativas Steve!

solo use Grabadora de audio automática , tiene todo lo que está buscando, incluida la grabación automática cuando hay algo de ruido.

Foto

Esa aplicación no se ha actualizado durante más de 2,5 años. ¿Sigue funcionando de manera confiable en Kitkat (especialmente considerando las cosas de la tarjeta SD)? ¿Cumple con todos los demás requisitos, por ejemplo, bajo consumo de batería (cuán bajo, según su experiencia/información)? ¿Qué lo hace recomendable (preferiblemente por experiencia personal)? Lea nuestra discusión sobre qué hace que una respuesta sea de alta calidad y vea si puede mejorar su publicación. ¡Gracias!