Commande du terminal pour régler le volume audio?

96

J'ai une carte son externe qui fonctionne généralement bien, sauf que lors de sa première connexion ou lorsque j'allume mon ordinateur portable, le volume est réglé sur 100%. C'est-à-dire le volume global du système, comme indiqué dans l'indicateur de son.

Ce que je recherche, c’est une commande de terminal qui règle ce volume à 50%, de sorte que je puisse l’exécuter lors de la connexion sans avoir à craindre que le premier fichier audio que j’ai lu m’éclate si j’oublie de tourner. le volume baisse. Quelles commandes vous permettent de modifier ce volume, c'est-à-dire celui de l'indicateur de son?

J'ai fouillé dans gsettings et dbus, mais je suis incapable de trouver quoi que ce soit qui me permettrait de régler le volume du système de cette manière. Je connais alsamixer, mais ce n'est pas la solution que je recherche, car cela ne me permet pas de modifier le volume à l'aide de l'indicateur de son ou des touches multimédias de mon ordinateur portable.

Marius
la source
@rajagenupula il veut diminuer le même volume que l'interface graphique. ALSA ne fonctionnerait pas dans ce cas car il n’est pas contrôlé par ALSA mais par Pulseaudio. i.stack.imgur.com/9C8Z2.png
Braiam
Voir aussi ici: askubuntu.com/questions/44680/…
Takkat

Réponses:

120

Certaines parties de cette réponse proviennent de la définition du volume d'entrée du microphone à l'aide de la ligne de commande? , placé ici pour votre commodité.

Augmenter le volume de 5%

amixer -D pulse sset Master 5%+

Diminuer le volume de 5%

amixer -D pulse sset Master 5%-

Réglez le volume à 50%

amixer -D pulse sset Master 50%

Si vous utilisez ALSA, amixer peut être utile pour votre programmation de script.

Lorsque vous déposez la amixer --helpcommande dans un terminal, vous verrez quelque chose comme ceci:

entrez la description de l'image ici

Selon votre carte son, les niveaux peuvent être différents des miens, mais vous pouvez utiliser alsamixerle terminal pour vérifier quels niveaux et quelles fonctionnalités de votre carte son vous pouvez appeler dans une commande pour régler le volume à votre guise.

entrez la description de l'image ici

Dans mon exemple, avec ma carte son principale (j’en ai 2: la carte son intégrée et une carte son PCI), les niveaux vont de 0 à 100, ainsi je peux changer le volume de l’entrée / sortie souhaitée dans ma carte son en y glissant un terminal la prochaine commande:

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

Dans la première commande, le résultat définira la sortie du panneau avant sur un niveau de 78% et la seconde définira la sortie du panneau avant sur un niveau de 100%.

Afin de collecter des informations relatives à vos commandes de mixage, supprimez la amixercommande sans paramètre et vous obtiendrez une liste. Ou indiquez sur quel périphérique audio vous souhaitez voir une liste de commandes amixer -c X(où "X" est le numéro de votre périphérique audio).

BTW: N'oubliez pas que les valeurs de base de données sont calculées de manière logarithmique et non linéaire.

N'oubliez pas que cette commande vous permet de contrôler les paramètres de tout périphérique audio que vous utilisez actuellement.

Bonne chance!

Geppettvs D'Constanzo
la source
1
Il est à noter que si vous ne possédez pas de contrôleur "maître" ou si le contrôleur "maître" ne peut pas modifier le volume de sortie réel, vous travaillez probablement avec une mauvaise carte son. F6sur alsamixeret --card nsur le amixerchangement de carte son.
Pooyan Khosravi
C'est un bon point! @ PooyanKhosravi, même lorsque vous pouvez appeler la carte son que vous souhaitez automatiser à partir de la ligne de commande en supprimant le "-c X" (où "X" est le numéro de votre carte son), il est bon de connaître les informations que vous avez fournies. Merci beaucoup!
Geppettvs D'Constanzo
pactl(contrairement à amixer) permet d'augmenter le volume de plus de 100% (voir dans pavucontrol) :-)
pevik
80

Vous pouvez le faire en utilisant PulseAudio lui-même (je ne recommanderai pas d'utiliser ALSA car vous ne pouvez pas utiliser l'interface graphique pour augmenter ou diminuer le volume).

Utilisation de pactl : vous pouvez définir les volumes d’un périphérique spécifique comme suit:

pactl set-sink-volume 0 +10%

Cela augmente le volume de 10%. Si vous le souhaitez 10% de moins:

pactl set-sink-volume 0 -10%

Si vous avez besoin du volume à 50%:

pactl set-sink-volume 0 50%

Si vous avez besoin de basculer la place entière:

pactl set-sink-volume 0 150%

Vous pouvez utiliser des pourcentages ou des entiers, mais les entiers sont lents et peuvent ne pas vous convenir.

pactl/ pacmd(contrairement à amixer) permet d'augmenter le volume de plus de 100% :-).

Braiam
la source
3
Si vous utilisez des écouteurs, essayez d'augmenter le zéro à un: pactl set-sink-volume 1 50%
Smile4ever Du
13
Si vous souhaitez partager les mêmes commandes sur des hôtes différents avec des récepteurs différents, vous pouvez utiliser @DEFAULT_SINK@un récepteur au lieu d'un nombre 0. Vous définissez votre récepteur par défaut avec pactl set-default-sink my-sink-name(noms de liste avec pactl list short sinks).
Pevik
3
Comment: Failed to get sink information: No such entitycomment résoudre ce problème? - Edit, j'avais besoin d'utiliser un évier en plus 0. Le premier nombre de pactl list short sinkspeut être utilisé. Cette commande fonctionne par exemple:pactl set-sink-volume $(pactl list short sinks | head -n1 | cut -f1) 50%
ideasman42
23

amixer set 'Master' 10%+- pour augmenter le son max 10%

amixer set 'Master' 10%-- pour diminuer le son max 10%

amixer set 'Master' 10% - pour obtenir 10% du son maximum

amixer set 'Master' 80% - obtenir 80% du son maximum

.. etc.

Si vous souhaitez régler le volume sur autre chose que «Master», vérifiez la liste en:

amixer scontrols


Vous pouvez également vouloir vérifier alsamixeretpacmd

np8
la source
6

Une réponse tardive mais qui pourrait être utile pour quelqu'un.


Vous pouvez contrôler le volume du récepteur actuel à l’aide des commandes suivantes

  • Augmenter le volume :pactl set-sink-volume @DEFAULT_SINK@ +1000

  • Volume inférieur :pactl set-sink-volume @DEFAULT_SINK@ -1000

  • Muet :pactl set-sink-mute @DEFAULT_SINK@ toggle

Vous pouvez utiliser les valeurs suivantes pour contrôler le volume:

Entier

  • Valeur spécifique: <number>
  • Augmenter: +<number>
  • Diminution: -<number>

Exemple:

pactl set-sink-volume @DEFAULT_SINK@ 50000 va régler le volume autour de 76%

Facteur linéaire

  • Valeur spécifique: <number>.<number>
  • Augmenter: +<number>.<number>
  • Diminution: -<number>.<number>

Exemple:

pactl set-sink-volume @DEFAULT_SINK@ 0.44\ va régler le volume autour de 76%

Pourcentage

  • Valeur spécifique: <number>%
  • Augmenter: +<number>%
  • Diminution: -<number>%

Exemple:

pactl set-sink-volume @DEFAULT_SINK@ 76% va régler le volume autour de 76%

Valeur en décibels

AVERTISSEMENT: n'utilisez pas le casque avec des valeurs en décibels, sauf si vous savez ce que vous faites, vous pourriez endommager votre oreille

  • Valeur spécifique: <number>dB
  • Augmenter: +<number>dB
  • Diminution: -<number>dB

Exemple:

pactl set-sink-volume @DEFAULT_SINK@ 0.0dB va régler le volume à 100%


Sources Arch Wiki , page de manuel de pactl

Cheloide
la source
+1 !! La seule solution qui a fonctionné pour moi instantanément.
dboris le