Jak wydać dźwięk sprzętowy w systemie Mac OS X 10.6


174

Chcę tylko, aby Mac OS X 10.6 wydawał sprzętowy sygnał dźwiękowy, jak w open suse i innych dystrybucjach. Próbowałem zastosować podejścia

Terminal -> beep = -bash: beep: polecenie nie zostało znalezione

Terminal -> say beep = głos wypowiada sygnał dźwiękowy (nie jest to dźwięk sprzętowy, ale super;))

applecript -> beep = dzwonek Macintosha (chcę dźwięk sprzętowy!)

Czy ktoś wie, jak zrobić sygnał dźwiękowy sprzętu w bin / bash lub applecript?


3
@elhombre, dlaczego myślisz, że Mac OS X może w ogóle coś takiego zrobić?
Carl Norum

19
Spróbuj: powiedz „beep”, jeśli nic nie znajdziesz, najbliższy, jaki przychodzi mi do głowy.
Patrik Björklund

30
@Patrik - +1, fajnie. printf "\a"wydaje sygnał dźwiękowy systemu operacyjnego, jeśli to pomaga.
Carl Norum

9
@Carsten: Mac to komputer PC. PC = komputer osobisty. Po prostu nie jest to komputer PC (zgodny z IBM).
Paul R

2
MAC oparty na Intelu to komputer kompatybilny z IBM
Nathan Garabedian

Odpowiedzi:


24

W systemie macOS nie ma „dźwięku sprzętowego”.

Funkcjonalność, o której myślisz, to artefakt bardzo starego (sprzed lat 90.) sprzętu kompatybilnego z IBM PC. Zanim większość komputerów posiadała karty dźwiękowe, większość komputerów miała mały głośnik lub piezoelektryczny brzęczyk podłączony do jednego z kanałów chipa czasowego. Można to wykorzystać do generowania prostych dźwięków lub sygnałów dźwiękowych. Nawet po wielu komputerowych zintegrowanych kartach dźwiękowych przez dłuższy czas komputery kierowały to wyjście do oddzielnego głośnika wewnętrznego. Ostatnio wiele komputerów, zwłaszcza laptopów, zintegrowało tę funkcję z wbudowaną kartą dźwiękową.

(Jeśli jesteś ciekawy szczegółów technicznych dotyczących działania interfejsu głośników komputera, tutaj znajdziesz więcej szczegółów ).

Ten sprzęt nigdy nie istniał w komputerach Apple. Jedynym dostępnym wyjściem audio jest karta dźwiękowa, a jedynym sygnałem dźwiękowym systemu w systemie macOS jest dźwięk ostrzeżenia użytkownika.


4
Po 7 latach poszukiwania dobiegły końca ^^ Dziękuję Piesku w Internecie. Ale nadal lubię wszystkie kreatywne sposoby, w jakie ludzie odpowiadają na to pytanie, więc nie przestawajcie!
elhombre

To ciekawa ciekawostka, ale tak naprawdę nie odpowiada na pytanie ...
Ian Dunn

3
@IanDunn Jasne, że tak - przeczytaj uważnie pierwszy i ostatni akapit. Pytanie dotyczy czegoś, czego nie ma.
duskwuff -inactive-

1
Ach, masz rację, nie przeczytałem wystarczająco dokładnie pytania i komentarzy OP i pomyślałem, że chcieli po prostu samego dźwięku, niezależnie od tego, czy pochodzi z oprogramowania, czy sprzętu. Mój błąd.
Ian Dunn

1
Dzwon terminala wyprzedza PC z lat 90-tych o prawie 100 lat: en.wikipedia.org/wiki/Bell_character
kwerle

271

tput bel działa w większości muszli.

W systemie OS X to (i każde inne polecenie, które powoduje uruchomienie dzwonka) również zapewnia odznakę, jeśli polecenie zostanie wykonane, gdy Terminal nie był na pierwszym planie:


35
Niesamowitym efektem ubocznym (przynajmniej w terminalu Lion), gdy dzwonek dzwoni w twoim terminalu, gdy znajduje się w tle, jest to, że ikona w dokumencie przeskakuje i dostajesz czerwony wskaźnik informujący, że coś zostało ukończone. Spróbuj tego: "sleep 5; tput bel" uruchom to polecenie, a następnie wyjdź tabulatorem z terminala, kiedy dzwonek się rozlegnie, otrzymasz alert. Właśnie tego szukałem!
BadPirate,

Użytkownicy Iterm: to wydaje sygnał dźwiękowy, ale nie tworzy plakietki ostrzegawczej :(
Eric Hu

4
@EricHu -iTerm2 teraz to obsługuje - github.com/gnachman/iTerm2/commit/ ...
broofa

1
tputto świetne polecenie z wieloma opcjami . To polecenie działa również w systemie Linux.
Drew Noakes

7
echo -e "\a"działa również na OS X i prawdopodobnie jest bardziej przenośny
wap26

139

Drukowanie \anie zawsze działało dla mnie (MBA, 10.7.4). Używam tego zamiast tego:

say "beep"

jedyny sposób działał dla mnie (OSX 10.8). Ani echo -e "\ a", ani printf "\ a" nie działały.
Valeriy Van

13
Wow - możesz tam umieścić cokolwiek, np .: powiedz „budowanie zakończone”
Pete,

1
Najlepsze wykorzystanie tego widzę w Little Snitch - kiedy uruchamiam aplikację na pełnym ekranie i nie widzę regularnych wyskakujących ostrzeżeń LS, to sayja je (tylko na pełnym ekranie), czyli jaka aplikacja została zablokowana przy próbie połączenia się z jakimś hostem. Bardzo miły. Jakiś czas temu musiałem śledzić zmiany na stronie w ciągu dnia, więc zamiast siedzieć przed ekranem, saydawałem znać, co się dzieje (oczywiście tylko sensowny tekst - to były reklamy sprzedaży).
Andrei,

@RandyHoward To jest naprawdę zabawne, dzięki! Oto lista innych opcji, jeśli ktoś jest zainteresowany: pastebin.com/raw.php?i=czJ8MVW3
Andrei

7
Ha ha. Możesz sprawić, że ludzie będą się zastanawiać, czy słyszą rzeczy, umieszczając dwa głosy jeden na drugim: biegnij say "Pay attention to me" &i jeden po drugim say -v Whisper "I own you" &.
Matt

100

Rzeczywiście, poniższe jest skuteczne i nieco melodyjne:

say -v Bells "dong dong dong"

[Aktualizacja] Niestety Bells nie jest już uwzględniony w najnowszym OS X. Spróbuj:

say -v Victoria Do your homework!

Użyj następujących, aby poznać głosy:

say -v \?

7
powiedz -v Daniel harry potter harry potter
Madmartigan

1
Lub po prostu: say -v Bells "beep".
kenorb

1
Nie ma głosu Beelsa na moich aktualnych macOS.
Martin,

Tak, wydaje się, że Bells został usunięty. Służy say -v '?'do wyświetlania wszystkich głosów. Użyj, say -v '?' | egrep `echo $LANG | sed "s/\..*//"`aby wyświetlić listę głosów w Twoim obecnym języku.
k00ka

56

napisz echo ^Gw bash. aby stworzyć ^Gprasę, ctrl+va następnie ctrl+g.


20
/usr/bin/printf "\a"a osascript -e "beep 1"także działa wystarczająco dobrze
abe

czy ktoś może wyjaśnić, co echo ^Grobi (czyli co mówi ta komenda w kategoriach laika)? Czy to jest znak specjalny, który oznacza sygnał dźwiękowy w systemie OSX? Czy są jakieś inne powiązane znaki specjalne? @mxhaack @ wongo888
Eric Jones

2
@EricJones ^Gto „znak kontrolny”, tj. Niedrukowalny znak, który jest / był używany do wywołania określonego efektu, takiego jak na przykład wyzwalanie dzwonka / sygnału dźwiękowego. Spójrz na ten artykuł na Wikipedii
coffeejunk

30

Spowoduje to zapętlenie wszystkich głosów (działa w 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
Zabawne, taki skarb! : D
idleherb

27

W typie terminala:

echo -e "\ a"

Parametr -e mówi echo, aby przetwarzał znaki ucieczki. Ponieważ \ n jest znakiem nowej linii, \ a jest znakiem dzwonka (tak samo jak Ctrl + G).


Jedną z zalet tego podejścia jest to, że działa również w systemie Linux (i innych?). Jak wspomniano w innym miejscu, możesz również spróbowaćprintf "\a"
rinogo

1
Dla tych, którzy kochają dzwon, ale są leniwi w cytatach, echo -e \\adziała również.
RzadkoNeedy

26

Odtwórz dowolny dźwięk ostrzeżenia za pomocą afplay

Jestem zaskoczony, że nikt nie wspomniał afplay: to program wiersza poleceń, który odtwarza dowolne pliki dźwiękowe. To istnieje od oryginalnych wersji OS X (i NeXTSTEP, jeśli masz tak długą pamięć).

Na przykład możesz to uruchomić z wiersza poleceń lub umieścić w skrypcie:

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

Nie jesteś ograniczony do dźwięków systemowych; Jedną z zalet używania afplayjest to, że możesz wybrać własny plik dźwiękowy jako ostrzeżenie. Na przykład możesz pobrać jeden z tych plików dźwiękowych i wybrać swój ulubiony.

(Dodatkowe punkty, jeśli możesz znaleźć nagranie dzwonka Teletype Model 33!)


Dzwonek do maszyny do pisania może być wystarczająco blisko.
Andriy Makukha

13

W terminalach OS X wykonaj polecenie: osascript -e 'beep'

Użycie technologii OSA (Open Script Architecture) do nakazania AppleScript wykonania polecenia beep.


10
printf "\a"

Jeśli spojrzysz na man printf, zobaczysz listę znaków ucieczki, w tym \a:

\a      Write a <bell> character.

7

printf "\a" działa również w terminalu i odtworzy ustawiony dźwięk alarmu.


7

Jeśli czegoś potrzebujesz, brzmi to jak „ważne”

możesz użyć

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

w MacOS X, opcja „ostrzeżenie dźwiękowe” (Terminal / Preferencje) musi być aktywowana, aby uzyskać dźwięk.


1
Właściwie to nazywa się „Dźwiękowy dzwonek”. Jest w Ustawieniach / Zaawansowane.
Denis Malinovsky


0

Jeśli masz zainstalowany XCODE, możesz wygenerować sygnał dźwiękowy / dzwonek. Nie pomyślałem, że mogę sprawić, by printf "\a"postać działała w C.

Jest jeden sposób, aby dźwięk działał podczas działania programu, uruchom XCODE, rozwijane menu w XCODE, Preferencje, Zachowania, zaznacz pierwsze pole ODTWÓRZ DŹWIĘK, wybierz z listy lub dodaj dźwięk.

To jeden ze sposobów, ale sądzę, że tylko podczas działania programu.


1
„Zachowania” Xcode są wykonywane tylko wtedy, gdy w Xcode wystąpią odpowiednie zdarzenia. Nie mają zastosowania w innych częściach systemu.
duskwuff

0

osascript -e 'tell application "System Events" zapiszczać

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.