启用发声的终端铃声/哔声


8

我正在尝试通过rapsberry pi模型b在debian wheezy上通过1/8“ mini-rca音频输出(耳机插孔)启用可听见的终端铃声/蜂鸣声。在Midori中播放冲击波文件时,正常音频按预期工作例如gnash。

我在LXTerminal首选项中将“ Audible bell”设置设为ON,然后尝试了以下操作:

$ xkbbell (没有声音)

$ xkbbell -dev 0 (失败请求的X错误:146)

$ beep$ beep -f 500 -l 700用apt安装后(没有声音)

就是说,这都是试图听到PuTTY触发的铃声,当铃声发生时要执行的操作设置为设为默认系统警报声音。像Windows版本的PuTTY一样,没有选项可以在响铃时播放自定义声音文件。

我已经读过,# modprobe snd_hda_intel在其他Linux机器上运行可以将原本用于PC扬声器(树莓缺乏)的声音输出重定向到ALSA。运行该命令告诉我找不到该模块。我不知道如何用apt来获得它。

我真的希望有人能提供一些见识...我对谷歌搜索感到头晕!


只是为了澄清一下,您想单独听到Raspberry Pi发出的铃声,还是当您通过SSH进入它时听到?
syb0rg 2013年

我想听听Raspberry Pi发出的铃声。我认为这可能会令人困惑。
humbolight 2013年

Answers:


4

使用一个名为softbeep的程序,我可以获得所需的结果。

http://0pointer.de/lennart/projects/softbeep/softbeep-0.3.tar.gz

我需要获取libncurses5libX11开发包进行编译。

sudo apt-get update
sudo apt-get install libncurses5-dev libX11-dev

编译(make)之后,我需要将sb-beep文件编辑为(1)指向pi上的可用声音文件,并且(2)播放声音,aplay而不是esdplay安装(make install)之前。

像魅力一样工作!谢谢Lennart Poettering(软件提示作者)。


4

我发现您可以使用以下命令在Raspbian上加载声音驱动程序和其他内容:

sudo modprobe snd_bcm2835 && sudo amixer cset numid=3 1

我认为第一个命令加载声音驱动程序模块,第二个命令将声音输出设置为3.5mm插座。

然后,您可以使用alsamixer调节音量并speaker-test -c2 -t sine测试扬声器

您还可以使用speaker-testutil产生不同的声音,-c1用于单声道,c2在立体声的每个通道之间切换,以及-f产生不同的噪声频率- speaker-test --help提供了更多的选择:

speaker-test 1.0.25

Usage: speaker-test [OPTION]... 
-h,--help   help
-D,--device playback device
-r,--rate   stream rate in Hz
-c,--channels   count of channels in stream
-f,--frequency  sine wave frequency in Hz
-F,--format sample format
-b,--buffer ring buffer size in us
-p,--period period size in us
-P,--nperiods   number of periods
-t,--test   pink=use pink noise, sine=use sine wave, wav=WAV file
-l,--nloops specify number of loops to test, 0 = infinite
-s,--speaker    single speaker test. Values 1=Left, 2=right, etc
-w,--wavfile    Use the given WAV file as a test sound
-W,--wavdir Specify the directory containing WAV files

Recognized sample formats are: S8 S16_LE S16_BE FLOAT_LE S32_LE S32_BE

因此,发出两秒钟的蜂鸣声,效果很好:

speaker-test -c1 -t sine -f 800 -P 2 -p 0.4 -l 1

为了获得更好的提示音,我在Audacity中生成了0.25秒的提示音文件(创建了新的音轨,生成了440 Hz音调,将其放大了11),然后将其复制到我的Pi上,然后可以使用播放aplay beep.wav。然后将其复制到~/.local,并在~/.local/bin/beep(我mkdir ~/.local/bin先运行)处创建了此bash脚本:

#!/bin/bash
aplay -q $HOME/.local/beep.wav
exit

然后,我在中创建这些行~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:$HOME/.local/bin:$HOME/bin

export PATH

然后我跑了以下

chmod +x ~/.local/bin/beep
source ~/.bash_profile

然后我可以简单地beep发出哔哔声


+1粘贴并通过扬声器测试发出2秒钟蜂鸣声的代码示例speaker-test -c1 -t sine -f 800 -P 2 -p 0.4 -l 1
domih

1

使用以下方法可以使声音更短:

( speaker-test -t sine -c 2 -s 2 -f 800 & TASK_PID=$! ; sleep 0.09 ; kill -s SIGINT $TASK_PID ) > /dev/null

这将在0.09 s(但由于开销较长)之后发送一个信号以使其停止。在我的系统上发出声音的最短时间(Raspberry Pi 3上的Raspbian Stretch)为0.06 s。我将所有输出重定向到/ dev / null,因此它看起来像一个普通命令。有关man speaker-test选项的说明,请参见。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.