Detección de tono en tiempo real usando FFT [closed]

2 minutos de lectura

avatar de usuario
Niall

Estoy tratando de hacer una detección de tono en tiempo real usando C++. Estoy probando un código de performous (http://performous.org/), porque todo lo demás no me ha funcionado. Sé con certeza que esto funciona, pero simplemente no puedo hacer que funcione. He estado intentando esto durante algunas semanas y no he podido hacer funcionar ningún código de detección de tono.

  • “no puedo ir a trabajar” significa ??? (¿no compilará? ¿no se ejecutará? ¿convierte su computadora en una bola de fuego?)

    – Jason S.

    23 de septiembre de 2009 a las 16:08

  • compila, pero genera frecuencias que van desde 0 hasta aproximadamente 1024

    – Niall

    23 de septiembre de 2009 a las 16:13

  • Echa un vistazo a la Biblioteca FMOD. Una de sus muestras hace detección de tono en tiempo real IIRC. La biblioteca es gratuita para código abierto y tiene un precio moderado para aplicaciones comerciales. Incluso si no desea utilizar la biblioteca, tal vez le proporcione alguna información.

    – Ryan Emerle

    23 de septiembre de 2009 a las 17:01

  • y que tiene de malo eso? La C media es de 440 Hz, por lo que ese rango parece razonable si toma muestras de su micrófono. ¿Qué frecuencias esperas?

    – A Shelly

    23 de septiembre de 2009 a las 19:06

En lugar de usar la entrada del micrófono, debe crear datos de una frecuencia única conocida y ejecutarlos a través del programa y ver si obtiene el resultado correcto. Luego puede agregarle armónicos y ver si eso funciona. Los datos del mundo real son demasiado variables para las pruebas iniciales.

El código de audio performous tiene algunas optimizaciones, límites de frecuencia y heurísticas que lo hacen solo adecuado para cantar (y otros tonos similares). El rango óptimo es alrededor de 80-600 Hz.

avatar de usuario
Pi

C/C++/Obj-C Algoritmo en tiempo real para determinar la nota (no el tono) de la entrada vocal

Compruebe la respuesta aceptada en este enlace.

He buscado en SO una respuesta a este problema, y ​​este es el recurso más útil que he encontrado.

Parece que Performous usa este algoritmo, pero es difícil distinguirlo del código de Performous.

EDITAR: finalmente he logrado una solución de trabajo. envíeme un correo electrónico si está interesado sunfish|gmail|c0m

  • me puedes decir como lo solucionaste?

    – ichherzcplusplus

    8 mayo 2020 a las 18:55

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad