Comando para silenciar e ativar o som de um microfone

23

Durante conversas on-line por voz / vídeo, eu gostaria de silenciar / ativar o som do microfone sem ter que executar todas essas etapas a cada vez:

  • Indicador de som, Preferências de som, Selecione Entrada, Silenciar ou ativar o som do microfone.

Eu estou procurando por:

  • um aplicativo que pode fazer isso na linha de comando,
  • uma maneira de atribuir um atalho de teclado que pode silenciar / ativar o som do microfone
Lucian Adrian Grijincu
fonte
1
Se você usa o Empathy para bate-papo por voz, ele possui um botão de silenciar (que funciona pelo menos com o Google Talk, o Skype ainda não é suportado).
JanC
Estou procurando por algo que possa ser executado para executar um atalho, semelhante ao botão principal de alternar entre silenciar / ativar o som do laptop.
Lucian Adrian Grijincu

Respostas:

32

Vamos para

Preferências do Sistema, Teclado e clique em Atalhos e em Atalhos Personalizados:

Clique em Adicionar

Preencha:

Toggle microphone

e

amixer set Capture toggle

Para webcams USB, você precisa escolher o dispositivo (-c 1), ou talvez outro número.

amixer -c 1 sset Mic toggle

Clique em Aplicar e, em seguida, associar uma nova chave com este comando (por exemplo, a Pause/Breakchave).

Lucian Adrian Grijincu
fonte
Funciona isso com lançamentos recentes? Obrigado.
Diego V
1
Isso funciona; graças ao Lucian. Eu tenho uma tecla "mute de áudio" no meu laptop, eu mapeado-lo a mudar mudo + Áudio, que é muito fácil de lembrar :)
Pierre-Antoine
O comando amixer set Mic toggle(not Capture) funciona para mim no terminal, mas qualquer atalho de teclado atribuído não parece ser executado. Eu tentei ctrl+Audio Mute, mas também ctrl+M(capturado por pressionamento de teclas do teclado)
Jason Kleban
Confirmado, isso funciona com o Ubuntu 16.10 também.
Kushal #
No MATE, os menus para adicionar a combinação de teclas são um pouco diferentes, mas funcionam da mesma maneira. Obrigado!
11136 Stephen Angelico
9

Você pode silenciar o microfone com

amixer set Capture nocap

e mude o microfone com

amixer set Capture cap
Hickersson
fonte
1
que funcionou muito bem com pi framboesa, exceto que você substituir Mic para Captura
WhiskerBiscuit
6

pacmdé a interface da linha de comandos do PulseAudio (o subsistema de som usado em versões recentes). Não sei qual é o comando exato que você precisa, mas acho que você gostaria de jogar com a set-sink-input-mutefunção.

pacmd é interativo quando executado sem instruções, para que você tenha uma boa oportunidade de brincar com ele e convertê-lo em uma função de uma linha para alternar o som.

Oli
fonte
pacmd é apenas interativo se você não der nenhum comando. Eu costumava pacmd list-sourcesobter uma lista de entradas e saídas. No índice 2, tive uma entrada de dados. (com base no nome) Em seguida, você pode correr pacmd set-source-mute 2 1para silenciar. O último parâmetro é um valor booleano para o estado mudo. 0 ou falso para mudo e 1 ou verdadeiro para mudo.
Vitaly
4
amixer set Capture toggle && amixer get Capture | grep '\[off\]' && notify-send "MIC switched OFF" || notify-send "MIC switched ON"
vladimirich
fonte
Eu gosto da maneira em que você combinar grep e notificações: Super Neat =)
Musa Al-Hassy
3

Para alternar o som do microfone padrão no pulseaudio:

  1. Verifique se você possui pacmd(do pulseaudio-utilspacote) e notify-send(de libnotify-bin).
  2. Use este script:
#!/bin/sh

pacmd list-sources | awk '\
BEGIN {default_found=0;}

/^[\t ]*\*/ {default_found=1;}

/^[\t ]*name:/ {
    if (default_found) {
        name=$2;
        gsub("[<>]", "", name);
    }
}

/^[\t ]*muted:/ {
    if (default_found) {
        if ($2=="yes") {
            mute=0;
            icon="microphone-sensitivity-medium";
            status="unmuted"
        } else {
            mute=1;
            icon="microphone-sensitivity-muted";
            status="muted"
        }
        system("pacmd set-source-mute " name " " mute);
        system("notify-send --expire-time 1000 --icon " icon " Microphone: " status);
        exit;
    }
}

/^[\t ]*index:/{if (default_found) exit;}'
Aleksey Alekseev
fonte
3

Basta silenciar / ativar o som com este comando:

amixer -D pulse sset Capture toggle

Você também pode adicionar uma notificação para garantir que ela esteja ativada ou desativada, de acordo com a resposta de vladimirich à mesma pergunta

amixer -D pulse sset Capture toggle && amixer get Capture | grep '\[off\]' && notify-send "MIC switched OFF" || notify-send "MIC switched ON"

Inspirado no comentário de Mark Rooney para som sem som / sem som.

kujaw
fonte
2
Isso realmente funciona para mim no Ubuntu 16.04. -qpode ser pulado.
gronostaj
1
bindsym XF86AudioMicMute exec --no-startup-id amixer -D pulse sset Capture togglefori3wm
Kristof Tak
Este comando funciona para mim no Pop_OS! 19.10 (que é baseado no Ubuntu 19.10). Pode-se desabilitar explicitamente a captura de microfone com o comando amixer --device pulse sset Capture nocape aumentar o volume de captura para 0% simultaneamente com o comando amixer --device pulse sset Capture nocap 0%.
Patrick Dark
1

Você pode silenciar com:

/usr/bin/amixer -q -c 0 sset 'Master',0 mute

Ativar som:

/usr/bin/amixer -q -c 0 sset 'Master',0 unmute

Você só precisa substituir 'Master' pelo nome apropriado do mixer, no terminal, use "amixer" para obter uma lista de dispositivos do mixer.

Sobre a configuração do atalho de teclado, verifique as respostas em Como posso descobrir qual comando está associado a um determinado atalho de teclado?

João Pinto
fonte
Eles silenciam o som dos meus alto-falantes, não do microfone, mas obrigado.
Lucian Adrian Grijincu
Você só precisa substituir 'Master' pelo nome apropriado do mixer, no terminal, use "amixer" para obter uma lista de dispositivos do mixer.
João Pinto
Isso parece funcionar: # amixer set Capture toggle
Lucian Adrian Grijincu
Você pode editar sua resposta (não tenho o karma necessário) para incluir esta resposta, então eu a aceito?
Lucian Adrian Grijincu
1

Complementando a resposta de Lucian Adrian Grijincu e vladimirich

Adicione a exibição de uma mensagem ativando / desativando o microfone.

Execute vários comandos no comando de atalho:

$ sh -c "amixer set Capture toggle ; amixer get Capture | \
     grep '\[off\]' && notify-send 'MIC switched OFF' || notify-send 'MIC switched ON'"
José Roberto
fonte
0

Com base na resposta acima /ubuntu//a/337662/106182

Eu gosto de criar meus próprios terminalatalhos estúpidos. Então configrar m= mudo; mm= ativar o som

Eu adicionei isso a ./.bashrc

# ~/.bashrc
# 
alias m="amixer set Capture nocap"
alias mm="amixer set Capture cap"

atualizar

interessante o suficiente, ontem eu reativei a inicialização automática do "Screen Locker (iniciar o programa de bloqueio de tela) no menu> sessions and startup > Application Autostarte agora meu botão de silenciar o hardware começa a funcionar (após a reinicialização). Eu não tenho idéia do porquê (XFCE Xubuntu 18.08)

Eu ainda estou mantendo esses atalhos de terminal, mas só queria ressaltar

equivalente8
fonte
0

Alterno entre uma webcam / microfone USB e meu microfone interno e as outras soluções normalmente funcionam no dispositivo "padrão", que geralmente não é o dispositivo que estou usando ativamente, então escrevi para silenciar todos os microfones

pacmd list-sources | \
        grep -oP 'index: \d' | \
        awk '{ print $2 }' | \
        xargs -I{} pactl set-source-mute {} toggle
blockloop
fonte