Pulseaudio'da mümkün olan maksimum ses seviyesini ayarlama


26

Ubuntu_12.04 sistemimde bazı sesler / filmler / müzikler duyuluyor, kendi başına çok düşük bir ses seviyesinde. Bundan böyle ses çıkışının sesini arttırıyorum. Aşağıdaki ayarı kullanabilirim (ekran görüntüsüne bakın) görüntü tanımını buraya girin

Bu nedenle, pulseaudio'nun yalnızca makinenin "ses seviyesini arttır" düğmelerini kullanarak ses seviyesini maksimum seviyenin üzerine çıkarabileceği görülüyor. Sorum, Pulseaudio'yu daha fazla menzile veya daha yüksek bir maksimum ses seviyesine izin verecek şekilde nasıl ayarlayabilirim?

Özellikle başlamak için çok düşük bir ses seviyesine sahip bazı ses materyalleri ile, çıkış ses seviyesini (powerup) hızlı bir şekilde diğer yüksek sesle çalışan diğer malzemelere ihtiyaç duyduğundan daha yüksek bir ayara yükseltmek güzel olur.

Yanıtlar:


24

Ses kontrolünü kaydırmadan elde edebileceğimiz maksimum ses seviyesi% 100'den daha fazladır. Normal tepe sınırının% 153 üzerinde. ALSA ses seviyesini alsamixer ile 100'e ayarlamamız şartıyla bu% 100 sesin kesileceği veya bozulacağı seviyedir. Bu aynı zamanda kaydırıcı ile% 153'e yükseldiğinde olur.

Bununla birlikte, bir terminaldeki follwing komutunu kullanarak lavabo seviyesini ayarlayarak bu seviyeyi daha da artırmak mümkündür:

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

<sink>Lavabo adınızla veya lavabo endeksinizle aşağıdaki gibi değiştirin :

pacmd list-sinks

<value>Açıkçası, alt sınır 0,% 100'lük bir lineer hacmin değeridir 65536, daha yüksek herhangi bir şey daha da güçlendirilecektir. Böylece 512000 değeri,% 781'lik bir genel büyütmeye neden olacaktır.

Bu, aşırı güçlendirme yalnızca kırpma ve çirkin bozulmalara yol açmayacak, aynı zamanda hoparlörlerinize zarar verebileceği için, farklı seviyelerde ses çıkışını güçlendirmek için çok kaba bir yöntemdir.

Bu nedenle, ses çıkışınızı normalleştirmek için daha iyi bir yol olacaktır. Pulseaudio ile bunun nasıl yapılacağı hakkında aşağıdaki soruya bakın:


Ben kullandım pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150% - Ben pacmd ile henüz başarılı olamayınca beri. Her neyse, fikir zaten çok yardımcı oldu. Bu şekilde, çıktı seviyesini GUI'nin izin verdiği% 100 veya% 153'den daha fazla bir seviyeye çıkarmak mümkündür, teşekkür ederim.
insanlıkANDpeace

2
Büyük cevabınız, ses seviyesini daha büyük değerlere (% 781 amplifikasyon gibi) ayarlamanıza izin verdi. Sorumun bir kısmı da, başlangıçta kullanılan ölçeğin nasıl değiştirileceğidir, böylece% 0'dan% 100'e (GUI yoluyla) değil,% 0'dan% 781'e kadardır. Bunu başarmak için herhangi bir ilave bilgi, belki? Ayrıca harika olurdu! teşekkür ederim
humanityANDpeace

Ses kaydırıcısı için bu değerin nasıl artırılacağı hakkında hiçbir fikrim yok. Kodlanmış olabilir, bu nedenle kaynağı yama ve yeniden derleme dışında değiştirilemez.
Takkat

Çalışmıyor: Bir program% 12'ye ayarlasam bile yine de% 100 yapabilir.
panzi

Dizüstü bilgisayar hoparlörlerimin% 150 sesini kullanarak tahrip etmesine de izin verdim. Onları değiştirmek zorunda kaldım. Olası hasar uyarısının haklı olduğuna dikkat edin.
brett

7

Bu komutu denedim:

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

ve çok yardımcı oldu. Bir% 150 herhangi bir değere değiştirebilir.


Ses kontrolünü devre dışı bıraktığını söylemelisin.
Yeşil,

4

Video Gösterimi


kullanırım

pactl set-sink-volume 0 100%

0Lavabo numarası nerede pacmd list-sinksve 100%varsayılan önlenmemiş birimdir. Sesi artırmak için ( 200%örneğin) % 100'ün üzerindeki değerleri girebilirsiniz .


ses kontrolünü devre dışı bırakır.
Yeşil

niye ya? hayır değil. Sadece denedim ve sorun değil. Mesele şu ki, ses seviyesini ses seviyesi çubuğunun ulaşabileceği maksimum ses seviyesinin üzerine çıkarması. Dolu bir çubuk muhtemelen yaklaşık% 150 olabilir, bu nedenle% 200 çubukla yapılamaz. @ Yeşil
Mina Michael

2

İşte hesaplama yapmak ve sizin için hacmi ayarlamak için küçük bir komut dosyası (sadece birimi bir argüman olarak iletin). Örneğin: vol 105ses seviyesini% 105 olarak ayarlayacaktır.

  • Dosya oluştur

    $> file=/usr/bin/vol;sudo touch $file && \
    sudo chmod u+x $file && sudo chown $USER:$USER $file && \
    gedit $file
    
  • Kopyala ve yapıştır:

    #!/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 $@
    

1

Aşağıdaki satırı bir kabuk betiğine ekledim ve babamın dizüstü bilgisayarında (12.04 32 bit) maksimum ses ayarını kaydetmediğinden başlangıçta çalışacak şekilde ayarladım.

pacmd set-sink-volume 0 99999

sadece bir ses kartı varsa, muhtemelen indeks 0'dır ve ardından tam adı yazmanız gerekmez. Yukarıda değerin 65536 değerinde olduğunu ve% 100 olduğunu görüyorum. 99999 kullandığımda karanlıkta çekim yapıyordum. % 153, gerçekte gui'yi kullanmakla aynı sonucu elde etmek için 100270 olacaktır.


0
#!/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

1
Cevabınız için teşekkür ederim. Mümkünse, cevabınızı biraz daha ayrıntılı olarak açıklamak için düzenler misiniz? İnsanların bir çözümün neden işe yaraması gerektiğini bilmeleri her zaman yararlıdır , sadece anlamadıkları kodları kör kopyalamak yerine. Bu aynı zamanda çözümleri farklı sorunlara uyarlamaya da yardımcı olur.
Henning Kockerbeck
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.