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
Preferencias (ninguna requerida)
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.
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,
De la descripción en la tienda Google Play:
Grabadora de voz inteligente
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)
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 dqueue
para 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.
Python también se puede usar para trazar y analizar los archivos resultantes como en este blog .
solo use Grabadora de audio automática , tiene todo lo que está buscando, incluida la grabación automática cuando hay algo de ruido.
RockPaperLz- Máscara o ataúd
mohitgarg
mohitgarg
RockPaperLz- Máscara o ataúd