나는 많은 악기와 rylics을 가지고 표준 타이어 춤 노래가 있습니다. 나는 이것을 심벌즈 리듬 만있는 wav로 변형시켜야한다. 파이썬을 사용해야한다는 것을 알고 있습니다. 어떻게해야합니까? 고맙습니다.표준 타이어 댄스 wav 노래에서 심벌 (태국 악기) 리듬을 감지
답변
심벌 리듬은 대부분 특정 믹스의 고주파수에서 일 것입니다. 전에는 트랙을 들어 본 적이 없으므로 특정 악기와 관련하여 주파수가 낮아지는 지 알 수 없습니다. 그러나 직감에서 내 생각에 최선을 다하겠습니다.
심벌의 음향 효과가없는 낮은 드럼이나 보컬 (일반적으로 중음역 악기)을 필터링해야합니다 부품. 스펙트럼 분석기를 살펴보면, 의 주파수는 보통입니다. 심벌은 500Hz에서 5KHz까지 시작하여 진폭이 서서히 기울어집니다. 진폭은 5k-15k에서 15k에서 15k까지 떨어지며 하이 엔드가 원래 트랙에서 필터링 된 경우). 500Hz (또는 약간 높은 주파수) 이하의 것을 필터링하십시오. 보다 정확한 필터링을 원할 경우 심벌 히트에서 더 많은 음 콘텐츠를 필터링하는 봉투 팔로워 (envelope follower)를 찾고자 할 수 있습니다. 필터링을 많이하면 소리를들을 수있는 다른 악기가 줄어 듭니다.
이 작업에는 고역 통과 필터가 필요합니다. 파이썬에서 직접 작성할 수는 있지만, DSP 알고리즘을 다음에서 포팅하는 것이 더 쉽습니다. musicdsp.org
code.google.com/p/pyo/의 Python DSP 라이브러리를 사용하십시오.
음악 DSP 사이트에서 나는 알고리즘을 따라 괜찮은 봉투를 찾을 수 있다고 상상합니다. 것이다 http://people.csail.mit.edu/hubert/pyaudio/
이 과정 : PyAudio를 http://docs.python.org/2/library/wave.html
을 또한, 당신은 실시간으로 필터링 작업을 테스트해야하는 경우, 다음을 고려하십시오
파이썬 읽고 여기에 웨이브에 쓸 것이다 큰 라이브러리를 가지고 필터가 심벌즈를 제외한 모든 것을 걸러 낼 수 없기 때문에 꼬임없이 올 수 있습니다. 믹싱 된 오디오가 잘 혼합되어 있기 때문에 믹스 된 개별 파트와 악기를 분리하는 것은 거의 불가능합니다. 원격으로이 작업을 수행하는 유일한 방법은 Melodyne입니다.
첫 번째 아이디어는 다른 악기가 주로 위치하는 저주파와 중음 주파수를 차단하는 대역 통과 필터를 구현하는 것입니다 (http://en.wikipedia.org/wiki/Band-pass_filter). 당신은 그것을 스스로 할 수 있습니다 :
- FFT 당신은 창에 WAV 파일 및 스펙트럼
- 를 얻을 수는
- 가 제로에 다른 모든 것들을 넣어 유지하려는 주파수 대역을 선택 (또는 적용 - 가우스, 슈퍼 등)
- 은 (
- 이 결과를 듣고) 역 FFT를 수행
당신이 할 수있는 필요하다면 루게릭 병을 주파수 대역을 변경 다시 모든 것을 변환 -gaussian o scipy 라이브러리 (신호 처리 기능)에 대해 google을 사용합니다.
희망이 도움이됩니다. 그것을 밖으로 시도, 자세한 질문을 게시하는 경우.
오디오 처리 알고리즘을 연구하여 시작해야하지만,이 질문은 너무 광범위하여 여기에서 대답 할 수 없습니다. – Collin