2013-03-14 3 views
1

그래서 기본적으로 나는 노래에있는 저음의 일반적인 영역 인 60 - 150 Hz 범위를 얻길 원합니다. 그것이이 범위에있을 때마다 나는 그것이 기능을하고 싶을 뿐이다. 범위 만, 내 문제는 내가해야 할 기능을 찾도록 노력했지만 행운이 없다. 여기 또는 좋은 기사를 보여줄 수있다. 이것에 대한 설명은 훌륭 할 것입니다! 나는 모든 도움에 감사 드리며 나는 내 자신을 계속 관찰 할 것입니다. 더 많은 설명이 필요한 경우 필요한 모든 정보를 제공 할 수 있습니다!사용자가 선택한 음악 파일을 사용하는 방법을 알고 싶을 때 특정 사운드 빈도를 감지합니다. ANDROID

오스틴.

업데이트 : 여기 알고리즘을 단순화 :

  1. 사용자들이 플레이어 위에
  2. 노래 부하를 원하는 노래를 선택
  3. 기능은 노래를 검색하고 노래를 통해 낮은 주파수를 찾아 출력은이다 무늬.

답변

1

1 단계)는 고속 푸리에 변환 마십시오 http://en.wikipedia.org/wiki/Fast_Fourier_transform

사용 FFT는 사운드의 조각을 취하고 주파수/시간 영역으로 변환 - 주파수가 재생되는, 및 방법 강렬하게와시로 무엇을 소리의 일부. 이것은 복잡한 소리와 상관없이 모든 소리가 서로 다른 주파수와 진폭의 하나 이상의 사인파로 근원적으로 만들어 질 수 있다는 속성에 의존하는 유용한 수학적 연산입니다.

혹시 스펙트로 그램을 검토 한 경우, foobar2000을 예를 들어, FFT 사용하여 구현됩니다 :

spectrogram from foobar2000 using fast fourier transform

내가 대신 당신이 잘하는 라이브러리를 찾을 자신을 FFT 구현하는 노력의 제안을 테스트되고 빠름 (http://en.wikipedia.org/wiki/FFTW과 같이 C로 쓰여짐)

2 단계) 이제 사용자가 듣고있는 부분을 FFT 했으므로 빈 도수를 검사하고 원하는대로 할 수 있습니다. 베이스 킥을 감지하는 것이 '이 주파수 빈은 높은 가치입니까?' 왜냐하면 저음을베이스 킥으로 착각 할 수 있기 때문입니다. juuust right로 작업하려면 더 많은 테스트와 조사가 필요할 수 있습니다.

EDIT : Delyan은 http://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html을 제안합니다.

+0

정말 고마워요! 나는 이것을 시험해보고 추가 시험을 시도 할 것이고, 나는 이제 시작점을 가진다! 그게 내가 바쁘게 할 필요가 있었던 것! :) – ChonBon

+0

두 가지 사소한 의견 - 1) [this] (http://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html)는 가장 합리적 인 비트 감지 알고리즘의 정교함 수준이며 2) 이산 시간 - 주파수 영역에서의 결과는 특별히 상세한 작업을하기에는 특히 까다 롭습니다. 심지어 창 함수의 선택이 결과에 엄청난 영향을 미칠 수 있기 때문에 사소한 일로 보일 수도 있습니다. – Delyan

관련 문제