如何在 Mac OS X 10.6 中发出硬件哔声

Posted

技术标签:

【中文标题】如何在 Mac OS X 10.6 中发出硬件哔声【英文标题】:How to make the hardware beep sound in Mac OS X 10.6 【发布时间】:2011-03-08 20:44:51 【问题描述】:

我只希望 Mac OS X 10.6 在 open suse 和其他发行版中发出硬件哔声。我尝试了以下方法

终端 -> beep = -bash: beep: command not found

终端 -> say beep = 声音发出哔声(不是硬件哔声,但很棒;))

applescript -> beep = Macintosh 铃声(我想要一个硬件哔声!)

有人知道如何在 bin/bash 或 applescript 中使硬件发出哔哔声吗?

【问题讨论】:

@elhombre,是什么让你认为 Mac OS X 甚至可以做这样的事情? 试试:如果你没有找到任何东西,说“哔”,我能想到的最接近。 @Patrik - +1,很好。 printf "\a" 会发出提示音,如果有帮助的话。 @Carsten:Mac PC。 PC = 个人电脑。它只是不是 IBM(兼容)PC。 基于 Intel 的 MAC与 IBM 兼容的 PC 【参考方案1】:

tput bel 适用于大多数 shell。

在 OS X 中,如果在终端不在前台时执行该命令(以及任何其他使铃声响起的命令),则该命令也会为您提供徽章:

【讨论】:

当你的终端在后台时有一个铃声响起的令人敬畏的副作用(至少在 Lion 终端中)是文档上的图标跳动,你会看到一个红色的指示器说那里已经完成了一些事情。试试这个:“sleep 5; tput bel”运行该命令,然后在终端上跳出标签,当铃声响起时,您会收到警报。正是我想要的! Iterm 用户:这确实会发出哔哔声,但不会创建警报徽章:( @EricHu -iTerm2 现在支持这个 - github.com/gnachman/iTerm2/commit/… tput 是 lots of options 的一个很好的命令。此命令也适用于 Linux。 echo -e "\a"也适用于 OS X 并且可能更便携【参考方案2】:

打印\a 并不总是适合我(MBA,10.7.4)。我改用这个:

say "beep"

【讨论】:

对我有用的唯一方法(OSX 10.8)。 echo -e "\a" 和 printf "\a" 都不起作用。 哇——你可以在里面放任何东西,例如:说“构建完成” 我在Little Snitch 中看到的最佳用法 - 当我运行全屏应用程序并且没有看到常规的 LS 弹出警告时,它 says 我他们(仅在全屏时),即试图连接到某个主机的应用程序已被阻止。非常好。前段时间我需要在一天中跟踪网站上的变化,所以我没有坐在我的屏幕前,而是使用say 让我知道发生了什么(显然只有有意义的文字——那些是销售广告)。 @RandyHoward 这真的很有趣,谢谢!如果有人感兴趣,这里是其他选项的列表:pastebin.com/raw.php?i=czJ8MVW3 哈哈。您可以通过将两个声音叠加在一起让人们怀疑他们是否听到了声音:连续运行 say "Pay attention to me" &say -v Whisper "I own you" &【参考方案3】:

的确,以下是有效的,有些旋律:

say -v Bells "dong dong dong"

[更新] 不幸的是,Bells 不再包含在最新的 OS X 中。试试:

say -v Victoria Do your homework!

使用以下方法探索声音:

say -v \?

【讨论】:

say -v Daniel harry potter harry potter 或者只是:say -v Bells "beep" 我最新的 macos 上没有 Beels 的声音。 是的,Bells 似乎已被移除。使用say -v '?' 列出所有声音。使用say -v '?' | egrep `echo $LANG | sed "s/\..*//"` 列出您当前语言的声音。 可以通过系统偏好设置重新添加铃铛,一直到 Big Sur!系统偏好设置 > 辅助功能 > 语音内容 > 系统语音 > 自定义【参考方案4】:

在 bash 中写入 echo ^G。要创建^G,请按ctrl+v,然后按ctrl+g

【讨论】:

/usr/bin/printf "\a"osascript -e "beep 1" 也很好用 谁能解释echo ^G在做什么(即,这个命令用外行的话来说是什么意思)?这是对 OSX 发出哔哔声的特殊字符吗?还有其他相关的特殊字符吗? @mxhaack @wongo888 @EricJones ^G 是一个“控制字符”,即一个不可打印的字符,用于/用于引起某种效果,例如触发铃声/哔哔声。看看this wikipedia article【参考方案5】:

这将循环播放所有声音(适用于优胜美地):

say -v '?' | awk 'print $1' | while read voice; do printf "using $voice...\n"; say -v $voice "hello, this is me using the $voice voice"; sleep 1; done

【讨论】:

搞笑,好宝! :D【参考方案6】:

使用afplay 播放任意提示音

我很惊讶没有人提到afplay:这是播放任意声音文件的命令行程序。它从 OS X 的原始版本(和 NeXTSTEP,如果你的记忆有那么长的话)就已经存在了。

例如,您可以从命令行运行它或将其放入脚本中:

$ afplay /System/Library/Sounds/Ping.aiff

您不仅限于系统声音;使用afplay 的一个优点是您可以选择自己的声音文件作为警报。例如,您可以下载one of these sound files 并选择您喜欢的。

(如果您能找到 Teletype 33 型铃铛的录音,则加分!)

【讨论】:

Typewriter bell 可能已经足够接近了。【参考方案7】:

macOS 中没有“硬件哔声”。

您正在考虑的功能是非常古老的(1990 年代之前)IBM PC 兼容硬件的产物。在大多数计算机有声卡之前,大多数机器都有一个小型扬声器或压电蜂鸣器,连接到定时器芯片的一个通道。这可用于生成简单的音调或哔哔声。即使在许多计算机集成了声卡之后,计算机将此输出路由到单独的内部扬声器仍然很常见。最近,许多计算机,尤其是笔记本电脑,已将此功能集成到板载声卡中。

(如果您对 PC 扬声器接口如何工作的技术细节感到好奇,there are more details here。)

Apple 电脑中从未有过这种硬件。唯一可用的音频输出是通过声卡,macOS 中唯一的系统哔声是用户的警报声。

【讨论】:

7年后,搜索结束了^^谢谢你在互联网上的狗。但我仍然喜欢人们回答问题的所有创造性方式,所以请继续关注! 这是一个有趣的琐事,但它并不能真正回答问题...... @IanDunn 确实如此——仔细阅读第一段和最后一段。问题是要求一些不存在的东西。 啊,你说得对,我没有仔细阅读OP的问题和cmets,并认为他们只是想要声音本身,无论它是通过软件还是硬件来的。我的错。 终端铃声比 90 年代的 PC 早了将近 100 年:en.wikipedia.org/wiki/Bell_character【参考方案8】:

在终端类型中:

echo -e "\a"

-e 参数告诉 echo 处理转义字符。因为 \n 是换行符,所以 \a 是响铃(与 Ctrl+G 相同)。

【讨论】:

这种方法的一个好处是它也适用于 Linux(和其他?)。如其他地方所述,您也可以尝试printf "\a" 对于那些喜欢铃铛但懒得引用的人来说,echo -e \\a 也可以。【参考方案9】:

在OS X终端下,执行命令:osascript -e 'beep'

使用 OSA(开放脚本架构)技术告诉 AppleScript 执行命令beep

【讨论】:

【参考方案10】:
printf "\a"

如果您查看man printf,它会为您提供转义字符列表,包括\a

\a      Write a <bell> character.

【讨论】:

【参考方案11】:

如果你需要什么,那听起来很“重要”

你可以使用

tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s && tput bel && sleep 0.33s

:)

【讨论】:

【参考方案12】:

printf "\a" 也可以在终端中使用,并且会播放设置的提示音。

【讨论】:

【参考方案13】:

在 MacOS X 上,必须激活“声音警告”选项(终端/首选项)才能获得声音。

【讨论】:

其实它叫“响铃”。它在设置/高级中。【参考方案14】:

这对我有用(mac os 10.14.6)

echo "\x07"  

【讨论】:

这对音频和视觉警报都很有效,因为它还会闪烁屏幕,这样您就不会在关闭声音时错过通知。它还向终端应用程序添加了一个徽章,并在发布它的选项卡中显示一个铃铛图标。我认为这就是全部 - 绰绰有余!【参考方案15】:

如果您安装了 XCODE,您可以发出哔声/铃声。我还没有想到我可以让printf "\a" 字符在 C 中工作。

有一种方法可以在程序运行时使音调起作用,启动 XCODE,在 XCODE、首选项、行为下的下拉菜单中,选中第一个框 PLAY SOUND,从列表中选择或添加声音。

这是一种方法,但我相信只有在程序运行时。

【讨论】:

Xcode“行为”只有在Xcode中发生相应事件时才会执行。它们不适用于系统中的其他地方。【参考方案16】:

osascript -e 'tell application "System Events" 发出哔哔声'

【讨论】:

beepAppleScriptStandard Additions 的一部分,因此您不需要也不应该使用 系统事件,只需osascript -e 'beep' 即可。但是,OP 已经表示他们尝试过 beep 并没有产生想要的结果!【参考方案17】:

更多选项,请听并挑选

ls /System/Library/Sounds/ | awk 'print $1' | while read sound; do printf "using $sound...\n"; afplay /System/Library/Sounds/$voice; sleep 0.5; done

ls /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/ | awk 'print $1' | while read sound; do printf "using $voice...\n"; afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/$sound; sleep 0.5; done

【讨论】:

以上是关于如何在 Mac OS X 10.6 中发出硬件哔声的主要内容,如果未能解决你的问题,请参考以下文章

如果在其他应用程序中按下全局键盘快捷键,如何防止发出哔声?

Mac OS X >= 10.6 上的 Finder 文件图标标记(图标覆盖)

在Mac OS X 10.6上的Python中,无法在Matplotlib中将字体更改为Helvetica

在 10.6 (Snow Leopard) 之后以编程方式设置 Mac OS X 音量

Qt 5.4 - Mac OS X 10.6 支持

在 10.6 上测试 Mac OS X 10.7 特定代码时出现“未找到符号”崩溃