我有带.aif扩展名的音频文件(AIFF/Amiga/Mac 音频)。如何播放它们,更重要的是:如何将它们转换为 mp3 或其他更常见的音频格式?
更新:尝试运行这里找到的命令,即for i in *.aif; do sox "$i" "$i.wav"; done,并且sox已经安装,我收到类似的错误
sox FAIL 格式:无法打开输入文件“文件名”:不支持的 AIFC 压缩类型“ima4”
exiftool 提供信息,例如:
File Size : 41 MB
File Modification Date/Time : 2013:04:23 15:54:02+02:00
File Permissions : rw-r--r--
File Type : AIFC
MIME Type : audio/x-aiff
Format Version Time : 1990:05:23 14:40:00
Num Channels : 1
Num Sample Frames : 1257382
Sample Size : 0
Sample Rate : 16000
Compression Type : Unknown …Run Code Online (Sandbox Code Playgroud) 我已经安装play:
sudo apt-get install sox libsox-fmt-mp3
Run Code Online (Sandbox Code Playgroud)
我现在可以像这样播放我的音频文件:
play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3
Run Code Online (Sandbox Code Playgroud)
由于我正在学习 shell,我希望我可以做这样的事情:
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 ) &
Run Code Online (Sandbox Code Playgroud)
几10秒钟后,我可以看到屏幕为:
File Size: 7.38M Bit Rate: 260k
Encoding: MPEG audio Info: 2012
Channels: 2 @ 16-bit Track: 01/09
Samplerate: 44100Hz Album: Maalai Pozhudhin Mayakathilaey :::tunesinn.blogspot.com:::
Replaygain: off Artist: Hemachandra, Achu
Duration: 00:03:46.98 Title: Oh Baby Girl
Run Code Online (Sandbox Code Playgroud)
但是这首歌没有播放。但如果我这样做(没有&):
(sleep 10 ; play Desktop/SONGS/01\ -\ Oh\ Baby\ Girl.mp3 )
Run Code Online (Sandbox Code Playgroud)
正在按预期工作。但同时我无法使用我的终端。 …
我有一组 MP3 文件,我想删除最后 4 秒的内容。我知道,如果我知道每个文件的持续时间,我可以这样做:
ffmpeg -t ${1} -i inputfilename -acodec copy -vcodec copy outputfilename
Run Code Online (Sandbox Code Playgroud)
哪里$1是文件的持续时间减去 4 秒。
无论文件长度如何,我都非常喜欢只截断最后 4 秒的内容。“在 EOF 前 4 秒停止”。
注意:我很难弄清楚这个命令行,如果有更简单的版本,我很乐意看到它。
例子:
我SoX自己构建/安装,因为提供的 Ubuntu 包不包含我可能使用的其他音频格式库,它是我想要最新版本的包之一。
现在我想eboard用 Synaptic 安装SoX,它想安装,但如前所述,SoX它已经安装并且运行良好,我不想在eboard不从源代码构建的情况下安装时将它与另一个安装混为一谈。
这是我遇到过几次问题的例子,我想问问 Linux 用户在这种情况下会做什么,因为我是一个新用户。
我正在尝试记录扬声器的输出,但是当我这样做时,它也会从麦克风记录。我只想录制非麦克风设备。
试:
$ (AUDIODEV=hw:0,0; rec test.mp3)
$ rec -d hw:0,0 test.mp3
Run Code Online (Sandbox Code Playgroud)
我也试过 ffmpeg:
$ ffmpeg -f alsa -i hw:CARD=PCH,DEV=0 test.mp3
$ ffmpeg -f alsa -i front:CARD=PCH,DEV=0 test.mp3
$ ffmpeg -f alsa -i surround40:CARD=PCH,DEV=0 test.mp3
Run Code Online (Sandbox Code Playgroud)
我见过一些复杂的东西,例如:
$ parec -v -d analog-output-speaker | sox -t raw -e signed-integer b 16 -r 44100 -c 2 test.mp3
Run Code Online (Sandbox Code Playgroud)
在线提议,但这仍然记录麦克风,并带有过时的袜子选项。
如何在 ubuntu 14.04+ 中仅录制非麦克风输入?
我从这个问题Generate white noise to quiet a baby 中得到了启发,想知道SoX是否可以用于生成双耳节拍。
基本上我想发出这样的声音,即左右声道的音调之间存在 2 Hz 到 20 Hz 的差异。
此外,如果可以播放一些额外的声音——比如轻柔的音乐或“让婴儿平静”问题中的那些波浪,那就太好了。
说到波浪,是否有可能让它们稍微偏离音调和/或不同步?一个频道的频率比另一个频道略低?(嗯......我猜白噪声是所有频率,因此没有音高......)或者让一个通道中的“破碎波”噪声稍微先于另一个通道开始?
我知道有程序 - 和网站 - 可以做到这一点(我有几个)......这更像是“可以做到”......如果我应该努力学习 SoX 以取得成功- 如果有一些好的提示可以让我开始。
归结为能够dynamic output将终端的(我将解释)保存到文本文件中,但这就是我最终要寻找的。
我为名为 的终端创建了一个自定义命令playRandom,它的作用是永远播放随机歌曲。我为此创建的 bash 文件:
#!/bin/bash
find ./ -type f | sort -R | xargs -I + play +
Run Code Online (Sandbox Code Playgroud)
注意:该play命令来自SoX软件。
现在输出看起来像这样:

正如你所看到的输出变化dynamically,所以我不能>>用来保存输出。
我希望能够将“播放的歌曲名称”保存到文本文件中。
我怎样才能实现这个目标?提前致谢。
我有以下 SoX 命令,可以生成漂亮的“宇宙飞船”声音:
play -n -c1 synth whitenoise band -n 100 20 band -n 50 20 gain +25 fade h 1 864000 1
Run Code Online (Sandbox Code Playgroud)
我怎样才能将大约 10 秒的内容输出到声音文件中?谢谢!
我的文件夹中有大约 20 个音频文件(.wav),这就是我组合这些波形文件的方式
sox *.wav output.wav
Run Code Online (Sandbox Code Playgroud)
我想在每个波形之间添加延迟或静音。
我试过了pad,但它只是把沉默只放在开始和结束时output.wav。