Comment mon entrée audio peut-elle toujours être le microphone de la webcam?

Chaque fois que je veux utiliser Skype, je dois aller dans les préférences sonores. Et là, tournez l’entrée audio sur ” webcam ” et décochez le bouton ” Muet “. C’est assez énervant. Est-il possible de toujours garder la même configuration?

Modification des parameters par défaut pour PulseAudio

Lors de l’exécution de pulseaudio, tous les parameters peuvent être définis en plaçant des fichiers de configuration personnalisés dans le .pulse caché .pulse de votre HOME. Si ces fichiers n’existent pas encore, vous pouvez utiliser les fichiers standard de /etc/pulse/ comme modèle. La plupart des entrées ont des explications verbeuses dans ces fichiers.

  • ~/.pulse/default.pa pour charger des modules et définir les valeurs par défaut
  • ~/.pulse/client.conf pour configurer un client pour le serveur de sons
  • ~/.pulse/daemon.conf pour définir les fréquences d’échantillonnage et les tampons

Pour que votre webcam soit la source par défaut, nous devons connaître le nom et le numéro de cette source en consultant la liste générée par la commande suivante dans un terminal:

 pacmd list-sources 

Nous ~/.pulse/default.pa ensuite la ligne suivante dans ~/.pulse/default.pa :

 set-default-source [name] 

et remplacez [name] par le nom ou le numéro de source de la source souhaitée. Nous devons ensuite nous assurer que la source est désactivée en ajoutant cette ligne:

 set-source-mute [name]|[#n]> 0 

Donnez le nom ou l’index de votre source. Vous pouvez append une variété d’autres parameters référencés dans le wiki PulseAudio (maintenant sur la page de manuel: man pulse-cli-syntax ).

Il est recommandé de tester d’abord toutes les commandes via l’interface de ligne de commande avant de modifier les fichiers de configuration. Cela peut être ouvert avec pacmd dans un terminal

Je conviens que le problème est que Pulseaudio ne définit pas un périphérique USB par défaut, car il n’est pas présent au démarrage du pouls.

Soo ma solution à cela est de se connecter au système qui remarque quand un périphérique USB est connecté … UDEV!

En passant, ces instructions sont légèrement funky, et je suppose que vous êtes à l’aise pour faire des choses en ligne de commande et que vous devenez l’utilisateur root pour mettre à jour les fichiers udev et rendre les scripts exécutables.

Tout d’abord, découvrir des trucs

Identifiant USB

La première étape consiste à twigr votre webcam et à trouver le numéro du vendeur magique et les numéros de produit en tapant

 lsusb 

J’utilise une Microsoft Lifecam, et cela se voit

 Bus 001 Device 013: ID 045e:072d Microsoft Corp. 

la partie importante est 045e: 072d

Appareil Pulseaudio

Ensuite, pendant que la webcam est connectée, recherchez le nom du périphérique pulseaudio. Type

 pacmd list-sources 

Encore une fois, je cherche la ligne qui commence par le name: alors il y a quelque chose à propos d’une Microsoft Lifecam … la voici

 name:  

mon nom de périphérique pulseaudio sera donc alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

Règles UDEV

Ensuite, j’ai créé une nouvelle règle udev qui est déclenchée lorsqu’un périphérique USB avec vendor = 045e et product = 072d est inséré. Pour créer une règle, créez un nouveau fichier appelé /etc/udev/rules.d/ .rules (j’ai appelé mon fichier /etc/udev/rules.d/95-webcam-mic.rules ).

Mettez cette ligne dans le fichier

 SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic" 

N’oubliez pas de remplacer ATTR {idVendor} et ATTR {idProduct} par les valeurs de votre webcam.

Le but de cette règle est d’exécuter un script pour définir le périphérique USB en entrée, c’est-à-dire la partie RUN+="/usr/local/bin/webcam-mic" .

Enfin, réglez la webcam pour la saisie

Aperçu rapide temps. Chaque fois que je connecte ma webcam, je veux exécuter la commande

 pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono 

Mais la commande doit être exécutée en tant que moi (l’utilisateur exécutant le bureau), mais udev s’exécute en tant qu’utilisateur root. Ainsi, lorsque udev exécute ma commande, j’ai besoin de la remplacer par mon utilisateur, puis exécutez la commande.

Nous avons donc 2 options.

  1. Rapide et sale . Faites en sorte que la règle udev soit exécutée avec su james -c pacmd set-default-source... c’est tellement faux que je ne peux même pas finir de taper la commande. Et si vous changez de webcam? Et si vous installez ceci pour un autre utilisateur?

  2. Légèrement plus propre . Exécutez un script qui lit un fichier par défaut contenant le nom du périphérique pulseaudio et votre nom d’utilisateur. Si vous voulez les fichiers, ils sont sur GitHub. Commencez par le script /usr/local/bin/webcam-mic . Le fichier par défaut /etc/default/webcam-mic doit simplement définir les 2 variables du shell, comme indiqué dans le commentaire de l’essentiel. Placez le script dans /usr/local/bin/ et rendez-le exécutable. Ensuite, placez le fichier par défaut dans /etc/defaults/ et éditez-le pour utiliser votre nom d’utilisateur et le périphérique pulseaudio.

Bonne chance!

La solution de Takkat ne fonctionnait pas pour moi, voici ma solution pour ceux qui ont encore un problème avec cela.

Il y avait deux problèmes pour moi avec la solution de Takkat. Tout d’abord, j’ai réalisé qu’il fallait un délai après le démarrage pour que le passage au microphone puisse avoir lieu (j’utilise la commande ‘veille’ dans ma solution ci-dessous). De plus, la commande ‘set-default-source’ travaillait à l’activation du microphone USB, mais Skype ne le reconnaissait pas et continuait à utiliser le microphone interne.

Pour que cela fonctionne, il est d’abord utile d’installer pavucontrol. Dans pavucontrol, ouvrez l’onglet ‘Configuration’ et observez ce qui se passe avec les commandes ci-dessous pour vérifier que tout fonctionne comme prévu.

Ensuite, depuis un terminal, entrez:

 pacmd 

De là, entrez:

 list-cards 

Dans la sortie, recherchez le numéro d’index de l’audio USB que vous souhaitez (dans mon cas, il s’agissait de «1»). Consultez ensuite les lignes répertoriées sous «Profils» pour la carte par défaut et la carte USB. Celles-ci doivent être les mêmes que celles listées dans pavucontrol, et peuvent être quelque chose comme ‘ouput: input + output’, ‘off’, ou ‘input: analog-mono’ etc. Encore dans la ligne de commande pacmd, la commande set-card-profile doit modifier les parameters dans pavucontrol. Ce que nous voulons faire ici est de basculer l’audio interne du duplex vers la sortie uniquement, et le port USB vers l’entrée.

Une fois les profils appropriés trouvés, nous souhaitons créer une commande de démarrage permettant de modifier quelques parameters juste après le démarrage. Pour créer une commande de démarrage, ouvrez le tableau de bord et recherchez “Applications de démarrage”, puis cliquez sur “Ajouter”, puis entrez le nom de votre choix et la commande appropriée ci-dessous.

Après essais et erreurs, ma commande de démarrage ressemblait à ceci:

 bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono" 

Explication: J’ai trouvé que la commande ‘sleep’ était nécessaire, cela signifie que la commande est exécutée après une pause, que je règle à 30 secondes (je pense que cela peut être moins, jouez avec cela). La commande suivante (après le ‘&&’) consiste à faire basculer le profil de carte (interne) par défaut (entrée + sortie) (duplex, qui est la valeur par défaut) en sortie uniquement. La commande suivante est pour la carte son USB (dans mon cas, le nombre est «1») pour éteindre. La dernière commande est que cette même carte se rallume en mode ‘input: analog-mono’

Vous devrez peut-être jouer avec ces parameters pour trouver celui qui fonctionne.

Maintenant, au démarrage, mon microphone USB est prêt à être utilisé au bout de 30 secondes et Skype utilise le microphone approprié.

essayez ceci, cliquez sur l’icône du haut-parleur sur votre panneau supérieur, les préférences de clic. Là, vous pouvez sélectionner une option d’entrée par défaut pour votre microphone et probablement modifier une configuration matérielle pour que tout fonctionne correctement.