2017-09-07 1 views
0

음성 레이블을 생성하는 명령 줄 도구 또는 ffmpeg/sox 명령이 있습니까? 대담성 사운드 파인더와 비슷합니다. 출력에는 timeStart 및 timeEnd 만 필요합니다. 주어진 timeStart에서 주어진 timeEnd까지 생성하는 것이 바람직합니다.음성 레이블을 생성하는 명령 줄 도구 또는 ffmpeg/sox 명령이 있습니까? 대담성 소리 찾기와 유사

+0

'silencedetect' 필터는 무음의 출력을 출력합니다. 각 무음 끝을 다음 무음 시작과 쌍으로 연결하여 음성 세그먼트를 식별 할 수 있습니다. 묵음 시작 값에 대해 0이 아닌 경우 첫 번째 음성 세그먼트는 0입니다. 그렇지 않으면, 당신은 그것을 버릴 수 있습니다. – Mulvya

+0

@Mulvya 그것은 감사합니다 :'ffmpeg -i out_.mp3 -af silencedetect = noise = -18dB : d = 0.15 -f null-2> vol.txt' 생성 된 레이블은 대담성과 다릅니다! 첫 번째 레이블은 음수 값을가집니다! –

+0

아마도 MP3 디코더 프라이밍 프레임 일 겁니다. 그것을 0으로 처리하십시오. – Mulvya

답변

1

1- 추출 시간 :

ffmpeg -i output.mp3 -af silencedetect=noise=-18dB:d=0.15 -f null - 2> vol.txt 

-3- 자바 스크립트와 레이블을 생성 :

ffmpeg -i input.mp3 -ss 00:00:00 -to 00:10:00 -acodec copy output.mp3 

2- silentdetect 실행

var inp=document.getElementById("inp"), outp=document.getElementById("outp"); 
var c, st=[], et=[], a=inp.value.split('\n'); 
for(var i=1; i<a.length; i++){ 
    c=a[i].split(' | '); 
    (c.length==1?et.push(c[0].split(' ')[4]):st.push(c[0].split(' ')[4])) 
}; 
var t=''; 
for (var i=0;i<et.length; i++){ 
    t+=st[i]+'\t'+et[i]+'\t'+(i+1)+'\n' 
}; 
outp.value=t; 
1

silencedetect 필터 판독을 인쇄 할 침묵의. 각 무음 끝을 다음 무음 시작과 쌍으로 연결하여 음성 세그먼트를 식별 할 수 있습니다. 제 1 묵음 시작 값이 0이 아닌 경우, 제 1 음성 세그먼트는 그 값에 대해 0이다. 그렇지 않으면, 당신은 그것을 버릴 수 있습니다.

필터 출력을 파일에 기록하려면 메타 데이터 필터와 쌍으로 연결하십시오.

ffmpeg -i out_.mp3 -af "silencedetect=noise=-18dB:d=0.15,ametadata=mode=print:file=vol.txt" -f null - 
+0

감사합니다. 고맙습니다. –