【问题标题】:Is there a command line tool or ffmpeg /sox command to generate speech labels? similar to audacity sound finder是否有命令行工具或 ffmpeg /sox 命令来生成语音标签?类似于大胆的声音查找器
【发布时间】:2017-09-07 10:39:28
【问题描述】:

有没有命令行工具或者ffmpeg/sox命令来生成语音标签?类似于大胆的声音查找器。 输出中只需要 timeStart 和 timeEnd。 最好从给定的 timeStart 到给定的 timeEnd 生成。

【问题讨论】:

  • silencedetect 过滤器将打印出静音读数。您可以将每个静音结束与下一个静音开始配对以识别语音片段。对于静音起始值,如果它不为零,则第一个语音段为 0 到该值。否则,您可以丢弃它。
  • @Mulvya 成功了,谢谢:ffmpeg -i out_.mp3 -af silencedetect=noise=-18dB:d=0.15 -f null - 2> vol.txt生成的标签与 audacity 的不同!第一个标签有一个负值!
  • 这可能是 MP3 解码器启动帧。将其视为零。
  • @Mulvya 不需要第一个值。有没有办法只将 [silencedetect @ 行写入 vol.txt
  • silencedetect,ametadata=mode=print:file=vol.txt

标签: audio cmd ffmpeg sox audacity


【解决方案1】:

静音检测过滤器将打印出静音读数。您可以将每个静音结束与下一个静音开始配对以识别语音片段。如果第一个静音起始值不为零,则第一个语音段为 0 到该值。否则,您可以丢弃它。

要将过滤器输出记录到文件中,请将其与元数据过滤器配对。

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

【讨论】:

  • 感谢您的帮助,谢谢!
【解决方案2】:

1- 提取时间:

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

2- 执行静默检测:

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2015-06-26
    相关资源
    最近更新 更多