2009-09-23 5 views
9

C++를 사용하여 실시간 피치 탐지를 시도하고 있습니다. performous (http://performous.org/)에서 일부 코드를 테스트하고 있는데, 그 외 모든 것이 나를 위해 작동하지 않기 때문입니다. 나는 이것이 작동한다는 것을 알고 있지만, 나는 단지 그것을 작동시키지 않는다. 나는 이것을 몇 주 동안 지금 해보았으며 어떤 피치 감지 코드도 작동시키지 못했습니다.FFT를 사용한 실시간 피치 감지

+5

"일할 수 없습니다"는 뜻입니까? (컴파일되지 않을 것인가? 실행되지 않을 것인가?) 컴퓨터가 화염에 빠지게된다. –

+0

컴파일은되지만 0에서 1024까지 실행되는 주파수를 출력한다. – Niall

+0

무엇이 잘못 되었는가? Middle C는 440Hz이므로 마이크를 샘플링하면 범위가 적당 해 보입니다. 어떤 frequencys를 기대합니까? – AShelly

답변

10

마이크에서 입력을 사용하는 대신 알려진 단일 주파수의 데이터를 만들어 프로그램을 통해 실행하고 올바른 결과를 얻을 수 있는지 확인해야합니다. 그런 다음 고조파를 추가하여 효과가 있는지 확인할 수 있습니다. 실제 데이터는 초기 테스트에 너무 가변적입니다.

1

뛰어난 오디오 코드에는 노래 (및 기타 유사한 음색)에만 적합하도록 최적화, 주파수 제한 및 휴리스틱이 있습니다. 최적의 범위는 약 80-600 Hz입니다.

1

C/C++/Obj-C Real-time algorithm to ascertain Note (not Pitch) from Vocal Input

확인이 링크를 허용 대답.

나는이 문제에 대한 해답을 찾기 위해 너무 바빴다. 그리고 이것은 내가 찾은 가장 유용한 자료이다.

이 Performous이 알고리즘을 사용하는 것처럼 보이지만 그것은 Performous 코드에서

편집을하기 어렵다 : 나는 마침내 작업 솔루션을 관리했다. 관심있는 sunfish라면 이메일주세요. gmail | c0m