Звуковой сигнал в сценарии оболочки не работает?

74

Я хочу использовать звуковой сигнал в сценарии оболочки. К сожалению, ни один из методов, которые я нашел с помощью Google, не работает для меня.

Я пробовал

echo -e '\a'

echo -ne '%pr_e%7'

и команду beep после того, как я установил ее с помощью apt.

В чем может быть причина?

    
задан NES 03.01.2011 в 21:37
источник

9 ответов

81

Сначала запустите sudo modprobe pcspkr , а затем beep должно работать.

Причина этого не в том, что по умолчанию Ubuntu больше не загружает аппаратный драйвер, создающий звуковые сигналы.

Если это работает для вас, чтобы включить загрузку pcspkr, навсегда отредактируйте файл /etc/modprobe.d/blacklist.conf (возможно, используя gksudo gedit ) и закомментируйте строку, в которой указано blacklist pcspkr , чтобы она выглядела следующим образом:

# ugly and loud noise, getting on everyone's nerves; this should be done by a
# nice pulseaudio bing (Ubuntu: #77010)
# blacklist pcspkr
    
ответ дан 8128 03.01.2011 в 21:44
источник
82

Не будучи поклонником звукового сигнала pcspkr, я использую звуковой сигнал от одного из системных звуков с помощью команды paplay установленного сервера pulseaudio.

Сначала найдите понравившийся вам звук (вы можете просматривать / usr / share / sounds для некоторых доступных, например) и создать ссылку на него

export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg

Затем он доступен как команда

alias beep='paplay $BEEP'

Теперь просто запустите beep всякий раз, когда вам это нужно. Например, чтобы предупредить вас о завершении команды:

find . | grep treasure ; beep
    
ответ дан yuvilio 27.07.2012 в 02:28
21

Чтобы устранить эту проблему настойчиво:

  • Запустите gconf-editor , и если присутствует параметр desktop | gnome | peripherals | keyboard | bell_mode , измените его с off на on
  • Запустите dconf-editor , и если присутствует параметр org | gnome | settings-daemon | peripherals | keyboard | bell-mode , измените его с off на on
  • Добавьте pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.ogg в файл ~/.xprofile (вам нужно gnome-control-center-data для glass.ogg )
  • Добавить [ "$DISPLAY" ] && xset b 100 в файл ~/.bashrc

Самый простой способ активировать это решение - перезагрузка.

Далее, чтобы немедленно реализовать это решение для уже открытого оконного окна, запустите команду pactl и запустите команду xset в соответствующем окне терминала.

    
ответ дан jdthood 12.12.2012 в 13:33
18

Поскольку это очень высокий рейтинг вопроса в google, я добавлю шаги, которые я сделал для повторного включения звукового сигнала в консоли и X11:

Для консоли Linux ( CTRL + ALT + F1 ... F6 ):

Почему это не работает по умолчанию

Как уже ответил , драйвер ядра pcspkr для динамика ПК занесен в черный список в Ubuntu.

Временно включить до перезагрузки:

sudo modprobe pcspkr

Автоматически включать при загрузке:

sudo nano /etc/modprobe.d/blacklist.conf

(удалить или прокомментировать pcspkr , добавив его # )

Для терминалов X11 (например, по умолчанию gnome-terminal )

Почему это не работает по умолчанию

В X, как и при использовании Unity, KDE, Gnome Shell, события beep записываются PulseAudio благодаря module-x11-bell , который по умолчанию загружается /usr/bin/start-pulseaudio-x11 . И звуковой образец PulseAudio воспроизводит звуковой сигнал, bell.ogg , по умолчанию пуст. Кроме того, громкость звонка может быть отключена.

Чтобы временно включить текущий сеанс,

xset b 100  # perhaps not needed, on my system it was 40 by default
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

Есть и другие подходящие образцы, которые вы можете попробовать на /usr/share/sounds , например, проверьте их в /usr/share/sounds/gnome/default/alerts/

Обратите внимание, что программа beep не нужна. Но если он установлен, он использует динамик ПК. Это был единственный способ найти звуковой сигнал под X:

sudo apt-get install beep

Чтобы автоматически включаться при загрузке, просто добавьте указанные выше строки в ~/.profile или в общесистемной системе на /etc/profile

Чтобы проверить это:

printf '\a'

Beep!

beep

Buzz!

    
ответ дан MestreLion 19.02.2015 в 12:36
12

Я столкнулся с этой проблемой раньше. Из того, что я помню, проблема заключается в том, что терминальный колокол пытается звонить внутреннему компьютерному динамику (как на рабочем столе старой школы), но ноутбуки и некоторые новые компьютеры пропускают такую ​​вещь.

Единственное решение, которое я нашел в то время, было sudo apt-get install sox и

play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>

например.

 play -n synth 0.1 sine 880 vol 0.5
    
ответ дан YodaDaCoda 12.12.2012 в 00:04
2

Если у вас есть фактические динамики, подключенные к компьютеру, и вы не получаете звуковой сигнал, это вероятно, потому что вы используете compiz. Compiz полагается на pulseaudio, улавливая звуковые сигналы и воспроизводя их, а metacity обходит обычную настройку и использует libcanberra для воспроизведения звукового сигнала. Если он работает с metacity, а не с compiz, который является вашей проблемой, в противном случае ответ htorque дает corrent.

    
ответ дан Travis Watkins 03.01.2011 в 21:56
2
ответ дан htorque 03.01.2011 в 21:43
2

Наконец-то я нашел решение, для которого не требуется alsamixer , чтобы иметь параметр PC Beep. Думаю, я помню все мои изменения:

раскомментируйте следующее в /etc/pulse/default.pa :

load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
load-module module-x11-bell sample=bell-windowing-system

за эту ошибку , запустите pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

    
ответ дан JoBu1324 12.12.2012 в 00:09
1

" Звуковой сигнал работает только в том случае, если на вашем ПК имеется« динамик ». Многие современные ноутбуки / небольшие устройства не имеют одного».

Попробуйте воспроизвести звук следующим образом: play xxxxx.wav Я нашел хороший wav файл, который кажется коротким и сладким, но вы также можете выбрать свой собственный. Работает для меня, когда все остальное не удалось.

Благодаря: tredegar & amp; hk_centos

    
ответ дан Eliptical view 06.03.2018 в 00:00