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

14

Chaque fois que je veux utiliser Skype, je dois aller dans les préférences sonores. Et là, mettez l'entrée audio en " webcam " et décochez le bouton " muet ". C'est assez ennuyeux. Existe-t-il un moyen de conserver toujours la même configuration?

Gizmoatwork
la source
1
J'ai aussi ce problème avec un quickacam logitech. Après chaque redémarrage, je dois passer par les préférences et le réinitialiser comme entrée par défaut pour que cela fonctionne. Je pense que cela a quelque chose à voir avec le fait que les périphériques USB sont chargés après que les préférences sonores sont définies de sorte que Pulse ou alsa ne "voient" pas le micro USB. Malheureusement parce que le "problème" n'est pas vraiment un problème juste un inconvénient, ce n'est pas si important que je veuille retrousser les manches de la chemise et commencer à creuser et à éditer les fichiers de configuration.

Réponses:

14

Modification des paramètres par défaut pour PulseAudio

Lors de l'exécution de pulseaudio, tous les paramètres peuvent être définis en plaçant des fichiers de configuration personnalisés dans le .pulserépertoire caché de votre HOME. Si ces fichiers n'existent pas encore, vous pouvez utiliser les fichiers standard à partir de /etc/pulse/comme modèle. La plupart des entrées contiennent des explications verbales dans ces fichiers.

  • ~/.pulse/default.pa charger des modules et définir des valeurs par défaut
  • ~/.pulse/client.conf configurer un client pour le serveur audio
  • ~/.pulse/daemon.conf pour définir des taux d'échantillonnage et des tampons

Pour faire de votre webcam la source par défaut, nous devons connaître le nom et le numéro de cette source en parcourant la liste produite par la commande suivante dans un terminal:

pacmd list-sources

Nous éditons 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 n'est pas mise en sourdine en ajoutant cette ligne:

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

Donnez le nom ou l'index de votre source. Vous pouvez ajouter une variété d'autres paramètres 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

Takkat
la source
Il n'y a pas de default.pa dans mon dossier .pulse. Dois-je créer un nouveau fichier avec une seule ligne: set-default-source x?
To Do
3
@ToDo les paramètres par défaut sont dans /etc/pulse/default.pa. Utilisez ce fichier ou copiez-le ~/.pulseavant de le modifier.
Takkat
Par souci d'exhaustivité: il faut écrire comme nom de périphérique d'entrée la chose qui est écrite à l'intérieur des accolades de sortie de pacmd list-sources. C'est à dire avec pour mon appareil c'était set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon.
Hi-Angel du
@ Hi-Angel: merci pour cela - la réponse est venue d'une version beaucoup plus ancienne de pulseaudio. Nous pouvons maintenant utiliser le nom propre d'un évier.
Takkat
6

Je suis d'accord que le problème est que Pulseaudio ne définit pas de périphérique USB par défaut car il n'est pas présent lorsque l'impulsion démarre.

Soo ma solution à cela est de se connecter au système qui fait un avis lorsqu'un périphérique USB est connecté ... UDEV!

BTW, ces instructions sont légèrement funky, et je suppose que vous êtes à l'aise de faire des choses sur la ligne de commande, et de devenir l'utilisateur root pour mettre à jour les fichiers udev et rendre les scripts exécutables.

Tout d'abord, découvrez des trucs

Identifiant USB

La première étape consiste à brancher votre webcam et à trouver le fournisseur magique et les numéros de produit en tapant

lsusb

J'utilise une Microsoft Lifecam, et elle apparaît comme

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, name:puis qui a quelque chose sur une Microsoft Lifecam ... la voici

name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>

donc mon nom d'appareil pulseaudio sera 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 vendeur = 045e et produit = 072d est inséré. Pour faire une règle, créez un nouveau fichier appelé /etc/udev/rules.d/QUELQUE CHOSE.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.

Ce que cette règle fait est d'exécuter un script pour définir le périphérique USB pour l'entrée, c'est-à-dire RUN+="/usr/local/bin/webcam-mic" partie.

Enfin, réglez la webcam pour l'entrée

Temps d'aperçu rapide. 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 s'exécuter en tant que moi (l'utilisateur exécutant le bureau), mais udev s'exécute en tant qu'utilisateur root - donc quand udev exécute ma commande, j'en ai besoin pour passer à mon utilisateur puis exécuter la commande.

Nous avons donc 2 options.

  1. Rapide et sale . Faire exécuter la règle udev 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 l'installez pour un autre utilisateur?

  2. Légèrement plus propre . Exécutez un script qui lit un fichier par défaut qui contient le nom du périphérique pulseaudio et votre nom d'utilisateur. Si vous voulez les fichiers, ils sont sur GitHub. D'abord le script /usr/local/bin/webcam-mic. Le fichier par défaut a /etc/default/webcam-micjuste besoin de définir les 2 variables shell, selon le commentaire dans l'essentiel. Mettez le script dans /usr/local/bin/et rendez-le exécutable. Ensuite, placez le fichier par défaut dans /etc/defaults/et modifiez-le pour utiliser votre nom d'utilisateur et le périphérique pulseaudio précédent.

Bonne chance!

James Mitchell
la source
Toute chance que vous puissiez télécharger à nouveau ces scripts; ils semblent avoir disparu de pastebin?
ej159
J'ai mis le script dans un sens sur GitHub et mis à jour la réponse.
James Mitchell
2

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

Il y avait deux problèmes pour moi avec la solution de Takkat. Tout d'abord, j'ai réalisé qu'il devait y avoir un délai après le démarrage avant que le passage au microphone puisse avoir lieu (j'utilise la commande «sommeil» dans ma solution ci-dessous). De plus, la commande «set-default-source» fonctionnait pour activer le microphone USB, mais Skype ne le reconnaissait pas et a continué à utiliser le microphone interne.

Pour que cela fonctionne, il est tout 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 les choses fonctionnent comme prévu.

Ensuite, à partir d'un terminal, entrez:

pacmd

De là, entrez:

list-cards

Dans la sortie, trouvez le numéro d'index de l'audio USB que vous souhaitez (dans mon cas, c'était «1»). Jetez ensuite un œil aux lignes répertoriées sous «profils» pour la carte par défaut et la carte USB. Ceux-ci doivent être les mêmes que ceux répertoriés dans pavucontrol, et peuvent être quelque chose comme «ouput: input + output», «off» ou «input: analog-mono» etc. Toujours dans la ligne de commande pacmd, la commande set-card-profile <index number> <profile name>doit changer les paramètres de pavucontrol. Ce que nous voulons faire ici est de basculer l'audio interne du duplex à la sortie uniquement, et l'USB à l'entrée.

Une fois les profils appropriés trouvés, nous voulons créer une commande de démarrage pour modifier quelques paramètres 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 un nom de votre choix et la commande appropriée ci-dessous.

Après essais et erreurs, ma commande de démarrage a fini par ressembler à 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 j'ai réglée à 30 secondes (je pense que cela peut être moins, jouer avec). La commande suivante (après le «&&») consiste à obtenir le profil de carte (interne) par défaut pour passer de l'entrée + sortie (duplex, qui est la valeur par défaut) à la sortie uniquement. La commande suivante consiste à désactiver la carte son USB (dans mon cas, le nombre est «1»). La dernière commande est que cette même carte se rallume en mode 'entrée: analogique-mono'

Vous devrez peut-être jouer avec ces paramètres pour trouver celui qui fonctionne.

Maintenant, au démarrage, mon microphone USB est prêt à l'emploi après 30 secondes, et Skype utilise le microphone approprié.

Geoffrey
la source
0

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 changer une configuration matérielle pour le faire fonctionner correctement.

helios66
la source
1
Merci pour votre aide, mais c'est ce que je fais en ce moment. Cependant, je ne vois aucun moyen d'en faire un paramètre par défaut. De temps en temps, je vais devoir recommencer car le réglage aurait changé.
Gizmoatwork