2015-01-30 3 views
-3

나는 mp3를 받아서 리듬과 멜로디를 분리 할 node.js 모듈을 작성하려고합니다. 어떤 C++ 라이브러리에서이 작업을 수행 할 수 있습니까? 아니면 누구나 시작할 수있는 아이디어가 있습니까? 사운드 파일의 파형을 분석하고 표시하는 node.js 라이브러리가 있습니다. 따라서 두 개의 트랙 (멜로디와 리듬 중 하나)을 만드는 것 외에는 비슷하게 만들고 싶습니다.사운드 파일 분석 C++

+3

오디오 프로세싱 소프트웨어를 꽤 자주 쓰는 사람으로서 이것은 C++ 모듈을 포함하고 "리듬과 멜로디 분리"보다 훨씬 더 복잡합니다. Melodyne-esque 기능에 대해 이야기하고 있습니다.이 기능은 매우 진보되었으며 확실히 (아직) 오픈 소스가 아닙니다. – Qix

+0

저는 이것이 프로그래밍 문제에 관한 질문이 아니라는 것을 알고 있습니다. 저는 어디서부터 시작해야할지 생각하고 있습니다. 이것이이 포럼이 아니라면 더 좋은 곳이 있습니까? – richbai90

+0

StackOverflow는 포럼이 아닙니다 :) 자원을 요구하기 때문에 질문은 기술적으로 주제와 관련이 없습니다. 내가 너에게 단서를 줄 것이다. 이런 종류의 것은 존재하지 않는다. – Qix

답변

3

이는 한 번에 대답 할 FAR 너무 광범위하지만, 가이드로 :

  1. 의 포장을 풀고 기본 WAV 파일로 MP3. 이것은 매우 어렵지 않으며 이미 많은 라이브러리가 있다고 확신합니다.
  2. 이제 주파수에 따라 wav 파일의 내용을 필터링해야합니다. - 낮은 주파수는 리듬이며, 높은 주파수는 멜로디입니다 (적어도 간단한 버전에서는). 푸리에 변환을 사용하여 샘플의 크기 대신 주파수를 분석 할 수 있습니다.

이제 주파수를 기반으로 한 디지털 필터링을 수행하는 것이 쉽지 않습니다. 그것에서 아주 좋은 일을하는 것은 더욱 어렵습니다.

+0

시도하는 것이 좋습니다. 매우 어려운 문제입니다. 이를위한 예술의 용어는 * 소스 분리 *입니다. 실제로 완전히 달성하는 것은 불가능합니다. 그러나 실제로는 신호의 고주파수 성분이 리듬에 관심이 있습니다. 예리한 전환 (onset)을 감지하는 데 관심이 있습니다. 멜로디의 기본은 약 60-800Hz 범위입니다. 그러나 이것은 지나치게 단순합니다. – marko