2011-04-11 4 views
1

언제든지 곡의 음조를 가져오고 싶습니다. 나는 나중에 피치를 저장할 계획이다. 특정 지점에서 피치를 재생하려면 mp3 파일이나 wav 파일을 어떻게 읽어야합니까? enter image description here 내가 노래의이 시점 ^에서 여기에 피치를 얻고 싶었다 말 :VB.net에서 피치 가져 오기

여기에 시각적 인 예이다.

감사합니다!

답변

1

문제는 예상보다 복잡합니다.

시간 영역 접근법 (즉, PCM 데이터로 직접 작동하는 접근법)이 있지만 주파수 영역 피치 탐지가 더 정확할 것입니다. 매우 단순화 된 개요 here을 읽을 수 있습니다.

Fourier Transform은 신호 영역을 시간 영역에서 주파수 영역으로 변환하는 데 사용할 수 있습니다 (즉, 신호의 주어진 기간에 대한 주파수 내용 분포). 거기에서, 당신은 그 블록 내의 주파수 스펙트럼을 분석 할 필요가 있습니다. 일반적인 경우에 샘플링 된 주파수 스펙트럼으로부터 피치를 추론하는 가장 좋은 방법은 이 없으므로 문제는 훨씬 더 어려워집니다. 위의 Wikipedia 기사는 이러한 알고리즘을 조사하기위한 기초를 제공합니다.

마지막으로, 특히 VB.NET을 사용하는 readingWAV file에 있지 않는 한, 이것은 실제로 언어에 무관심한 질문이라는 점에 유의할 가치가 있습니다.

+0

감사합니다. 일단 집에 도착하면 이것에 대해 살펴볼 것입니다. – FreeSnow

+0

나는 ** BASS ** 오디오 라이브러리를 사용하여 주파수 도메인 변환을 한 다음 피치를 계산합니다. 나는 그것을 사용하여 어떤 노래의 지문을 계산합니다. –

관련 문제