몇 분 동안의 Wave 파일이 있고 반규칙적인 간격으로 짧은 클릭이 있는 경우 각 클릭의 밀리초 타임스탬프를 어떻게 얻을 수 있습니까? 나는 노력한다1초 타이머의 정확성 확인. 셸, Python, Ruby 또는 기타 표준 *nix 도구를 사용하는 것이 가장 좋습니다.
답변1
sox
옵션일 수도 있습니다 .
다음과 같이 호출하세요.
sox sound.wav sound.dat
textual representation of the sample data
파일 에 를 씁니다 sound.dat
. 옵션에 따라 다음 내용이 포함된 파일을 얻을 수 있습니다.시작 이후 시간내부에열 1그리고정규화된 표본 크기존재하다2열,예를 들어:
; Sample Rate 44100
; Channels 1
0 -0.026428223
2.2675737e-05 -0.022186279
4.5351474e-05 -0.022186279
6.8027211e-05 -0.022827148
9.0702948e-05 -0.022491455
0.00011337868 -0.025756836
0.00013605442 -0.021850586
0.00015873016 -0.026428223
0.0001814059 -0.02545166
0.00020408163 -0.023162842
0.00022675737 -0.02545166
0.00024943311 -0.018249512
0.00027210884 -0.018249512
0.00029478458 -0.019226074
0.00031746032 -0.01663208
0.00034013605 -0.013702393
0.00036281179 -0.014984131
0.00038548753 -0.015319824
약간의 awk
타임스탬프가 표시된 모습이 드러납니다.
$ awk '$2 > 0.6 { print }' < sound.dat
; Sample Rate 44100
; Channels 1
1.1002721 0.64196777
1.1004762 0.65371704
man sox
그리고 man soxformat
더 많은 정보가 제공되어야 합니다.