NES*_*NES 101 sound command-line scripts
我想在 shell 脚本中使用哔声。不幸的是,我通过 Google 找到的所有方法都不适合我。
我试过
echo -e '\a'
echo -ne '\007'
Run Code Online (Sandbox Code Playgroud)
以及beep
我通过apt安装后的命令。
可能是什么原因?
yuv*_*lio 108
我不是 pcspkr 哔哔声的粉丝,我使用来自系统声音之一的哔哔声和已安装的pulseaudio 服务器的 paplay 命令。
首先找到您喜欢的声音(例如,您可以浏览 /usr/share/sounds 以获得一些可用的声音)并创建对它的引用
export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg
Run Code Online (Sandbox Code Playgroud)
然后将其作为命令可用
alias beep='paplay $BEEP'
Run Code Online (Sandbox Code Playgroud)
现在只需beep
在需要时运行即可。例如,要在命令完成时提醒您:
find . | grep treasure ; beep
Run Code Online (Sandbox Code Playgroud)
812*_*128 104
首先运行sudo modprobe pcspkr
,然后beep
应该工作。
这不是因为默认情况下 Ubuntu 不再加载产生蜂鸣声的硬件驱动程序。
如果这对你有用,那么启用 pcspkr 的加载永久编辑/etc/modprobe.d/blacklist.conf
文件(gksudo gedit
可能使用)并注释掉这样说的行,blacklist pcspkr
它看起来像这样:
# 丑陋的巨响,让人心烦;这应该由一个 # 不错的pulseaudio bing(Ubuntu:#77010) # 黑名单 pcspkr
Mes*_*ion 28
由于这是 google 上评分非常高的问题,我将添加在控制台和 X11 中重新启用哔声的步骤:
正如已经回答的那样,pcspkr
PC Speaker的内核驱动程序在 Ubuntu 中被列入黑名单。
暂时启用直到重新启动:
sudo modprobe pcspkr
Run Code Online (Sandbox Code Playgroud)
在启动时自动启用:
sudo nano /etc/modprobe.d/blacklist.conf
Run Code Online (Sandbox Code Playgroud)
(删除或注释pcspkr
行,在前面加上#
)
gnome-terminal
)在 X 下,就像使用 Unity、KDE、Gnome Shell 时一样,由于 PulseAudio 会捕获哔声事件module-x11-bell
,默认情况下会在/usr/bin/start-pulseaudio-x11
. PulseAudio 在哔哔声中播放的声音样本bell.ogg
默认为空白。此外,铃声音量可能被静音。
要暂时启用当前会话,
xset b 100 # perhaps not needed, on my system it was 40 by default
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
Run Code Online (Sandbox Code Playgroud)
您还可以尝试其他合适的示例/usr/share/sounds
,例如在/usr/share/sounds/gnome/default/alerts/
请注意,该beep
程序并不是真正必要的。但如果安装了,它会使用 PC 扬声器。这是我能找到的在 X 下启用蜂鸣器的唯一方法:
sudo apt-get install beep
Run Code Online (Sandbox Code Playgroud)
要在启动时自动启用,只需在您的~/.profile
或系统范围内添加上述行/etc/profile
要测试它:
printf '\a'
Run Code Online (Sandbox Code Playgroud)
嘟!
beep
Run Code Online (Sandbox Code Playgroud)
嗡嗡声!
小智 22
我以前遇到过这个问题。据我所知,问题是终端铃声试图让内部计算机扬声器响起(如在老式台式机中),但笔记本电脑和一些较新的计算机缺少这样的东西。
我当时找到的唯一解决方案是
sudo apt-get install sox
Run Code Online (Sandbox Code Playgroud)
和
play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>
Run Code Online (Sandbox Code Playgroud)
例如
play -n synth 0.1 sine 880 vol 0.5
Run Code Online (Sandbox Code Playgroud)
jdt*_*ood 22
要持久解决此问题:
gconf-editor
,如果desktop | gnome | peripherals | keyboard | bell_mode
设置存在,则将其更改off
为on
dconf-editor
,如果org | gnome | settings-daemon | peripherals | keyboard | bell-mode
设置存在,则将其更改off
为on
pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg
到文件~/.xprofile
(你需要gnome-control-center-data
的glass.ogg
)[ "$DISPLAY" ] && xset b 100
到文件~/.bashrc
激活此解决方案的最简单方法是重新启动。
此外,要立即为已经打开的终端窗口实施此解决方案,请运行该pactl
命令并xset
在相关终端窗口中运行该命令。
”只有当您的 PC 具有传统的旧式“扬声器”时,蜂鸣声才能工作,而且可能大多数(如果不是所有)笔记本电脑和小型设备都没有。
然而,他们通常拥有的是一个声音芯片和一个或多个扬声器,可用于发出您想要的任何声音。
因此,当您没有旧式扬声器硬件时,安装beep
命令和/或内核模块的过时建议pcspkr
将永远不会起作用。
相反: 当您想要哔哔声时尝试播放这样的声音:
paplay /usr/share/sounds/sound-icons/capital
Run Code Online (Sandbox Code Playgroud)
注意这里使用了paplay
(P ulse一个UDIO播放)命令,混合与其他用户级别(用户应用程序)的声音更好地在系统上,而不是旧的aplay
(一个LSA播放)命令,它一般只能在同一时间播放一个声音。但请注意,PulseAudio 调用 ALSA 来实际播放声音。
我之前使用的建议play
可能仍然有效,但是运行其中播放的 SoX 是矫枉过正的。
当所有其他方法都失败时对我有用。感谢:特里迪加&hk_centos等。