음악을 악기별로 분리를 하려고 합니다.

tonight1의 이미지

음악에서 각 악기별로 주파수가 다른점을 이용해서
악기별로 음악을 분리하려고 합니다.

하지만 이게 주파수대역이 모두 다르지 않아서
겹치는 부분이 많다보니 생각처럼 잘 분리가 되지 않네요 ㅠㅠ

완벽하게는 아니더라도
분리를 할수 있는 좋은 방법이나 노하우 같은거좀 알려주세요 ㅠ

jsj3579의 이미지

높이, 음색 , ?? 가 존재합니다.

같은 높이에도 악기마다 음색이 다른데요.
일단 주파수 하나만 가지고 나누신다면 너무 어려울 듯 하구요.

예를들어 사람의 목소리와 첼로의 음역이 비슷하지 않습니까.
이럴때 음색 별로 나누어서 다시 필터링 할수가 있는데요...

음색도 같은 종류의 악기라도 음색이 많이 달라서 방대한 양의 샘플 DB가 없는 한 어려울 듯 합니다.

auditory의 이미지

일반적인 음악 파일에 원하시는 일을 하시는건,

최고의 전문가라할지라도 현재 기술로는 불가능한 일입니다.

악기의 수 만큼의 마이크가 있어서 동시에 녹음을 했다면 시도는 해 볼 수 있겠으나,

역시 관련 학문의 전공자가 연구 수준에서나 가능한 일입니다.

구글에서 찾은 논문입니다..

http://adsabs.harvard.edu/abs/2002ASAJ..112.2238K

bookgekgom의 이미지

음을 사용하지 말고 mp3 를 만들때 안에 정보가 들어가잖아요

그 정보를 이용해서 나누면 어떻까여?

음을 이용해서 나누는것은 윗분들 말대로라면 힘들듯...

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

tonight1의 이미지

답변달아주신 분들 모두 감사드립니다

byulparan의 이미지

최근에 Melodyne 이라는 프로그램에서 어느정도 성과를 보인듯 해 보입니다.

http://kr.youtube.com/watch?v=jFCjv4_jqAY

사실 처음엔 오토튠처럼 가수나 솔로악기의 음정을 보정하는 역할을 해주는 프로그램인데 최근 버젼 2.0으로 올라가면서

기술적으로 업그레이드가 된 것 같습니다.

direct note access 라는 기술인 것 같은데 유투브에서 검색하시면 관련 동영상을 더 보실 수 있습니다.

http://kr.youtube.com/watch?v=DLOHyxnMl1U 이 동영상은 하나의 싱글오디오파일로 레코딩된 오케스트라파일을 분리시켜줍니다.

다만 서로 다른 악기가 같은 음을 연주할 시엔 분리하지 못한다는 군요.....(주파수로 음을 추출하기 때문인 것 같습니다...)

tonight1님께서 원하는 건 아닌 것 같지만...이정도만 되어도 굉장히 놀랍죠......재미삼아 함 보세요 :)

fifnir의 이미지

하나의 악기로 하나의 음을 연주해도 보통 배음이 섞여서 나오기 때문에
이것도 고려하면 꽤 복잡할것 같네요.
강조된 주파수 대역만 빼낸다 해도 음질은 포기해야 할 듯 한데요.
분석 해보면 아시겠지만 하나의 악기로도 엄청 넓은 주파수 대역에 걸쳐있는
소리가 많거든요

seoleda의 이미지

옆자리에 있던 박사님이 비슷한 연구를 했던 기억이 나서,

좀 찾아 봤는데 아래와 같은 링크가 나오는군요.

http://www.cis.hut.fi/projects/ica/cocktail/cocktail_en.cgi

도움이 될런지 모르겠습니다.

ttopenx의 이미지

저랑 관심사가 비슷한 분을 뵈니 방갑군요
같이 연구해보면 재미겠네요
저는 kdlp.net에다가 제가 만든 소스 올려놨습니다.

현재 2가지가 올라가 있는데
한가지는 wav파일을 푸리에변환하여 컴퓨터음악언어문법으로 바꿔주는 툴이고(여기까지는 완성되었슴)
가상악기정의프로젝트링크 --->http://kldp.net/projects/vsticollider/
또한가지는 음성인식프로젝트였는데 지금은 그냥 시간대별 주파수분석을 그래프파일로 저장하는데 까지만 만든상태입니다.
음성인식프로젝트 링크 ---->http://kldp.net/projects/vcognize/

제 메일 주소는
gpatient@naver.com

ttopenx의 이미지

서로 같은분야 하니 --
같이 공부도 하고 같이 연구하고 그러면 재밋겠네요
님에게 메일 드릴려고 했었는데
메일주소를 모르겠네여??

제 메일 주소는 gpatient@naver.com 입니다..
관심있으면 연락주세요

제가 생각한 악기분리방법은
주파수맵(국소푸리에변환맵)에서 특정 패턴을 가지는 주파수를 걸러내는 겁니다.

일반적으로 하나의 악기나 음색은 기본적으로 특정 주파수 배음열의 합으로 되어있습니다........
이를 이용하는 것이죠

예를 들면 피아노 음색의 경우

피아노음색 파형=
(Sin(Freq+ 0) *(Envelop1)) +
(Sin(Freq+100) *(Envelop2)) +
(Sin(Freq+200) *(Envelop3)) +
(Sin(Freq+300) *(Envelop4)) +
(Sin(Freq+400) *(Envelop5))

이런식으로 되어있더군요--;(제가만든 주파수 분석툴로 알아낸거에여)

Envelop는 그 주파수의 강도의 시간때별 변화를나타내는 의미인데--
일반적으로 갑자기커졌다다 작아지는 유영을 가지고있습니다.
Envelope에대한건 일반적인 Vsti(가상악기)제작툴 설명에 보면 나와있습니다.

Freq는 기본적인 주파수이고, (예: '라'음이라면 440Hz)
100,200은 배음을 나타내는 수열이지요--;;;;;;;;

악기의 음색은 이런식으로 되어있음으로
주파수맵에서 특정배음구조를 가지는 특성을 분리해내면 됩니다.
다른음색의 악기의 주파수가 합치는 부분에대해서는 그냥 무시를 해도 되지 않을까 싶습니다만.....
예를 들자면 바이올린으로 '라'음 켜고 파이노로 '라'음을 그에 맞추어 동시에 연주했을때
피아노음색이 위에 적힌 공식으로 바탕으로 한다면 100,200,300,400의 배음구조와 바이올린배음구조가 겹쳐지있는
파형이 형성될 것으로 사료됩니다......아직테스트안해봤는데 같이테스트해서 검증해보면 재밌겠네요
테스트를 통해 사실이 입증된다면 단순히 배음구조을 분석해내는것만으로도 악기를 분리해 낼수가 있다는거죠

제가 말한 주파수맵은
byulparan님이 링크한 http://kr.youtube.com/watch?v=DLOHyxnMl1U 유투브 동영상에 나온거랑 비슷하고요
그거까지는 --;;제가 할수있고(원리는 무지 간단함) 소스도 이미 kldp.net에 vcognie에 올려놨습니다--;조만간 이툴로 음성분석한
설명 올릴건데---;;;;;(kldp.net 게시판에 아직 그림올리는법을 몰라서 못하고있음)

제 메일 주소는
gpatient@naver.com

ttopenx의 이미지

아래첨부된 파일은
해당음성파일(육성'아')을
제가만든 vcognize로 분석하여 주파수맵화 한 그림파일(ah2.jpg)입니다.

ah2.zip은 육성 아를 녹음한 wav파일을 압축한겁니다.

ah2.jpg를 보시면

육성 '아'역시도
위에예시한 피아노의 음색공식과 마찬가지로
특정 배음열의 합으로 되어있음을 알수가 있습니다.

그래프를 보면 처음부분에 배음열구조가 변이 된것을 볼수있는데
이것은 '아'를 발성할때 엑센트를 주어서 비브라토 효과라고 볼수가 있습니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 200805270048.jpg31.81 KB
Image icon ah2.JPG4.14 KB
Package icon ah2.zip26.66 KB

제 메일 주소는
gpatient@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.