điều chỉnh âm lượng tối đa có thể trong pulseaudio


26

Đôi khi một số âm thanh / phim / nhạc trên hệ thống Ubuntu_12.04 của tôi ở mức âm lượng rất thấp. Do đó, tôi tăng âm lượng phát ra âm thanh. Tôi có thể sử dụng cài đặt sau (xem ảnh chụp màn hình) nhập mô tả hình ảnh ở đây

Do đó, có vẻ như pulseaudio có thể tăng âm lượng vượt quá mức tối đa có thể xuất hiện chỉ bằng cách sử dụng các nút "tăng âm lượng" của máy. Câu hỏi của tôi là làm thế nào tôi có thể điều chỉnh Pulseaudio để cho phép phạm vi lớn hơn hoặc tăng âm lượng tối đa cao hơn ???

Đặc biệt với một số vật liệu âm thanh có âm lượng rất thấp để bắt đầu, thật tuyệt khi có thể nhanh chóng tăng âm lượng đầu ra (powerup) lên một cài đặt cao hơn mức có thể cần thiết đối với vật liệu khá lớn khác.

Câu trả lời:


24

Mức âm lượng tối đa có thể có mà chúng ta có thể đạt được từ việc trượt điều khiển âm lượng đến hơn 100% là xấp xỉ. 153% trên giới hạn đỉnh bình thường. Với điều kiện chúng tôi đã đặt âm lượng ALSA với alsamixer thành 100, 100% này là mức trên âm thanh sẽ bị cắt hoặc méo. Điều này cũng sẽ xảy ra khi khuếch đại đến 153% với thanh trượt.

Tuy nhiên, có thể tăng thêm mức này bằng cách đặt mức chìm bằng lệnh follwing trong thiết bị đầu cuối:

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

Thay thế <sink>bằng tên chìm hoặc chỉ số chìm của bạn như được đưa ra từ:

pacmd list-sinks

Giới hạn thấp hơn <value>rõ ràng là 0, một khối lượng tuyến tính 100% là một giá trị 65536, bất cứ điều gì cao hơn sẽ được khuếch đại hơn nữa. Do đó, giá trị 512000 sẽ dẫn đến tỷ lệ quá mức 781%.

Đây là một phương pháp rất thô sơ để khuếch đại âm thanh phát ra ở các mức độ khác nhau vì việc quá mức sẽ dẫn đến không chỉ bị cắt và méo xấu mà còn có thể làm hỏng loa của bạn.

Do đó, nó sẽ là một cách tốt hơn để bình thường hóa đầu ra âm thanh của bạn. Xem câu hỏi sau về cách thực hiện việc này với pulseaudio:


Tôi đã sử dụng pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 150% - vì tôi chưa thể thành công với pacmd. Dù sao ý tưởng đã giúp rất nhiều. Bằng cách này, có thể tăng mức đầu ra lên hơn 100% hoặc 153% mà GUI cho phép, cảm ơn bạn.
nhân

2
Câu trả lời tuyệt vời của bạn cho phép đặt âm lượng thành giá trị lớn hơn (như khuếch đại 781%), điều này thật tuyệt vời. Một phần câu hỏi của tôi cũng là làm thế nào để thay đổi tỷ lệ ban đầu được sử dụng sao cho nó không phải từ 0% đến 100% (thông qua GUI) mà từ 0% đến 781%. Bất kỳ thông tin bổ sung làm thế nào để đạt được điều này, có thể? nó sẽ rất tuyệt cảm ơn bạn
nhân

Không có ý tưởng làm thế nào để tăng giá trị này cho thanh trượt âm lượng. Nó có thể được mã hóa cứng, do đó không thể thay đổi ngoài việc vá nguồn và biên dịch lại.
Takkat

Không hoạt động: Một chương trình vẫn có thể làm cho nó 100% ngay cả khi tôi đặt nó thành 12% theo cách đó.
panzi

Tôi đã phá hủy loa máy tính xách tay của mình bằng cách sử dụng âm lượng ở mức 150% cũng cho phép. Tôi đã phải thay thế chúng. Hãy lưu ý rằng cảnh báo thiệt hại có thể là hợp lý.
brett

7

Tôi đã thử lệnh này:

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

và nó rất hữu ích Người ta có thể thay đổi 150% thành bất kỳ giá trị nào.


Bạn nên đề cập rằng nó vô hiệu hóa điều khiển âm lượng.
Màu xanh lá cây

4

Trình diễn video


tôi sử dụng

pactl set-sink-volume 0 100%

Trong trường hợp 0là số chìm từ pacmd list-sinks100%là khối lượng unboosted mặc định. Bạn có thể nhập các giá trị trên 100% để tăng cường âm thanh ( 200%ví dụ).


nó vô hiệu hóa điều khiển âm lượng.
Màu xanh lá cây

tại sao? không nó không. Tôi chỉ thử nó và nó ổn. Điều này là nó tăng âm lượng trên âm lượng tối đa mà thanh âm lượng có thể đạt được. Một thanh đầy đủ có thể là khoảng 150% có thể, vì vậy 200% không thể được thực hiện với thanh. @Green
Mina Michael

2

Dưới đây là một đoạn script nhỏ để thực hiện phép tính và đặt âm lượng cho bạn (chỉ cần truyền âm lượng làm đối số). Ví dụ: vol 105sẽ đặt âm lượng thành 105%.

  • Tạo tập tin

    $> file=/usr/bin/vol;sudo touch $file && \
    sudo chmod u+x $file && sudo chown $USER:$USER $file && \
    gedit $file
    
  • Sao chép và dán:

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

Tôi đã chèn dòng sau vào tập lệnh shell và đặt nó để chạy khi khởi động vì máy tính xách tay của cha tôi (12.04 32 bit) không lưu cài đặt âm lượng tối đa.

pacmd set-sink-volume 0 99999

nếu chỉ có một card âm thanh thì đó có thể là chỉ số 0 và sau đó bạn không cần phải nhập tên đầy đủ. Tôi thấy ở trên rằng giá trị dựa trên 65536 là 100%. Khi tôi sử dụng 99999 tôi đã chụp trong bóng tối. 153% thực sự sẽ là 100270 đạt được kết quả tương tự như khi sử dụng gui.


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
Cảm ơn bạn vì câu trả lời. Nếu có thể, bạn có thể chỉnh sửa câu trả lời của mình để giải thích thêm một chút về nó không? Mọi người luôn hữu ích để biết lý do tại sao một giải pháp được cho là có hiệu quả, thay vì chỉ sao chép một cách mù quáng mã mà họ không hiểu. Điều đó cũng giúp thích ứng với các giải pháp cho các vấn đề khác nhau.
Henning Kockerbeck
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.