2014-06-22 8 views
0

오랫동안 검색해 왔지만 실제로 효과가 없었습니다.
아이디어는 내가 음악 믹스 (주로 .mp3)를 가지고 있으며 트랙 믹스를 사용하여 pyechonest를 사용하여 트랙을 식별하려고합니다. 그러나 이것은 단 하나의 트랙을 식별 할 것입니다 (내가 틀렸다면 수정하십시오). 그래서 별도의 트랙으로 믹스를 나눌 수있는 또 다른 모듈을 갖고 싶습니다.오디오 믹스 분할을위한 파이썬 모듈

나는 오디오 분할을 위해 pydub을 들여다 보았지만 감지 문제는 여전히있었습니다.

미리 감사드립니다.

편집 : 그래서, 나는 파일을 차단하는 방법을 발견,하지만 지금 pyechonest (5 부 말에 대한) 대신 tracknames 그 자체, 내 코드의 팟 캐스트의 이름을 반환 :

>>> from pyechonest import track 
>>> resultlist = [] 
>>> path = "C:\\WinPython\\OwnScripts\\Convert" 
>>> for i in range(0, 5, 1): 
     #for file parts I tried 25-30 second long, 128k mp3 and wav 
... filename = path+"\\unleashed16_part"+str(i+1)+".wav" 
... resultlist.append(track.track_from_filename(filename)) 
>>> resultlist 
[<track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - Defqon.1 2013 Continuous mix by Frontliner>] 

분명히 내가 원하는 것은 아닙니다 ... echonest에게 podcast를 들여다 보지 않거나 여러 가지 가능성 또는 그와 비슷한 것을 되돌릴 수있는 방법이 있습니까?

+0

30 초 또는 1 분 분량으로 믹스를 분할 할 수 있다고 생각합니다. tartsample : endsample]), 각 부분에서 echonest 식별 메소드를 사용한 다음 반복 된 트랙 ID 리턴을 제거하십시오. – dpwe

+0

흠 그래, 나는 그것에 대해 생각해 보았다. 그러나 문제는 표준에 동의 한 API가 분당 20 회의 통화만을 허용한다는 것이고, 나는 그 부분을 잘라내면 문제를 일으킬까 두려워한다. 그래서 다른 트랙을 먼저 확인한 다음 부품을 잘라내는 것이 가장 좋을 것이라고 생각한 이유입니다. 그게 가능하지 않다면 나는 네 생각을 사용하도록 강요 당한다. – CounterFlame

답변

0

합리적인 최소 노래 길이를 설정할 수 있으면 매초 오디오를 API에 보내지 않고도 CounterFlame의 아이디어를 사용할 수 있습니다.

# everything in seconds 
minimum_song_length = 3 * 60 

chunk_size_to_send = 30 

throw_away_between_chunks = minimum_song_length - (2 * chunk_size_to_send) 

: 예를 들어

당신은 당신이 수학 같이 작동 둥지를

14 minutes: ("=" is 15 seconds) 
|===|===|===|===|===|===|===|===|===|===|===|===|===| 
song 1 (3:00) song 2 (5:15)  song 3 (4:30) 
|============|====================|=================| 
^^  ^^  ^^  ^^  ^^  ^^ <-- send these chunks 

반향 2 분마다 30 초 덩어리를 보낼 수있는 짧은 노래가 최소 3 분 알고있는 경우 기본적으로 가장 짧은 노래에 2 개의 청크가 표시되도록 지정하여 적어도 하나는 이전/이후의 노래와 겹치지 않도록 할 것입니다.

+0

필자는 pydub의 오디오를로드하는 중대한 메모리 문제가 있으므로 커맨드 라인에서 오디오 파일을 잘라 내기 위해 직접 ffmpeg 래퍼를 작성하기로 결정했습니다. 이제 echonest는 트랙 이름 자체 대신 팟 캐스트의 이름을 반환하는 문제가 있습니다.이 문제를 어떻게 피할 수 있습니까? 나는 그것을 어떻게 에코 네스트로 보내는지를 업데이트했다. – CounterFlame