【发布时间】:2011-07-03 19:15:02
【问题描述】:
我想在 linux 下使用我的笔记本电脑作为 sinus 发生器。但是我还没有找到可以产生声音的程序。有人可以告诉我正确的程序或脚本吗?谢谢。
PS:我不想用酒。 PS2:我发现了这个:“aoss siggen”和“speaker_test”。但是第一个基于 ncurses 和第二个不能生成连续信号。你可能知道更多吗?
【问题讨论】:
我想在 linux 下使用我的笔记本电脑作为 sinus 发生器。但是我还没有找到可以产生声音的程序。有人可以告诉我正确的程序或脚本吗?谢谢。
PS:我不想用酒。 PS2:我发现了这个:“aoss siggen”和“speaker_test”。但是第一个基于 ncurses 和第二个不能生成连续信号。你可能知道更多吗?
【问题讨论】:
ffmpeg
ffmpeg 可以做到,像往常一样。
创建一个 5 秒单声道 1000Hz 正弦 out.wav 声音文件:
sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.wav
代替立体声:
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 out.wav
文件将是原来的 2 倍,ffprobe 会说它有 2 channels 而不是 1 channel。
在不创建文件的情况下播放音频 5 秒:
ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp
永远玩下去,直到你发疯为止:
ffplay -f lavfi -i "sine=frequency=1000" -nodisp
文档:
在Audio sources 下的另一部分记录了除sine 之外的其他有用的声音生成算法,例如:
参考书目:
在 Ubuntu 18.04、ffmpeg 3.4.6 中测试。
无需额外库的最小 C 音频生成示例
【讨论】:
-v warning 禁用日志记录到标准错误。
Pulseaudio 有一个module for generating sine waves:
$ pactl load-module module-sine frequency=1000
并让它停止:
$ pactl unload-module module-sine
【讨论】:
pactl load-module module-sine frequency=440; read; pactl unload-module module-sine让它在你按下一个键后停止。
如果你想在linux下生成声音文件,我推荐Sox
【讨论】:
gain 1 将使其剪辑。不要增加任何收益,罪恶已经是轨到轨了。
今天的 Linux 使用 Alsa 基础架构来实现声音。查看Alsa documentation 和教程(例如this one)。
【讨论】:
在google上找了找这个软件,不知道是不是你要的。
http://www.softpedia.com/get/Multimedia/Audio/Other-AUDIO-Tools/Multisine.shtml
你可以在 wine 下运行它。
哦...在原始帖子中的附加说明之前,对不起。
编辑:哇哦,找到了!
http://www.comp.leeds.ac.uk/jj/linux/siggen.html
显然Audacity软件也可以做到。
【讨论】: