Pregunta

Supongamos que tiene una sala de conferencias y las reuniones se llevan a cabo en momentos arbitrarios e improvisados.Le gustaría mantener un registro de audio de todas las reuniones.Para que su uso sea lo más fácil posible, no se requeriría ninguna acción por parte de los asistentes a la reunión, solo saben que cuando tengan una reunión en una sala específica tendrán un registro de la misma.

Obviamente, simplemente grabar sin parar sería ineficiente, ya que sería un desperdicio de almacenamiento de datos y sería complicado examinarlos.

Supongo que hay dos formas básicas de hacerlo.

  1. La grabación simplemente comienza y se detiene según los umbrales de nivel de sonido.
  2. La grabación es continua, pero dividida en bloques de X minutos.Los bloques que no contienen contenido se descartan.

Me gusta más la segunda forma porque creo que hay menos riesgo de perder datos debido a inicios tardíos o fallas en los activadores.

Me gustaría implementarlo en Python y, si es posible, en Windows.

¿Sugerencias de implementación?

Consideraciones adicionales que probablemente merezcan sus propias preguntas:

  • El mejor formato de audio y compresión para este propósito.
  • cualquier forma de determinar cuántos hablantes están presentes, asumiendo que la identificación no es realista
¿Fue útil?

Solución

Este es uno de esos proyectos en los que va a ser definida más sobre lo que está en la mano listo para su reutilización el camino.

Lo más probable que sea más fácil para grabar y guardar los datos fuera en trozos (por ejemplo, piezas largas horas) de forma continua.

Formato va a depender de lo que en forma de herramientas de grabación y la biblioteca de procesamiento de audio. Usted puede incluso encontrar que utiliza dos. Un formato, como PCM codificada WAV para el registro y procesamiento, pero comprimido MP3 para su almacenamiento.

Una vez que haya un flujo de audio, necesitará tener acceso a él en una forma PCM (lista de valores de amplitud). Un sistema de promedios probablemente será lo suficientemente buena como para detectar cuando hay una conversación. atribuye la sintonización típico: * Nivel medio de energía para activar * La cantidad de tiempo que necesita para estar en el nivel de energía o por debajo de identificar parada y arranque (recomiendo dos valores diferentes) * Tamaño de ventana de análisis para promediar

En cuanto a número de participantes, a menos que encuentre una biblioteca que hace esto, no veo una solución fácil. He usado los motores de reconocimiento de voz antes y también puesto en práctica una cantidad razonable de procesamiento de audio y no he visto ninguna manera 'fácil' de hacer esto. Si se va a buscar, buscar a las universidades que hacen investigación de análisis de voz. Usted puede encontrar algunos prototipos que se pueden modificar para darle a su software de algunas pistas.

Otros consejos

Yo creo que tendrá dificultades para hacerlo por completo en Python. Estás hablando de hacer de frecuencia / amplitud de análisis de archivos MP3. Usted tendría que abrir el archivo y buscar un umbral de volumen, luego cortar las porciones que van por debajo de ese umbral. Averiguar cuántos altavoces están presentes requeriría el procesamiento de señales muy avanzada.

Una somera búsqueda en Google no encontró nada para mí. Es posible que tenga mejor suerte en busca de una solución de plataforma off-the.

Como aside- puede haber complicaciones legales para tener un grabador de funcionamiento 24/7 sin dejar que la gente sabe.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top