Comando do terminal para definir o volume do áudio?

96

Tenho uma placa de som externa que geralmente funciona bem, exceto quando é conectada pela primeira vez ou quando ligo o laptop, o volume é definido para 100%. Ou seja, o volume geral do sistema, conforme mostrado no indicador de som.

O que estou procurando é um comando de terminal que definirá esse volume para 50%, para que eu possa executá-lo no login e não tenha que me preocupar que o primeiro áudio que eu toque me bata se eu esquecer de ligar o volume diminui. Quais comandos permitem alterar esse volume, ou seja, aquele no indicador de som?

Eu procurei no gsettings e no dbus, mas não consegui encontrar nada que me permitisse definir o volume do sistema dessa maneira. Eu sei sobre o alsamixer, mas essa não é a solução que estou procurando, pois isso não me permite alterar o volume usando o indicador de som ou as teclas multimídia do meu laptop.

Marius
fonte
@rajagenupula ele quer diminuir o mesmo volume que a GUI. O ALSA não funcionaria nesse caso, pois não é controlado pelo ALSA, mas pelo Pulseaudio. i.stack.imgur.com/9C8Z2.png
Braiam
Veja também aqui: askubuntu.com/questions/44680/…
Takkat

Respostas:

120

Parte desta resposta vem de Configurando o volume de entrada do microfone usando a linha de comando? , colocado aqui para sua conveniência.

Aumentar o volume em 5%

amixer -D pulse sset Master 5%+

Diminuir o volume em 5%

amixer -D pulse sset Master 5%-

Defina o volume para 50%

amixer -D pulse sset Master 50%

Se você estiver usando o ALSA, o amixer pode ser útil para a programação de scripts.

Ao soltar o amixer --helpcomando em um terminal, você verá algo assim:

insira a descrição da imagem aqui

Dependendo da sua placa de som, os níveis podem ser diferentes dos meus, mas você pode usar alsamixerno terminal para verificar quais níveis e quais recursos da sua placa de som você pode chamar em um comando para definir o volume como desejar.

insira a descrição da imagem aqui

No meu exemplo, com minha placa de som principal (eu tenho 2: a placa de áudio incorporada e uma PCI), os níveis variam de 0 a 100, dessa forma, posso alterar o volume de uma entrada / saída desejada na minha placa de som, soltando um terminal o próximo comando:

amixer -c 0 set Front 50DB 
amixer -c 0 set Front 64DB 

No primeiro comando, o resultado definirá a saída do painel frontal para o nível 78% e o segundo comando definirá a saída do painel frontal para o nível 100%.

Para coletar informações relacionadas aos controles do seu mixer, solte o amixercomando sem parâmetros e você obterá uma lista. Ou indique em qual dispositivo de áudio você deseja ver uma lista de controles amixer -c X(onde "X" é o número do seu dispositivo de áudio).

BTW: Lembre-se de que os valores do banco de dados são calculados logaritmicamente e não linearmente.

Lembre-se de que este comando permite controlar parâmetros em qualquer dispositivo de som que você esteja usando no momento.

Boa sorte!

Geppettvs D'Constanzo
fonte
1
Vale ressaltar que, se você não tiver um controlador "Master" ou "Master", não poderá alterar o volume de saída real, provavelmente estará trabalhando com uma placa de som incorreta. F6on alsamixere --card nna amixerplaca de som mudança.
Pooyan Khosravi 30/10/2015
Este é um bom ponto! @PooyanKhosravi, mesmo quando você pode chamar a placa de som que deseja automatizar na linha de comando, solte o "-c X" (onde "X" é o número da sua placa de som), é bom saber as informações que você forneceu. Muito obrigado!
Geppettvs D'Constanzo
pactl(ao contrário amixer) permite aumentar o volume acima de 100% (ver em pavucontrol) :-)
pevik
80

Você pode fazer isso usando o próprio PulseAudio (não recomendo o uso do ALSA, porque não é possível usar a GUI para aumentar / diminuir o volume).

Usando pactl : você pode definir os volumes para um dispositivo específico da seguinte maneira:

pactl set-sink-volume 0 +10%

Isso aumenta o volume em 10%. Se você quiser 10% abaixo:

pactl set-sink-volume 0 -10%

Se você precisar do volume em 50%:

pactl set-sink-volume 0 50%

Se você precisar agitar o lugar inteiro:

pactl set-sink-volume 0 150%

Você pode usar porcentagens ou números inteiros, mas os números inteiros são lentos e podem não ser o que você gosta.

pactl/ pacmd(ao contrário amixer) permite aumentar o volume acima de 100% :-).

Braiam
fonte
3
Se você estiver usando fones de ouvido, tente aumentar a zero a um: pactl set-pia-volume de 1 50%
Smile4ever
13
Se você deseja compartilhar os mesmos comandos em hosts diferentes com coletores diferentes, poderá usar @DEFAULT_SINK@como coletor em vez de número 0. Você define seu coletor padrão com pactl set-default-sink my-sink-name(lista nomes com pactl list short sinks).
pevik 29/09/16
3
Obtendo:, Failed to get sink information: No such entitycomo solucionar isso? - Editar, eu precisava usar uma pia além 0. O primeiro número de pactl list short sinkspode ser usado. Este comando funciona por exemplo:pactl set-sink-volume $(pactl list short sinks | head -n1 | cut -f1) 50%
ideasman42
23

amixer set 'Master' 10%+- para aumentar o som máximo em 10%

amixer set 'Master' 10%-- para diminuir o som máximo em 10%

amixer set 'Master' 10% - para obter 10% do som máximo

amixer set 'Master' 80% - para obter 80% do som máximo

.. etc.

Se você deseja definir o volume para outro que não seja 'Master', verifique a lista:

amixer scontrols


Você também pode querer conferir alsamixerepacmd

np8
fonte
6

Uma resposta tardia, mas poderia ser útil para alguém.


Você pode controlar o volume do coletor atual usando os seguintes comandos

  • Aumentar volume :pactl set-sink-volume @DEFAULT_SINK@ +1000

  • Volume mais baixo :pactl set-sink-volume @DEFAULT_SINK@ -1000

  • Sem som :pactl set-sink-mute @DEFAULT_SINK@ toggle

Você pode usar os seguintes valores para controlar o volume:

Inteiro

  • Valor específico: <number>
  • Aumentar: +<number>
  • Diminuir: -<number>

Exemplo:

pactl set-sink-volume @DEFAULT_SINK@ 50000 ajustará o volume em torno de 76%

Fator linear

  • Valor específico: <number>.<number>
  • Aumentar: +<number>.<number>
  • Diminuir: -<number>.<number>

Exemplo:

pactl set-sink-volume @DEFAULT_SINK@ 0.44\ ajustará o volume em torno de 76%

Percentaje

  • Valor específico: <number>%
  • Aumentar: +<number>%
  • Diminuir: -<number>%

Exemplo:

pactl set-sink-volume @DEFAULT_SINK@ 76% ajustará o volume em torno de 76%

Valor de decibéis

AVISO: não experimente valores de decibéis enquanto estiver usando fones de ouvido, a menos que saiba o que está fazendo, pois poderá danificar sua orelha

  • Valor específico: <number>dB
  • Aumentar: +<number>dB
  • Diminuir: -<number>dB

Exemplo:

pactl set-sink-volume @DEFAULT_SINK@ 0.0dB irá definir o volume para 100%


Fontes Arch Wiki , página de manual do pactl

Cheloide
fonte
+1 !! A única solução que funcionou para mim instantaneamente.
dboris 19/02