Gestion avancée du son pour la visio

Utiliser Jack pour router le son entre logiciels

Dans un pré­cé­dent article, je racon­tais une manière de s’a­dap­ter à l’en­sei­gne­ment à dis­tance. Cer­tains de mes col­lègues ont com­plé­té en com­men­taire de l’ar­ticle, décri­vant leurs pra­tiques, et je les en remercie.

J’u­ti­lise donc GNU/Linux, mais pour diverses rai­sons c’est le logi­ciel Teams de Micro­soft qui est mon outil quo­ti­dien d’en­sei­gne­ment. Que ce soit cet outil ou un autre, il est sou­vent dif­fi­cile de faire écou­ter aux per­sonnes qui par­ti­cipent à la séance le son d’un autre logi­ciel. Dans ce nou­vel article, je vous raconte com­ment faire cela, mais aus­si com­ment envoyer les voix des per­sonnes qui par­ti­cipent dans tout autre logiciel.

Exemple d’utilisation

Nous ani­mons depuis trois ans avec ADVOX et pour le Ser­vice Uni­ver­si­té Culture de l’U­CA un ate­lier d’au­dio­des­crip­tion. Cette année, condi­tions sani­taires obligent, il se déroule à distance.

Dans cet ate­lier, on explore avec les per­sonnes par­ti­ci­pantes tous les aspects de l’au­dio­des­crip­tion, depuis l’a­na­lyse fil­mique jus­qu’au mon­tage et mas­te­ring, en pas­sant par l’é­cri­ture et l’enregistrement.

Voi­ci un court extrait d’une séance ou l’une des per­sonnes qui par­ti­cipe à l’a­te­lier dit depuis chez elle l’au­dio­des­crip­tion. C’est mon ordi­na­teur qui enre­gistre, puis je réa­lise le mon­tage, gui­dé par les par­ti­ci­pantes et par­ti­ci­pants. Enfin, on écoute le résultat.

enre­gis­tre­ment d’une ver­sion de tra­vail de l’au­dio­des­crip­tion d’un court-métrage (5,80 mètres)

Le logi­ciel que j’u­ti­lise ici est Rea­per. Tout comme Teams, ce n’est pas mon outil quo­ti­dien, mais nous avons fait ce choix prag­ma­tique car c’est un logi­ciel gra­tuit (en ver­sion d’es­sai infi­nie) sur tous les sys­tèmes d’ex­ploi­ta­tion, et il est mas­si­ve­ment uti­li­sé, notam­ment par les radios locales. Ce que je raconte par la suite fonc­tionne par­fai­te­ment avec n’im­porte quel logi­ciel de mon­tage son, comme Ardour ou Auda­ci­ty par exemple.

Pour cet usage, j’ai donc deux besoins distincts :

  • faire entendre et voir aux per­sonnes pré­sentes le logi­ciel de mon­tage son
  • enre­gis­trer dans ce logi­ciel ce que disent les per­sonnes présentes.

Un autre exemple d’u­ti­li­sa­tion pour­rait être l’en­re­gis­tre­ment d’in­ter­views à dis­tance, pour les­quelles j’ai pré­cé­dem­ment pro­po­sé un état des lieux des pos­si­bi­li­tés.

Dans la suite, je vous pro­pose deux solu­tions, dans l’ordre où je les ai essayées. Ma pré­fé­rence va à la seconde, mais vous pour­riez avoir besoin d’u­ti­li­ser la pre­mière. Bien sûr, tout cela marche sous GNU/Linux, et il fau­drait trou­ver des équi­va­lents sur les autres sys­tèmes d’ex­ploi­ta­tion. Il me semble que la deuxième solu­tion est possible.

Première solution avec Pulseaudio

Depuis quelques années main­te­nant, Pul­seau­dio est le ser­veur de son uti­li­sé par les bureaux et dis­tri­bu­tions majeures sous Linux. Son rôle est de per­mettre à l’u­ti­li­sa­teur de choi­sir pour chaque logi­ciel vers quel sor­tie son il va envoyer le son, à quelle inten­si­té sonore, etc. 

C’est le com­pa­gnon idéal du quo­ti­dien, qui me per­met par exemple d’é­cou­ter une confé­rence dans le casque bran­ché sur mon ordi­na­teur pen­dant que ma fille écoute une his­toire audio sur l’en­ceinte Blue­tooth connec­tée au même ordinateur. 

j’é­coute radiocratie.com dans Fire­fox en uti­li­sant une carte son AudioBox.

Il faut un peu jouer d’as­tuce pour réus­sir à diri­ger du son entre logi­ciels grâce à Pul­seau­dio. Le prin­cipe consiste à créer des cartes son vir­tuelles. Pour réus­sir ça, il faut lire la doc et uti­li­ser quelques lignes de com­mande bien sen­ties, ou uti­lise le petit script conçu par Arnaud Ven­tu­ri, après l’a­voir édi­té pour qu’il cor­res­ponde à nos besoins. Arnaud pro­pose le sché­ma sui­vant pour racon­ter com­ment cela fonctionne :

un micro­phone, un mplayer et une vidéo­con­fé­rence, le tout connec­té grâce à deux cartes son vir­tuelles pour mélan­ger des sons en entrée et en sor­tie de la vidéoconférence.

Dans son uti­li­sa­tion, Arnaud uti­lise mplayer pour faire écou­ter un film à son audi­toire en vidéo­con­fé­rence. Le son de mplayer est dépa­ré en deux grâce à une carte vir­tuelle, puis envoyé à la fois dans les enceintes et dans une seconde carte son. Cette seconde carte son intègre le son de mplayer celui du micr­phone pour envoyer le tout dans la vidéoconférence.

Cette pre­mière approche per­met de résoudre l’une de mes pro­blé­ma­tiques, mais il fau­drait aller un peu plus loin pour récu­pé­rer aus­si le son de la vidéo­con­fé­rence à l’aide d’une autre carte son vir­tuelle pour l’en­voyer dans un logi­ciel de mon­tage son, si on vou­lait enre­gis­trer la voix des per­sonnes qui par­ti­cipent à la visio.

Deuxième solution avec le serveur jack

Le ser­veur jack est aus­si un ser­veur de son dont l’ob­jec­tif est de se rap­pro­cher du temps réel. C’est LE ser­veur de son de celles et ceux qui font du mon­tage son ou du son en temps réel sous GNU/Linux. Il est aus­si dis­po­nible pour MacOS X et Win­dows, mais je ne je n’ai jamais essayé sur ces plateformes.

Pour lan­cer jack, j’u­ti­lise Cadence, une des appli­ca­tions pro­po­sées par KXS­tu­dio, qui pro­pose notam­ment un pont direct avec Pul­seau­dio. On laisse donc toutes les appli­ca­tions cou­rantes (navi­ga­teur, lec­teur son, logi­ciel de visio) se connec­ter à Pul­seau­dio, et le pont (bridge en anglais) se charge de faire com­mu­ni­quer ces logi­ciels avec ceux qui vivent du côté de jack, en temps réel.

Le prin­cipe consiste ensuite à uti­li­ser le logi­ciel de mon­tage son en le connec­tant à jack (c’est comme ça qu’il marche le mieux), puis à uti­li­ser les faci­li­tés de jack pour rou­ter le son entre ce logi­ciel et le pont pul­seau­dio. J’u­ti­lise pour ça le l’in­ter­face Catia, qui faci­lite gran­de­ment ces bran­che­ments. En quelques clics glis­sés, on connecte nos logiciels.

connexion dans Catia (jack) de Rea­per aux ponts Pulseaudio
rou­tage du son dans jack pour écou­ter et enre­gis­trer en visio

Le der­nier détail consiste à régler le logi­ciel de visio sur les entrées et sor­ties qui cor­res­pondent au pont vers jack depuis Pulseaudio :

sélec­tion de jack sink comme haut-par­leur, et jack source comme micro dans Teams

Cette solu­tion est très flexible, on peut ima­gi­ner plein d’autres solu­tions de rou­tage. Atten­tion cepen­dant, si votre logi­ciel de trai­te­ment de son est réglé en mode play­back durant les enre­gis­tre­ments (c’est-à-dire qu’il rejoue le son qu’il enre­gistre), les per­sonnes à dis­tance enten­dront le son en double. Dans ce cas, au moment de l’en­re­gis­tre­ment, il est impor­tant d’en­le­ver tem­po­rai­re­ment le lien de son sor­tant de Rea­per vers Pulseaudio.

Bien sûr, tout ce que j’ai écrit ici fonc­tionne par­fai­te­ment avec Ardour et jit­si par exemple, si l’on veut uti­li­ser une solu­tion 100% libre.