2016-07-23 10 views
0

일관된 음악 샘플을 만들어야합니다. 샘플 속도 44100의 1 초 길이 파를 가지고 정확히 44100 개의 샘플 배열을 얻을 수 있어야합니다. 불행히도, 이것은 사실이 아닙니다.avconv를 사용할 때 wav의 샘플 수가 일치하지 않습니다.

나의 접근 방식은 다음

1) 내가 파일을 읽을 44100

avconv -i input.mp3 -ss 00:01:00 -t 00:00:01 -ar 44100 -ac 1 output.wav 

2) 샘플 속도와 일초 길이 인 output.wav 생산 및 샘플

의 수를 인쇄 input.mp3의 다른 선택 및 시작 위치에 대한
meta,song = scipy.io.wavfile.read(path + "/" +file) 
assert meta == 44100 
print(len(song)) 

나는 다른 번호를 얻을 : 43776, 43776, 44928, 43776, 43776은 44,928

내 질문에, 왜 사건이다인가? 일관된 데이터 샘플을 생성하기 위해 1 단계를 어떻게 바꿀 수 있습니까?

답변

0

avconv는 매우 precize되지 않습니다. 1 초가 될 것으로 예상되는 곡 조각은 0.983991 초입니다.

우리가 삭스 사용할 수 있습니다 문제를 해결하려면

sox input.mp3 -r 44100 -c 1 output.wav --show-progress trim 0 00:01 

삭스는 기본적으로 MP3를 지원하지 않는, 그래서

sudo apt-get install libsox-fmt-mp3 
를 설치했다