Acabo de presentar un proyecto mío sobre reconocimiento de sonido mediante redes neuronales. Dije durante la presentación que decidí reconocer solo un sonido (notas musicales provenientes de una guitarra) en cualquier momento, explicando que reconocer múltiples sonidos es muy difícil o imposible.
Aplico FFT en la onda de sonido y la introduzco en una red neuronal. Mi pregunta es, si tuviera que grabar varios sonidos a la vez, ¿no podrían los datos de FFT ser exactamente los mismos para diferentes sonidos?
Quiero decir, si combinas y obtienes una onda que es una línea recta. También obtienes una línea recta para y . Entonces, dos conjuntos diferentes de ondas dan la misma onda combinada, que tendrá los mismos datos de FFT.
Pero me confundí porque el profesor dijo que siempre puedes descomponer el sonido en sus elementos originales (por ejemplo, tomar un acorde que tenga 6 notas diferentes tocadas individualmente) porque los datos están en el dominio del tiempo. ¿Realmente siempre se puede descomponer una onda de sonido en sus componentes? ¿Qué pasa con el caso anterior? Explicó además que en el "dominio del espacio" puede tener el problema que mencioné anteriormente, pero ¿no en el dominio del tiempo?
PD: No sé si este es el sitio de Stack Exchange correcto para hacer esta pregunta.
La mayoría de los sonidos (incluso el sonido de una "nota única") contienen múltiples frecuencias. Para los sonidos puros, existe la frecuencia fundamental y sus armónicos, pero casi cualquier sonido "real" contiene algunos componentes adicionales, debido a la envolvente del sonido (por ejemplo, el hecho de que una cuerda debe tocarse y luego decae) o debido al muestreo. (su muestra es finita, por lo que habrá algunos efectos debido a este truncamiento de la onda de sonido).
Cuando haga una transformada de Fourier, verá todos los componentes de frecuencia. Es bastante fácil detectar el tono de varias cuerdas tocadas al mismo tiempo en, por ejemplo, un acorde de piano. Ahora, dependiendo de su definición de "reconocer" diferentes sonidos, puede ser difícil detectar dos notas que suenan simultáneamente pero separadas por una octava (de modo que un sonido en esencia cubre los armónicos del otro). El oído es notablemente bueno para detectar la diferencia; por ejemplo, podemos decir que la nota más alta no está exactamente en fase y que la amplitud del segundo armónico (la fundamental de la nota más alta) es más alta de lo que sería si era solo el segundo armónico de la nota más baja.
Por supuesto, si toca dos notas de la misma frecuencia y fase, entonces no podrá distinguirlas (excepto por el hecho de que la amplitud será mayor de lo que espera de una "nota única", tal vez). Pero los sonidos "reales", de los instrumentos musicales, tendrán firmas suficientemente únicas para que puedas "verlos".
Es posible que le interese una respuesta que escribí hace un tiempo en la que usé una aplicación simple de iPhone para analizar el espectro del sonido de una moneda al caer ; esto muestra que hay múltiples armónicos para diferentes sonidos, y que lo más probable es que puedas ver (observando el espectro combinado) la suma de estos dos sonidos y diferenciarlos. De hecho, sería una aplicación divertida de su trabajo para detectar "¿cuánto dinero se me cayó?".
cristy
It is quite easy to detect the pitch of multiple strings struck at the same time in, say, a piano chord
. Sabía que podía detectar acordes completos y luego, en función del conocimiento musical, tocar las notas individuales. El profesor dijo que hay software que reconoce las notas individuales que se tocaron en un acorde. Tiendo a creer que ese software solo reconoce el acorde y luego, usando un diccionario, recupera las notas que forman ese acorde. Apuesto a que si tocas un acorde que no se usa en la música, no reconocerá las notas.floris
el fotón
alefcero
floris
cristy
floris