在 Ubuntu 16.04 回归中关闭主板/PC 扬声器“哔”声

在 Ubuntu 16.04 回归中关闭主板/PC 扬声器“哔”声

我看到内核模块pcspkr在 Ubuntu 16.04 中被列入黑名单,而且当我执行时lsmod它确实没有显示出来。但是当按下或在文件顶部时,我仍然会在终端或 GUI 编辑器中听到恼人的响亮哔声。按下和在文件底部时,也会听到同样疯狂的哔声。

我尝试下载beep命令并覆盖pcskr,该命令可能已被列入黑名单,但没有任何效果。

我阅读了有关 pulseaudio X-11 铃声功能的文章,并尝试设置它以发出柔和的chime声音,但也没有成功。

我搜索了这个主题,唯一找到的是一位用户想要反向关闭敲木声并打开经典蜂鸣声。

希望其他人也对这种 1980 年代风格的哔哔声感到厌烦,并能为我指明正确的方向。提前致谢。

编辑1

我今天早上阅读了各种错误报告,但似乎人们铃铛没有像我一样试图摆脱它。

找到一个看起来很有希望的目录:ls /usr/share/sounds/ubuntu/stereo/

bell.ogg               desktop-logout.ogg      message-new-instant.ogg     service-login.ogg
button-pressed.ogg     dialog-error.ogg        message.ogg                 service-logout.ogg
button-toggle-off.ogg  dialog-information.ogg  phone-incoming-call.ogg     system-ready.ogg
button-toggle-on.ogg   dialog-question.ogg     phone-outgoing-busy.ogg     window-slide.ogg
desktop-login.ogg      dialog-warning.ogg      phone-outgoing-calling.ogg

ogg123找到了一个通过终端播放音乐文件的漂亮程序。我认为它是在 Ubuntu 16.04 中默认安装的。

当你输入:ogg123 /usr/share/sounds/ubuntu/stereo/message.ogg

Audio Device:   PulseAudio Output

Playing: /usr/share/sounds/ubuntu/stereo/message.ogg
Ogg Vorbis stream: 2 channel, 44100 Hz

...您会听到悦耳的泡泡破裂声。按下并切换message.oggbell.ogg,您会听到低音鼓节奏(不像信息.ogg但比)。 此外ogg123将声音播放到默认声音设备(在我的情况下是 HDMI 电视),而不是 PC 扬声器。我认为如果声音通过包含生成警报的活动窗口的设备播放会更好。

从启动器中选择:,,System Settings如下所示:SoundSound Effects

声音特效

现在的挑战是将系统声音放入音效警报窗口。之后,根据错误报告,选择它们并使其表现得恰当可能会成为一个新的挑战。

编辑 2-使用 GUI 方法探索声音

使用Nautilus它可以更轻松地探索声音目录。只需单击声音文件,Rhythm Box(默认)就会播放它们。通过 GUI 进行探索,子目录notifications比子目录包含更多合适的警报stereo。以下是示例屏幕:

GUI 声音

答案1

经过大量搜索后,我发现在终端中输入以下内容是可行的:

pactl upload-sample /usr/share/sounds/ubuntu/stereo/message.ogg bell.ogg

它会发出柔和的气泡爆裂声,而不是恼人的哔哔声。所有其他文件都可以从和.ogg中使用。/usr/share/sounds/ubuntu/stereo/usr/share/sounds/ubuntu/notifications

下一步是使其持久,但至少经过长时间的搜索已经取得了进展!


编辑 1-使其持久

互联网搜索建议输入:

pactl upload-sample /usr/share/sounds/ubuntu/stereo/message.ogg bell.ogg

进入文件~/.profile,但不起作用。也许脉冲音频那时没跑步吗?

所以我最终把它放到了Startup Applications这个屏幕中:

在此处输入图片描述

现在它令人讨厌嘟嘟声terminal消失了,然后柔和的气泡破裂声就像在和中一样起作用gedit


编辑 2 - 创建 bash playall、默认和菜单脚本

无需切换目录来选择每日钟声我创建了一个新目录并从/usr/share/sounds/.../...那里复制了声音候选:

$ ls /usr/local/bin/bell/sounds
Amsterdam.ogg  Blip.ogg     Mallet.ogg   Positive.ogg  Slick.ogg
bell.ogg       default.ogg  message.ogg  Rhodes.ogg

Ctrl接下来我创建了一个脚本来对目录中的所有声音进行采样。如果给定的声音文件播放时间过长,您可以使用+跳到结尾C

$cat /usr/local/bin/playall-bells
#! /bin/bash

# NAME: playall-bells
# PATH: /usr/local/bin
# DESC: Play all songs in directory /usr/local/bin/bell/sounds.
#       Parameter 1 can override to different directory.
# CALL: Typically call with "playall-bells" (no parameters).
# DATE: Created Sep 30 2016.

DIRNAME="$1"

# if no parameters set DIRNAME to bell/sounds
if [ $# == 0 ]; then
    DIRNAME=/usr/local/bin/bell/sounds
fi

# Cookie cutter debug section. Remove # from echo's
#echo "********************************************************"
#echo "*                                                      *"
#echo "*  THE DIRECTORY IS: $DIRNAME"
#echo "*                                                      *"
#echo "********************************************************"

for file in $DIRNAME
do
    printf $DIRNAME
    ogg123 $DIRNAME # If a sound plays too long <Ctrl>+C for next
done

一个特殊的声音文件default.ogg用于设置启动时的铃声。为了设置默认值,我们创建了一个新脚本。

$cat /usr/local/bin/load-default-bell
#! /bin/bash

# NAME: load-default-bell
# PATH: /usr/local/bin
#      `.ogg` sound files are stored in `/usr/local/bin/bell/sounds`
# DESC: Load bell sound to pulseaudio.
# CALL: Call with "load-default-bell" (no parameters)
#       Does not work in "~/.profile" as some users suggest
#       Works in "Startup Applications" locatable by "Dash"
# DATE: Created Sep 30 2016.
# UPDT: Oct 1 2016 - Play new bell sound after load to pulseaudio.
#       Oct 2 2016 - bell-select-menu has been created to manage default.

# NOTE: Use Nautilus or Terminal Menu to copy desired <sound>.ogg to
#       default.ogg. This sound in turn is uploaded to pulse-audio.
#       New script `bell-select-menu` will update default sound file.
#       Name of the game is to replace annoying motherboard speaker
#       beep which is a regression in Ubuntu 16.04.

pactl upload-sample /usr/local/bin/bell/sounds/default.ogg bell.ogg
printf '\a' # play new bell sound

与上述新脚本相一致,Startup Applications上述内容已更改为如下所示:

初创应用程序贝尔

最后一步是创建一个 bash 菜单来播放所有声音、收听单个声音并将最后收听的单个声音更新为默认值。菜单设计取自这个 askubuntu 问题:根据文件列表创建 bash 菜单(将文件映射到数字)。如果您喜欢我的菜单,您应该转到该问题并对该作者的答案投赞成票。

$cat /usr/local/bin/bell-select-menu
#! /bin/bash

# NAME: bell-select-menu
# PATH: /usr/local/bin
# DESC: Present menu of bell sounds to listen to all, listen to one and update default.
# CALL: bell-select-menu
# DATE: Created Oct 1, 2016.

echo "The following /usr/local/bin/bell/sounds were found"

# set the prompt used by select, replacing "#?"
PS3="'a' to hear to all files, use number to hear a single file, 
'u' to update last single file heard as new default, or 'q' to quit: "

lastfile="none"

# allow the user to choose a file
select filename in /usr/local/bin/bell/sounds/*.ogg

do

    # leave the loop if the user types 'q'
    if [[ "$REPLY" == q ]]; then break; fi

    # play all if the user types 'a'
    if [[ "$REPLY" == a ]] 
    then 
        playall-bells
        continue
    fi

    # update last file name as new default if the user types 'u'
    if [[ "$REPLY" == u ]]
    then
        if [[ "$lastfile" == none ]]
        then
            echo "No file was selected."
            break
        fi
        echo "$lastfile selected"
        cp $lastfile /usr/local/bin/bell/sounds/default.ogg
        load-default-bell
        break
    fi

    # complain if no file was selected, and loop to ask again
    if [[ "$filename" == "" ]]
    then
        echo "'$REPLY' is not a valid number"
        continue
    else
        lastfile="$filename"
    fi

    # listen to the selected file
    ogg123 "$filename"

    # loop back to ask for another
    continue
done

这种设计的缺点是当您选择play all菜单时,菜单会滚动出屏幕,您需要向后滚动窗口才能再次看到选项。

就是这样。

相关内容