如何让我的电脑扬声器发出蜂鸣声

如何让我的电脑扬声器发出蜂鸣声

使用bash,如何让电脑扬声器发出蜂鸣声?

像这样的东西echo 'beepsound' > /dev/pcspkr就很好了。

答案1

beep我通常使用许多系统上安装的小实用程序。该命令将尝试不同的方法来创建系统声音。

从联机帮助页有 3 种创建声音的方法beep

  1. 在 shell 脚本中产生蜂鸣声的传统方法是通过 shell 命令将ASCII BEL( ) 字符写入标准输出,例如\007

    echo -ne '\007'
    

    仅当调用 shell 的标准输出当前定向到某种终端设备时,这才有效;如果没有,蜂鸣声将不会发出声音,甚至可能会导致输出定向到的任何文件出现不必要的损坏。

  2. 还有其他方法可以引起蜂鸣声。稍微更可靠的方法是打开/dev/tty您的 BEL 角色并将其发送到那里。这对于 I/O 重定向来说是稳健的,但在希望生成蜂鸣声的 shell 脚本没有控制终端的情况下仍然会失败,例如因为它是从 X 窗口管理器运行的。

  3. 第三种方法是连接到 X 显示器并向其发送响铃命令。这不依赖于 Unix 终端设备,但(当然)需要 X 显示器。

beep将简单地尝试这 3 种方法。

答案2

注意:此解决方案会发出蜂鸣声扬声器,不是母板

ALSA 附带说话者测试,一个命令行扬声器测试音调生成器,可用于生成蜂鸣声:

$ speaker-test -t sine -f 1000 -l 1

这个 arch Linux 论坛主题

然而,蜂鸣声持续时间是任意的,但可以按如下方式控制:

$ ( speaker-test -t sine -f 1000 )& pid=$! ; sleep 0.1s ; kill -9 $pid

我们可以更进一步,使用此函数输出蜂鸣声:

_alarm() {
  ( \speaker-test --frequency $1 --test sine )&
  pid=$!
  \sleep 0.${2}s
  \kill -9 $pid
}

使用频率和持续时间参数调用:

$ _alarm 400 200

考虑到这一点,就可以用 创作简单的音乐speaker-test。看这个 shell 脚本

答案3

只是回响\a\07为我工作。

$ echo -e "\a"

这可能需要pcspkr加载内核模块。我只在 RHEL 上测试过这个,所以 YMMV。

更新

正如 Warren 在评论中指出的那样,当通过 SSH 远程登录时,这可能不起作用。一个快速的解决方法是将输出重定向到任何 TTY 设备(最好是未使用的设备)。例如:

$ echo -en "\a" > /dev/tty5

答案4

如果已安装则使用声卡sox,如果未安装则使用 PC 扬声器:

$ play -q -n synth 0.1 sin 880 || echo -e "\a"

sox适用于大多数发行版。

相关内容