我正在尝试使用命令行创建(x)秒的静音/空mp3文件。我认为这很简单!

LAME似乎可以执行类似的操作,但是我找不到任何可以实现此操作的内容。

有人能做这样的事吗?

最佳答案

免责声明:这是一种面向unix的方法(尽管sox是跨平台的,并且也应该仅在Windows上完成)。

  • 您将需要sox-“声音处理程序的[跨平台]瑞士军刀”。
  • 此包装器perl脚本,可帮助您产生沉默的任何秒数:http://www.boutell.com/scripts/silence.html
    $ perl silence.pl 3 silence.wav
    
  • silence.pl很短,由于它是公共(public) Realm ,因此我将其包含在此处:

    #!/usr/bin/perl
    
    $seconds = $ARGV[0];
    $file = $ARGV[1];
    if ((!$seconds) || ($file eq "")) {
            die "Usage: silence seconds newfilename.wav\n";
    }
    
    open(OUT, ">/tmp/$$.dat");
    print OUT "; SampleRate 8000\n";
    $samples = $seconds * 8000;
    for ($i = 0; ($i < $samples); $i++) {
            print OUT $i / 8000, "\t0\n";
    }
    close(OUT);
    
    # Note: I threw away some arguments, which appear in the original
    # script, and which did not worked (on OS X at least)
    system("sox /tmp/$$.dat -c 2 -r 44100 -e signed-integer $file");
    unlink("/tmp/$$.dat");
    

    然后只是lame它:
    $ lame silence.wav silence.mp3
    

    07-24 09:26