Detector de silencio o medidor de amplitud de microfono

Iniciado por Juancfernandez, 4 Noviembre 2019, 05:23 AM

0 Miembros y 1 Visitante están viendo este tema.

Juancfernandez

Necesito un script que pueda ejecutar en windows que imprima la amplitud de audio del microfono en un txt o en un archivo.

Tengo 8 placas de audios, una para cada micrófono. Y para cambiar las escenas en obs studio uso una botonera que creé con visual basic que ejecuta los comandos websocket que es un plugin del obs.
Por eso quiero saber si es posible hacer un script que monitoree cada entrada de audio y que cuando suban los decibeles ejecute los comandos de websocket para cambiar de escena.
Creo que debería ser algún script que devuelva los db del micrófono, entonces si es mayor a cierto numero ejecute el comando de websocket. Si es menor se queda en bucle. Y así uno a cada entrada de las placas de audio.

O mejor aún, supongamos que se puede hacer un script que si el numero de db es mayor a cierto numero genera un archivo (1.txt). Una vez que lo genero espera 2 segundos, si bajó el db lo borra.
Y asi con cada uno. (2.txt) (3.txt).
Entonces si existe el archivo 1 2 y 3 va a mostrar una escena con las 3 personas hablando. Si se borro el 2.txt va a mostrar al 1 y al 3.


Hay un software que la subscripción por mes cuesta al rededor de 130 usd que se llama CLOSE radiotv y te ofrece éso, pero las cosas en Argentina no están muy bien como para poder darme ese lujo.

Espero que alguien pueda orientarme, sólo pude aprender algo de batch navegando por la web. Pero estoy dispuesto a aprender cualquier lenguaje

tincopasan

veo que haces la misma pregunta en otros foros, pero no mostrás nada que hayas intentado. Dudo que alguien te quiera hacer el script.
no hay forma de hacer eso en batch.Si ya usas visual basic, pues sigue aprendiendo.
También podrías aprender íingeniería inversa y parchar el soft, en caso de que no haya un crack ya circulando por la red.Si es una combinación de hardware y soft, lo más fácil de aprender es arduino y python.
La situación está muy mal, ahora es o no justifica que alguien te haga el trabajo gratis y otra cosa 8 placas de audio y 8 microfonos, no creo que sean de los más baratos si ya invertís en eso y bueno a hacer tripas corazón sy seguir inviertiendo.   

@XSStringManolo

Puede que te sirva javascript. Aquí todo lo necesario. https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
Tienes en Mozilla y en W3schools tutos de javascript desde 0.

Con media devices pillas los ID de microfonos cámaras, altavoces...
MediaDevices.enumerateDevices()

Depués con audio node manejas todo lo referente al audio desde que entra (microfono) hasta que sale(altavoz, representación gráfica, ...)
https://developer.mozilla.org/en-US/docs/Web/API/AudioNode

Para detectar sonidos, usa analyserNode getFloatFrequencyData
y minDecibels

Aquí una explicación más mundana y extensa sobre el tema del input:
https://developers.google.com/web/fundamentals/media/recording-audio

Espero que te sirva para lo que quieres hacer.

Si no puede que tengas que tirar por C/C++ con drivers o librerías que requieran más conocimientos/tiempo de aprendizaje.

SDL_Audio en C++ igual te sirve también que es muy sencilla/alto nivel, pero yo usé archivos .mp3 no input directo del micro, asique ese tema con SDL no tengo ni idea. Se manejaban fácil los canales de audio.

Suerte!