是否有命令行工具或ffmpeg / sox命令来生成语音标签?类似于大胆声音探测器。 输出中只需要timeStart和timeEnd。 优选地,从给定时间开始到给定时间结束。
答案 0 :(得分:1)
1-提取时间:
ffmpeg -i input.mp3 -ss 00:00:00 -to 00:10:00 -acodec copy output.mp3
2-执行silentdetect:
ffmpeg -i output.mp3 -af silencedetect=noise=-18dB:d=0.15 -f null - 2> vol.txt
3-使用javaScript生成标签:
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 :(得分:1)
silentdetect过滤器将打印出静音读数。您可以将每个静音结束与下一个静音开始配对,以识别语音段。如果第一静音开始值不为零,则第一语音段对于该值为0。否则,你可以丢弃它。
要将过滤器输出记录到文件,请将其与元数据过滤器配对。
ffmpeg -i out_.mp3 -af "silencedetect=noise=-18dB:d=0.15,ametadata=mode=print:file=vol.txt" -f null -