Як зробити апаратний звуковий сигнал у Mac OS X 10.6


174

Я просто хочу, щоб Mac OS X 10.6 видавав апаратний звуковий сигнал, як у відкритому корпусі та інших дистрибутивах. Я спробував дотримуватися підходів

Термінал -> beep = -bash: beep: команда не знайдена

Термінал -> сказати звуковий сигнал = голос вимовляє звуковий сигнал (Не апаратний звуковий сигнал, але приголомшливий;))

applescript -> звуковий сигнал = дзвін Macintosh (я хочу апаратний звуковий сигнал!)

Хтось знає, як зробити апаратний звуковий сигнал у bin / bash чи applescript?


3
@elhombre, для чого ти думаєш, що Mac OS X навіть може зробити таке?
Карл Норум

19
Спробуйте: скажіть "звуковий сигнал", якщо ви нічого не знайдете, найближчий, про який я можу придумати.
Патрік Бьорклунд

30
@Patrik - +1, приємно. printf "\a"видає звуковий сигнал ОС, якщо це допомагає.
Карл Норум

9
@Carsten: Mac - це ПК. ПК = персональний комп’ютер. Це просто не комп'ютер, сумісний з IBM.
Пол Р

2
MAC на базі Intel - це сумісний з IBM ПК
Натан Гарабедян

Відповіді:


24

У macOS немає "апаратного звукового сигналу".

Функціонал, про який ви думаєте, - це артефакт дуже старого (до 1990-х) IBM-сумісного обладнання. Перш ніж на більшості комп'ютерів були звукові карти, більшість машин мали невеликий динамік або п'єзозвуковий сигнал, підключений до одного з каналів мікросхеми таймера. Це можна використовувати для створення простих тонів або звукових сигналів. Навіть після того, як багато комп’ютери вбудували звукові карти, комп'ютери залишалися загальним протягом певного часу, щоб передати цей вихід на окремий внутрішній динамік. Останнім часом багато комп'ютерів, особливо ноутбуки, інтегрували цю функціональність у бортову звукову карту.

(Якщо вам цікаво технічні деталі того, як працював інтерфейс динаміків ПК, тут детальніше .)

Це обладнання ніколи не існувало в комп'ютерах Apple. Єдиний доступний аудіо вихід через звукову карту, і єдиний системний звуковий сигнал у macOS - це звуковий сигнал сповіщення користувача.


4
Через 7 років пошук завершився ^^ Дякую собаці в Інтернеті. Але я все ще насолоджуюся всіма творчими способами, на які люди відповідають на питання, тому продовжуйте їхати!
елхомбре

Це цікавий дріб’язок, але він насправді не відповідає на питання ...
Іен Данн

3
@IanDunn Впевнений, що це так - уважно читайте перший та останній абзаци. Питання - це запитання про те, чого не існує.
duskwuff -inactive-

1
Ага, ти маєш рацію, я недостатньо уважно прочитав питання та коментарі ОП, і подумав, що вони просто хочуть самого звуку, незалежно від того, чи це надходить через програмне забезпечення чи обладнання. Моє ліжко.
Ян Данн

1
Термінальний дзвінок передував ПК 90-х майже 100 років: en.wikipedia.org/wiki/Bell_character
kwerle

271

tput bel працює в більшості оболонок.

В OS X ця (і будь-яка інша команда, яка змушує дзвоник вимкнутись) також отримує ваш знак, якщо команда виконується, коли термінал не був на передньому плані:


35
Дивовижний побічний ефект (принаймні, у терміналі Лева) того, що у вашому терміналі зникне дзвоник, коли він знаходиться на задньому плані, - це те, що піктограма в документі стрибає, і ви отримуєте червоний індикатор, який говорить про те, що щось було завершено. Спробуйте це: "sleep 5; tput bel" запустіть цю команду, а потім натисніть на вкладку з терміналу, коли дзвоник вимкне, ви отримаєте сповіщення. Тільки те, що я шукав!
BadPirate

Користувачі Iterm: це звуковий сигнал, але не створює значок сповіщення :(
Ерік Ху

4
@EricHu -iTerm2 тепер підтримує це - github.com/gnachman/iTerm2/commit/…
брофа

1
tputце чудова команда з великою кількістю варіантів . Ця команда працює і в Linux.
Дрю Ноакс

7
echo -e "\a"також працює на OS X і, ймовірно, більш портативний
wap26

139

Друк \aне завжди працював для мене (MBA, 10.7.4). Я використовую це замість:

say "beep"

єдиний спосіб працював для мене (OSX 10.8). Ні echo -e "\ a", ні printf "\ a" не працювали.
Валерій Ван

13
Нічого собі - ви можете помістити все, що завгодно, напр .: скажіть "будівництво завершено"
Піт,

1
Найкраще його використання я бачу в Little Snitch - коли я запускаю програму на повноекранному екрані і не бачу регулярних спливаючих попереджень LS, це sayмені (лише тоді, коли на повноекранному екрані ), тобто те, що додаток було заблоковано, намагаючись підключитися до якогось хоста. Дійсно приємно. Деякий час тому мені потрібно було відслідковувати зміни на веб-сайті протягом дня, тому замість того, щоб сидіти перед екраном, я раніше sayповідомляв мені про те, що відбувається (очевидно, лише змістовний текст - це були оголошення про продаж).
Андрій

@RandyHoward Це дуже смішно, дякую! Ось список інших варіантів, якщо когось цікавить: pastebin.com/raw.php?i=czJ8MVW3
Андрій

7
Ха-ха. Ви можете змусити людей замислюватися, чи чують вони речі, додаючи два голоси один на одного: Бігайте say "Pay attention to me" &і say -v Whisper "I own you" &послідовно.
Метт

100

Дійсно, таке ефективне і дещо мелодійне:

say -v Bells "dong dong dong"

[Оновлення] На жаль, Дзвони більше не включені в останню ОС X. Спробуйте:

say -v Victoria Do your homework!

Використовуйте наступне для дослідження голосів:

say -v \?

7
сказати -в Даніель Гаррі Поттер Гаррі Поттер
Мадмартіган

1
Або просто: say -v Bells "beep".
kenorb

1
У моїх сучасних макосах немає голосу Beels.
Мартін

Так, Дзвони, здається, зняли. Використовуйте say -v '?'для переліку всіх голосів. За допомогою say -v '?' | egrep `echo $LANG | sed "s/\..*//"`списку голосів для вашої поточної мови.
k00ka

56

писати echo ^Gв баш. створити ^Gпресу ctrl+vі потім ctrl+g.


20
/usr/bin/printf "\a"а osascript -e "beep 1"також працювати досить добре
абе

хтось може пояснити, що echo ^Gробиться (тобто, що ця команда говорить з боку мирянина)? Це особливий символ, який подає звуковий сигнал для OSX? Чи є інші споріднені спеціальні символи? @mxhaack @ wongo888
Ерік Джонс

2
@EricJones ^Gє "контрольним символом", тобто символом, який не можна роздрукувати, який використовується / використовується для створення певного ефекту, наприклад, наприклад, запускаючи дзвінок / звуковий сигнал. Подивіться цю статтю
coffeejunk

30

Це прокрутить усі голоси (працює над Yosemite):

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

1
Веселий, такий скарб! : D
idleherb

27

У термінальному типі:

echo -e "\ a"

Параметр -e вказує ехо для обробки втечених символів. Оскільки \ n є новим символом рядка, \ a - це дзвінок (такий самий, як Ctrl + G).


Одна з переваг такого підходу полягає в тому, що він працює і в Linux (та інших?). Як згадувалося в іншому місці, ви також можете спробуватиprintf "\a"
rinogo

1
Для тих, хто любить дзвоник, але лінивий про цитати, echo -e \\aтакож працює.
SeldomNeedy

26

Відтворюйте довільний звуковий сигнал за допомогою afplay

Я здивований, що ніхто не згадав afplay : це програма командного рядка, яка відтворює довільні звукові файли. Минуло з часу оригінальних випусків ОС X (і NeXTSTEP, якщо ваша пам'ять така довга).

Наприклад, ви можете запустити це з командного рядка або поставити його в сценарій:

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

Ви не обмежені системними звуками; однією з переваг використання afplayє те, що ви можете вибрати власний звуковий файл як попередження. Наприклад, ви можете завантажити один із цих звукових файлів і вибрати свій улюблений.

(Додаткові бали, якщо ви знайдете запис дзвоника телетайпи Модель 33!)


Дзвоник машинки може бути досить близьким.
Андрій Макуха

13

У терміналах OS X виконайте команду: osascript -e 'beep'

Використовуючи технологію OSA (Open Script Architecture), щоб сказати AppleScript виконувати команду beep.


10
printf "\a"

Якщо ви подивитесь man printf, він надає вам список утікаючих символів, включаючи \a:

\a      Write a <bell> character.

7

printf "\a" також працює в терміналі і відтворюватиме встановлений звуковий сигнал.


7

Якщо вам щось потрібно, це звучить як "важливо"

ви можете використовувати

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

:)


1

на MacOS X для активації звуку повинна бути активована опція "звукового попередження" (термінал / налаштування).


1
Насправді це називається "Звуковий дзвін". Це в Налаштуваннях / Додатково.
Денис Малиновський


0

Якщо у вас встановлено XCODE, ви можете зробити звуковий сигнал / дзвінок. Я не подумав, що я можу змусити printf "\a"персонажа працювати у С.

Є один із способів зробити тональну роботу під час запуску програми, запустити XCODE, випадаюче меню під XCODE, Налаштування, Поведінки, встановіть прапорець у пункті PLAY SOUND, виберіть зі списку чи додайте звук.

Це один із способів зробити це, але я вважаю, що програма працює.


1
"Поведінки" Xcode виконуються лише тоді, коли відповідні події відбуваються в Xcode. Вони не застосовуються в інших місцях системи.
duskwuff -inactive-

0

osascript -e 'tell application "System Events" подати звуковий сигнал

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.