Отрегулируйте максимально возможную громкость в pulaudio

Иногда звук / фильм / музыка в моей системе Ubuntu_12.04 сам по себе очень низкий. Отныне я увеличиваю громкость звука на выходе. Я могу использовать следующие настройки (см. Скриншот)введите описание здесь

Таким образом, кажется, что pulseaudio способен увеличить громкость выше максимально возможной, просто используя кнопки "увеличения громкости" на машине. У меня вопрос, как я могу настроить Pulseaudio, чтобы увеличить диапазон или увеличить максимальную громкость???

Особенно с некоторым аудио материалом, который имеет очень низкую громкость, чтобы начать с него, было бы неплохо иметь возможность быстро увеличить выходную громкость (powerup) до более высокого значения, чем это может быть необходимо для другого, уже довольно громкого, материала.

6 ответов

Решение

Максимально возможный уровень громкости, который мы можем получить, сдвинув регулятор громкости более чем на 100%, составляет ок. 153% выше нормального пикового предела. При условии, что мы установили громкость ALSA с помощью alsamixer на 100, эти 100% - это уровень, выше которого звук будет обрезан или искажен. Это также произойдет при усилении до 153% с помощью ползунка.

Тем не менее, возможно дальнейшее повышение этого уровня путем установки уровня приемника с помощью следующей команды в терминале:

pacmd set-sink-volume <sink> <value>

замещать <sink> с вашим именем или индексом, как указано в:

pacmd list-sinks

Нижний предел для <value> очевидно 0, линейный объем 100% является значением 65536все, что выше, будет еще больше усиливаться. Таким образом, значение 512000 приведет к избыточному усилению на 781%.

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

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

Я попробовал эту команду:

pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150%

и это было очень полезно. Можно изменить 150% на любое значение.

Видео Демонстрация


я использую

pactl set-sink-volume 0 100%

куда 0 это номер раковины от pacmd list-sinks а также 100% является томом без загрузки по умолчанию. Вы можете ввести значения выше 100% для усиления звука (200% например).

Вот небольшой скрипт для расчета и установки громкости (просто передайте громкость в качестве аргумента). Например: vol 105 установит громкость на 105%.

  • Создать файл

    $> file=/usr/bin/vol;sudo touch $file && \
    sudo chmod u+x $file && sudo chown $USER:$USER $file && \
    gedit $file
    
  • Скопировать и вставить:

    #!/bin/bash
    SetPacmdSinkVol()
    {
        #default index of 0 - can be changed
        local mySinkIndex=0
        #if you want to ignore pacmd output
        local ignoreOutput=true
        local num=$1
        local vol=$((num * 655)); 
        vol=$((num * 36 / 100 + vol));
        echo -e "\033[0;32mVol - ${num}:${vol}\033[0;m"
        if $ignoreOutput; then
            pacmd set-sink-volume $mySinkIndex $vol > /dev/null
        else
            pacmd set-sink-volume $mySinkIndex $vol
        fi
    }
    SetPacmdSinkVol $@
    
#!/bin/bash

FILE=/tmp/currentVolume

interval=15
minVolume=10
maxVolume=140

if [ -f "$FILE" ];
then
   CurrentVolume=$(cat $FILE )
else
   CurrentVolume=50
fi

        if [ $CurrentVolume -lt 60 ]; then
            interval=3
        elif [ $CurrentVolume -lt 80 ]; then
            interval=5
        elif [ $CurrentVolume -lt 110 ]; then
            interval=10
        else
            interval=15
        fi

if [ "$1" == "UP" ] 
then
    CurrentVolume=$(echo "$CurrentVolume + $interval" | bc)
    if (( $(echo "$maxVolume < $CurrentVolume" | bc -l) ))
    then
        CurrentVolume=$maxVolume
    fi  
else
    CurrentVolume=$(echo "$CurrentVolume - $interval" | bc)
    if (( $(echo "$minVolume > $CurrentVolume" | bc -l) ))
    then
        CurrentVolume=$minVolume
    fi
fi

echo "CurrentVolume:" $CurrentVolume >> /tmp/currentVolume.log
echo $CurrentVolume > $FILE


for i in {1..20}
do
   pactl -- set-sink-volume $i $(echo $CurrentVolume)%
done

Я вставил следующую строку в сценарий оболочки и настроил его запуск при запуске, так как мой портативный компьютер отцов (12.04 32 бит) не сохранял настройку максимальной громкости.

pacmd set-sink-volume 0 99999

если есть только одна звуковая карта, то это вероятно индекс 0, и тогда вам не нужно вводить полное имя. Я вижу выше, что значение основано на 65536, составляющем 100%. Когда я использовал 99999, я снимал в темноте. 153% на самом деле будет 100270, достигая того же результата, что и при использовании графического интерфейса.

Другие вопросы по тегам