11

음표의 음조 탐지에 ANN을 사용하려고합니다. 네트워크는 단순한 2 계층 MLP로 입력은 기본적으로 DFT (평균 및 대수 분포)이며 12 개의 출력은 특정 옥타브의 12 노트에 해당합니다.신경망을 이용한 음조 탐지

네트워크는 일부 악기 (한 번에 한 음)로 연주되는 12 개의 음표 중 몇 가지 샘플과 "침묵"의 몇 가지 샘플로 학습됩니다.

결과가 실제로 좋습니다. 네트워크는 다른 악기로 연주 된 음을 정확하게 정확하게 감지 할 수 있으며, 소음에 비교적 잘 맞으며, 노래를 연주 할 때 완전히 건강 해지지도 않습니다.

그러나 목표는 다성 음악을 탐지 할 수있게하는 것입니다. 두 개 이상의 음을 함께 연주하면 두 개의 해당 뉴런이 작동합니다. 놀랄만 한 점은 네트워크가 실제로 이미 모노 포닉 음보다 일관되고 덜 정확하지만 어느 정도 (모노 포닉 샘플에 대해서만 교육을 받음)하는 것입니다. 제 질문은 어떻게 폴리 픽스 (polyphnic) 사운드를 인식 할 수있는 능력을 향상시킬 수 있습니까?

문제는 내가 실제로 왜 실제로 작동하는지 이해하지 못한다는 것입니다. 다른 노트 (또는 그들의 DFTs)는 네트워크가 훈련 된 공간에서 기본적으로 다른 포인트입니다. 그래서 내가 비슷한 소리 (근사치)를 인식하는 이유를 봅니다. 그러나 그것은 각 훈련 예제와 먼 지점을 형성하는 음표의 조합에 대한 출력을 "결론 짓는"방법이 아닙니다. (0,0) (0,1) (1,0) = (0)에 대해 훈련 된 것과 같은 방식으로 (1,1) = (1)이라고 결론 지을 것으로 예상되지는 않습니다.

위력을 발휘하는 것은 가능한 한 많은 폴리 ​​포닉 샘플로 네트워크를 학습하는 것입니다. 그러나 네트워크가 어떻게 Monophonic 샘플에서 아이디어를 막연하게 파악하고있는 것처럼 보이기 때문에 아마 여기에 더 많은 기금이 필요합니다.

모든 포인터? (길이에 대한 미안, btw :).

답변

6

그것이 작동하는 이유는 아마도 당신이 하나의 출력을 선택하도록 훈련시키지 않았다는 것입니다 (적어도 당신이하지 않았다고 가정 할 때). 단순한 경우 출력이 입력과 가중치의 내적 (dot product) 일 때, 가중치는 해당 피치의 일치 필터가됩니다. 모든 것이 선형이기 때문에 여러 개의 매치 된 필터가 동시에 좋은 매치를 볼 경우 여러 출력이 동시에 활성화됩니다 (대위법 노트의 경우처럼). 네트워크에 비선형 성이 포함되어있을 가능성이 있기 때문에 그림은 좀 더 복잡하지만 개념은 동일합니다.

개선 방법에 대해서는 대위법 샘플을 사용한 교육이 반드시 가능할 수 있습니다. 또 다른 가능성은 선형 필터로 전환하는 것입니다. 다성 음악의 DFT는 기본적으로 각 개별 사운드의 DFT를 합한 것입니다. 선형 입력의 조합이 출력의 해당 선형 조합이되기를 원하므로 선형 필터가 적절합니다.

덧붙여서, 왜 신경 네트워크를 사용하면 처음입니까? DFT를보고, 최대 주파수를 취하는 것이 더 나은 결과를 더 쉽게 얻을 수 있다고 생각합니다.

+3

매우 신뢰할 – finnw

2

나는 2 개의 사인파 간의 차이를 감지 할 때 CTRNN (Continuous Time Recurrent Neural Network)을 발전시켜 실험했다. 나는 적당한 성공을 거뒀지만 이러한 뉴런 뱅크 (즉, 달팽이관과 유사한 밴드)를 따라 할 시간이 없었습니다.

1

가능한 접근법 중 하나는 피치를 감지하는 짧은 코드 조각을 생성하기 위해 Genetic Programming (GP)을 사용하는 것입니다. 이 방법을 사용하면 피치 감지가 작동하는 방식에 대한 규칙을 생성 할 수 있습니다. 이는 사람이 읽을 수 있어야합니다.

3

Anssi Klapuri은 신경망을 사용하여 화음 녹음에 피치 검출을 수행하는 방법을 발표했다 존경 오디오 연구원입니다.

당신은 당신과 당신의 방법을 비교할 수 있습니다. 이것은 그의 석사 논문 인 에서 자동으로 음악을 녹음하는 신호 처리 방법에 자세히 설명되어 있습니다. 온라인에서 그의 많은 논문을 찾거나 자신의 알고리즘과 테스트 결과를 설명하는 책을 구입할 수 있습니다. 그의 석사 학위 논문은 아래에 링크되어 있습니다. 화음 녹음시

https://www.cs.tut.fi/sgn/arg/klap/phd/klap_phd.pdf

피치 검출은 매우 어려운 주제와 많은 논쟁을 포함 - 독서를 많이 할 수 있도록 준비. 아래의 링크에는 무료 앱인 PitchScope Player을 위해 개발 한 다성 녹음의 피치 감지에 대한 또 다른 접근 방법이 포함되어 있습니다. 내 C++ 소스 코드는 GitHub.com에서 사용할 수 있으며 아래 링크에서 참조됩니다. 무료 실행 가능 버전 PitchScope Player도 웹에서 사용할 수 있으며 Windows에서 실행됩니다. 그냥 최대 주파수를 복용

Real time pitch detection