문제

내 이전에 대한 후속 조치로 의문, 내 스마트 폰 애플리케이션이 특정 음악 노트를 감지하기를 원한다면, 들어오는 소리가 x 센트로 메모를 오프 키로 만들기 위해 일정량의 퍼지가있는 악보인지 아닌지 여부를 알아야합니다. .

이를 감안할 때 속도와 정확성에 대한 다른 사람들보다 우수한 방법이 있습니까? 즉, 당신이 찾고있는 메모가 #C3라는 것을 알면 해당 메모가 있는지 여부를 가장 잘 알 수 있습니까? 나는 단일 음표를 찾는 것이 모든 파형을 분리 한 다음 기본 주파수의 결과를 살펴 보는 것보다 쉽다고 가정합니다.

내 원래 질문에 대한 응답에서 한 응답자는 메모가 특정 범위 내에 있다는 것을 알고 있다면 자기 상관이 잘 작동 할 수 있다고 제안했습니다. 특정 노트 (+/- x 센트)의 존재 유무 만 확인해야한다면 자기 상관이 더 잘 작동하는지 궁금합니다.

그 방법은 다음과 같습니다.

  • 키스 FFT
  • fftw
  • 이산 웨이블릿 변환
  • 자기 상관
  • 제로 교차 분석
  • 옥타브 간격 필터
  • DWT

모든 생각은 감사 할 것입니다.

도움이 되었습니까?

해결책

설명 하듯이 특정 피치가 있는지 확인하면됩니다. 매우 간단한 (빠른) 검출기는 한 기간의 파형과 동등한 것을 기록한 다음 다른 기간을 기록하고 과도하게 단순화 된 (단일 래그) 자기 상관과 같은 상관 관계가 있습니다. 일치가 높은 경우, 기록 된 파형이 같은 기간에 반복되거나 고조파가 반복되고 있음을 알 수 있습니다.

예를 들어, 1 kHz를 감지하고 1ms의 오디오 (48 kHz에서 48 개의 샘플)를 기록한 다음 1ms를 추가로 기록한 다음 비교합니다 (상관 관계 = 모든 샘플과 합계). 그들이 줄을 서면 (일부 임계 값 이상의 상관 관계), 당신은 1 kHz, 2kHz, 3kHz 또는 다른 배수로 듣고 있습니다. 여러 기간을 수행하면 경기에 대한 자신감이 더 높아집니다.

진정한 자기 상관은 특히 고조파, 특히 그것이 당신에게 중요한 경우 어떤 고조파를 알려줄 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top