Brevet FR3090918A1 — publié le 20200626

Description Titre de l'invention : Calibration d'un système de restitution sonore distribué [0001] La présente invention se rapporte au domaine de la restitution audio dans un système de restitution audio distribué et hétérogène. [0002] Plus particulièrement, la présente invention se rapporte à un procédé et système de calibration d'un système de restitution audio comportant une pluralité de haut-parleurs ou éléments de restitutions sonores hétérogènes. [0003] On entend par haut-parleurs hétérogènes, des haut-parleurs qui proviennent de four- nisseurs différents et/ou qui sont de types différents par exemple filaires ou sans fils. Dans un tel contexte distribué hétérogène, où des haut-parleurs filaires et sans-fils, de marques et modèles différents, sont mis en réseau et pilotés par un serveur, l'obtention d'un système d'écoute cohérent permettant d'écouter une scène sonore complète ou de diffuser un même signal audio simultanément dans plusieurs pièces d'une même habitation, n'est pas aisé. [0004] En effet, plusieurs facteurs d'hétérogénéités peuvent se présenter. Les différents haut-parleurs sans-fils possèdent leur propre horloge. Cette situation crée un défaut de coordination entre les haut-parleurs. Cc défaut de coordination comprend à la fois un défaut de synchronisation entre les horloges des haut-parleurs, c'est-à-dire que les haut-parleurs ne commencent pas à « jouer » en même temps, et un défaut de syntonisation, c'est-à-dire que les haut-parleurs ne « jouent » pas à la même cadence. [0005] Un défaut de synchronisation peut entraîner un retard audible et/ou un décalage de l'image spatiale entre les appareils. Un défaut de syntonisation peut entraîner un effet de variation de filtre en peigne, une image spatiale instable et/ou des clics audibles dus à une famine ou un gavage d'échantillons. [0006] Un autre facteur d'hétérogénéité peut provenir du fait que des haut-parleurs différents peuvent avoir des rendus sonores différents. Tout d'abord d'un point de vue global, comme certains haut-parleurs ne sont pas sur la même carte son et que d'autres sont des enceintes sans-fils, ils ne jouent probablement pas au même volume. De plus, chaque haut-parleur possède sa propre réponse fréquentielle impliquant ainsi que le rendu de chaque composante fréquentielle du signal à jouer n'est pas le même. [0007] Encore un autre facteur d'hétérogénéité peut résider dans la configuration spatiale des haut-parleurs. Dans le cas d'un rendu multicanal, les haut-parleurs ne sont généralement pas idéalement positionnés, c'est-à-dire que leurs positionnements les uns par rapport aux autres ne suivent pas des positionnements normalisés pour obtenir une écoute optimale à une position définie d'un auditeur. Par exemple, la norme ITU 2 intitule "Multichanncl stercophonic sound system with and without accompanying picture" de l'ITU-R BS.775-3, Radiocommunication Sector of ITU, Broadcasting service (sound), publié en 2012 décrit un tel positionnement de haut-parleurs pour les systèmes stéréophoniques multicanaux. [0008] Il existe différents systèmes ou protocoles permettant de ne corriger que certains facteurs d'hétérogénéités et de façon indépendante. [0009] Les systèmes d'écoute multicanal classiques contrôlent différents haut-parleurs à partir d'une même carte son, ces systèmes ne rencontrent alors pas de problèmes de synchronisation. Les problèmes de synchronisation apparaissent dès que plusieurs cartes son sont présentes ou que des enceintes sans-fils sont utilisées. Dans cc cas, le problème de synchronisation provient d'un problème de latence entre les haut-parleurs. [0010] Les fabricants d'enceintes sans fil peuvent résoudre cc problème en appliquant un protocole de synchronisation réseau entre leurs produits provenant donc d'un même fabricant, mais cc n'est plus possible dans le cas de r audio distribué hétérogène où les haut-parleurs proviennent de fabricants différents. [0011] Une autre solution consiste à trouver la latence entre les haut-parleurs à partir d'une mesure électro-acoustique. Si un même signal est envoyé au même instant à tous les haut-parleurs d'un système d'audio distribué, chacun d'entre eux le jouera à un instant différent. La mesure des différences entre ces instants donne les latences relatives entre les haut-parleurs. Synchroniser les haut-parleurs revient donc à retarder ceux qui sont les plus en avance à partir des valeurs estimées. Cette technique a déjà été appliquée pour synchroniser des haut-parleurs Bluetooth de marques et modèles différents. Cependant, elle ne prend pas en compte la dérive d'horloge qui existe entre les haut-parleurs. Ainsi, les enceintes ou haut-parleurs peuvent paraître jouer en même temps au début de la lecture mais vont se désynchroniser au cours du temps. [0012] D'autres techniques permettent de réduire des défauts de type niveau de rendu sonore ou position de haut-parleurs mais cela nécessite des mesures indépendantes liées à chaque défaut susceptible d'être corrigé. [0013] La présente invention vient améliorer la situation. [0014] Elle propose à cet effet, un procédé de calibration d'un système de restitution audio distribué, comportant un ensemble de N haut-parleurs hétérogènes contrôlés par un serveur. Le procédé est tel qu'il comporte les étapes suivantes: a) placement d'un microphone devant un premier haut-parleur de l'ensemble ; b) captation, par le microphone, d'un signal de calibration envoyé au premier haut-parleur à un premier instant et restitué par celui-ci; c) captation, par le microphone, du signal de calibration envoyé avec un décalage temporel connu aux N-1 autres haut-parleurs de l'ensemble et restitué par ces N-1 haut-parleurs; 3 d) captation, par le microphone, du signal de calibration envoyé au premier haut-parleur à un deuxième instant et restitué une nouvelle fois par celui-ci; e) itération des étapes a) à d) pour les N haut-parleurs de l'ensemble ; f) détermination d'une pluralité de facteurs d'hétérogénéités à corriger pour l'ensemble des N haut-parleurs par analyse des données ainsi captées ; g) correction des facteurs d'hétérogénéités déterminés. [0015] Le processus de calibration ainsi décrit permet d'optimiser la captation pour différents haut-parleurs hétérogènes qui n'appartiennent pas nécessairement au même fournisseur ou qui sont de type différents pour obtenir des corrections adaptées aux différents facteurs d'hétérogénéités des haut-parleurs du système de restitution. Un seul processus de calibration permet de corriger différents facteurs d'hétérogénéités, ce qui permet d'une part d'améliorer la qualité du système distribué et d'optimiser les ressources nécessaires pour la calibration de ce système. Les étapes h), c) et d) de ce procédé peuvent être effectuées dans un ordre différent sans que cela ne nuise à la portée de l'invention. [0016] Les différents modes particuliers de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de calibration défini ci-dessus. [0017] Différents facteurs d'hétérogénéités sont possibles comme une synchronisation, une syntonisation des haut-parleurs composant la coordination de ces haut-parleurs, un volume sonore des haut-parleurs, un rendu sonore des haut-parleurs et/ou une cartographie des haut-parleurs. [0018] Ces différents facteurs hétérogénéités sont au moins en partie à corriger. Tous ces facteurs pouvant être corrigés par le même processus de calibration. [0019] Dans un mode de réalisation particulier, le microphone est compris dans un appareil de calibration préalablement syntonisé avec le serveur. [0020] Ainsi, il est possible d'utiliser par exemple un terminal muni d'un microphone pour effectuer les étapes de captation. Cet appareil de calibration étant à la même cadence que le serveur, il est alors possible de corriger les facteurs d'hétérogénéités des différents hauts parleurs de façon adaptée par rapport au serveur qui les contrôle et grâce aux données captées. [0021] Dans un mode de réalisation, l'analyse des données captées comprend des détections multiples de pics dans un signal issu d'une convolution des données captées avec un signal de calibration inverse, un pic maximal étant détecté en prenant en compte un seuil de dépassement du pic détecté et une durée minimale entre deux pics détectés, pour obtenir N*(N-F1) données d'horodatage. [0022] La convolution des données captées avec le signal de calibration inverse donne les réponses impulsionnelles des différents haut-parleurs lors de la captation selon le processus décrit. La détection des pics permet donc de trouver les données d'horodatage de ces réponses impulsionnelles. [0023] Selon un mode de réalisation avantageux, un sur-échantillonnage est mis en oeuvre sur les données captées avant la détection de pics. Cc sur-échantillonnage permet d'avoir une détection de pics plus précise, ce qui affine les données d'horodatage déterminées à partir de cette détection de pics et permettra d'augmenter la précision des dérives estimées. [0024] Dans un mode de réalisation particulier, une estimation d'une dérive d'horloge d'un haut-parleur de l'ensemble par rapport à une horloge du serveur de traitement, est effectuée à partir des données d'horodatage obtenues pour les signaux de cal ibration envoyés au premier et au deuxième instant et du temps écoulé entre ces deux instants. [0025] Le calcul de cette dérive d'horloge permet de déterminer le facteur d'hétérogénéité relatif à la syntonisation des haut-parleurs qui pourra alors être corrigé pour homogénéiser le système de restitution. [0026] Pour compléter cette estimation de dérive, dans un mode de réalisation, une es- timation de la latence relative entre les haut-parleurs de l'ensemble, pris deux à deux, est effectuée à partir des données d'horodatage obtenues et des dérives estimées. [0027] Le calcul de ces latences permet de déterminer le facteur d'hétérogénéité relatif à la synchronisation des différents haut-parleurs qui pourra alors être corrigé pour homogénéiser le système de restitution. [0028] A partir de cette estimation de latence, il est possible selon un mode de réalisation, d'effectuer une estimation de la distance entre les haut-parleurs de l'ensemble, pris deux à deux, à partir des données d'horodatage obtenues, des latences relatives estimées et des dérive estimées. [0029] L'estimation de ces distances permet de déterminer le facteur d'hétérogénéité relatif à la cartographie des haut-parleurs dans le système de restitution qui pourra être corrigé pour l'homogénéiser. [0030] Selon un mode de réalisation de l'invention, un facteur d'hétérogénéité relatif à une syntonisation des haut-parleurs de l'ensemble est corrigé par un ré-échantillonnage des signaux audio destinés aux haut-parleurs correspondants, selon une fréquence dépendante des dérives d'horloge estimés des haut-parleurs avec l'horloge du serveur. [0031] Ce type de correction permet ainsi de corriger les dérives d'horloge des haut-parleurs sans modifier l'horloge de leur client respectif. [0032] Selon un mode de réalisation, un facteur d'hétérogénéité relatif à une synchronisation des haut-parleurs de l'ensemble est corrigé par un ajout d'une mémoire tampon, pour la transmission des signaux audio destinés aux haut-parleurs correspondants, dont la durée est dépendante des latences estimées des haut-parleurs. De la même façon, ce type de correction permet de corriger les latences relatives entre les haut-parleurs sans modifier les horloges des clients respectifs. [0033] Selon un mode particulier de réalisation, un facteur d'hétérogénéité relatif au rendu sonore et/ou un facteur d'hétérogénéité relatif au volume sonore des haut-parleurs de l'ensemble est corrigé par une égalisation des signaux audio destinés aux haut-parleurs correspondants, selon des gains dépendants de réponses impulsionnelles captées des haut-parleurs. [0034] Ainsi, la correction apportée sur les signaux audio permet d'adapter de façon simple le rendu sonore et/ou le volume sonore. Plusieurs facteurs d'hétérogénéités peuvent ainsi être corrigés via un même processus de calibration. [0035] Dans un mode de réalisation particulier, un facteur d'hétérogénéité relatif à une car- tographie des haut-parleurs de l'ensemble est corrigé par l'application d'une correction spatiale sur les haut-parleurs correspondants, selon au moins un délai dépendant des distances estimées entre les haut-parleurs et une position donnée d'un auditeur. [0036] Un autre facteur d'hétérogénéité est ainsi corrigé à partie de ces mêmes données captées et de distances estimées entre les haut-parleurs. [0037] La présente invention sc rapporte également à un système de calibration d'un système de restitution audio distribué, comportant un ensemble de N haut-parleurs hétérogènes contrôlés par un serveur. Le système de cal ibration comporte : un microphone qui, placé devant un premier haut-parleur de l'ensemble, est apte à capter un signal de calibration envoyé au premier haut-parleur à un premier instant et restitué par celui-ci, à capter le signal de calibration envoyé avec un décalage temporel connu aux N-1 autres haut-parleurs de l'ensemble et restitué par ces N-1 haut-parleurs, à capter le signal de calibration envoyé au premier haut-parleur à un deuxième instant et restitué par celui-ci et à itérer les opérations de captations pour les N haut-parleurs de l'ensemble, et - un serveur de traitement comportant un module de collecte des données captées, un module d'analyse apte à analyser les données captées et collectées pour déterminer une pluralité de facteurs d'hétérogénéités à corriger et un module de correction apte à calculer les corrections des facteurs d'hétérogénéités déterminés et à les transmettre aux différents modules clients des haut-parleurs correspondants pour appliquer les corrections calculées. [0038] Dans un mode de réalisation particulier, le microphone est intégré dans un terminal. [0039] Le système de calibration présente les mêmes avantages que le procédé démit pré- cédemment, qu'il met en oeuvre. [0040] L'invention vise un programme informatique comportant des instructions de code pour la mise en oeuvre des étapes du procédé de calibration tel que décrit, lorsque ces instructions sont exécutées par un processeur. [0041] Enfin l'invention se rapporte à un support de stockage, lisible par un processeur, 6 intégré ou non au système de calibration, éventuellement amovible, sur lequel est en- registré un programme informatique comportant des instructions de code pour l'exécution des étapes du procédé de calihration tel que décrit précédemment. [0042] D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels: [0043] [fig.1] La figure 1 illustre un système de calihration comportant une pluralité de haut-parleurs hétérogènes, un serveur et un microphone pour mettre en oeuvre le procédé de calibration selon un mode de réalisation de l'invention. [0044] [fig.2] La figure 2 illustre un modèle d'horloge et les facteurs d'hétérogénéités relatifs à la synchronisation et à la syntonisation selon un mode de réalisation de l'invention ; [0045] [fig.3] La figure 3 illustre un exemple de signal de calibration utilisé pour mettre en oeuvre le procédé de calihration selon un mode de réalisation de l'invention ; [0046] [fig.4] La figure 4 illustre un organigramme représentant les principales étapes d'un procédé de calihration selon un mode de réalisation de l'invention ; et [0047] [fig.5] La figure 5 illustre de façon détaillée, les étapes d'analyse et de correction mises en oeuvre selon un mode de réalisation du procédé de calibration selon l'invention. [0048] Ainsi, la figure 1 représente un système de calibration selon un mode de réalisation de l'invention. Ce système comporte un ensemble de N haut-parleurs hétérogènes HPI, HP2, HP3, HPi HPN. Dans l'exemple illustré ici, les haut-parleurs proviennent de fournisseurs différents, certains sont connecté à une carte son de façon filaire, d'autres le sont par un système de transmission sans fils. Par exemple, le haut-parleur représenté en HP1 est une enceinte Bluetoothe d'un fabriquant quelconque, le haut-parleur représenté en HPN est aussi une enceinte Bluetoothe d'un autre fabriquant [0049] Le haut-parleur représenté en HP3 est par exemple une enceinte utilisant la technologie « Apple Airplay® » pour se connecter sans fils à un serveur de diffusion. [0050] D'autres haut-parleurs de l'ensemble du système de restitution sont connectés en filaire à des dispositifs qui peuvent être différents et posséder des cartes son différentes. Par exemple, le haut-parleur représenté en HP2 est connecté à un décodeur audio vidéo de salon, de type « set top box », le haut-parleur HPi est connecté à un ordinateur personnel. Bien entendu, cette configuration n'est qu'un exemple de configuration possible, bien d'autres types de configuration sont possibles et le nombre N de haut-parleurs est variable. 7 [0051] Tous ces haut-parleurs de cet ensemble sont donc hétérogènes, ils ont chacun leur propre horloge. Chaque carte son ou haut-parleur sans-fil est piloté par un module logiciel appelé module client représenté ici en Cl, C2, C3, ..., Ci, ..., CN. Ces modules client sont eux-mêmes connectés à un serveur de traitement d'un réseau local représenté en 100. Ce serveur du réseau local peut être un ordinateur personnel, un ordinateur compact de type « Rapshcrry Pi ®», un ampli audio/vidéo (« AVR » pour Audio Vidéo Receiver en anglais), une passerelle domestique servant à la fois de point d'accès réseau externe et de serveur de réseau local, un terminal de communication. Le serveur 100 et les modules clients peuvent être intégrés à un même dispositif ou répartis sur plusieurs dispositifs dans la maison. Par exemple, le module client Cl du haut-parleur HP1 est intégré au serveur 100 alors que le module client C2 du haut-parleur HP2 est intégré dans un décodeur TV contrôlé par le serveur 100. [0052] Le serveur 100 comporte un module de traitement 150 comportant un processeur pP pour piloter les interactions entre les différents modules du serveur et coopérant avec un bloc mémoire 120 (MEM) comportant une mémoire de stockage et/ou de travail. Le module mémoire 120 stocke un programme informatique (Pg) comprenant des instructions pour l'exécution, lorsque ces instructions sont exécutées par le processeur, des étapes du procédé de calibration et tel que décrit par exemple en référence aux figures 4 et 5. Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du dispositif serveur ou téléchargeable dans l'espace mémoire de celui-ci. [0053] Ce serveur 100 comprend un module d'entrée ou de communication 110 apte à recevoir des données audio S provenant de différentes sources audio soit locales soit d'un réseau de communication. [0054] Le module de traitement 150 envoie ensuite aux modules clients Cl à CN, les données audio reçues, sous la forme de paquets RTP (pour « Real-Tinte Protocol » en anglais). Pour que ces données audio soient restituées par l'ensemble de haut-parleurs, de façon homogène, c'est-à-dire de façon à ce qu'elles constituent une scène sonore homogène et audible entre les différents haut-parleurs, les modules clients doivent pouvoir contrôler leurs haut-pal-leurs sans que ceux-ci aient des facteurs d'hétérogénéités entre eux, non corrigés. Par exemple, les différents clients Cl à CN doivent être à la fois synchronisés avec le serveur mais aussi syntonisés. Une explication de ces deux termes est décrite ultérieurement en référence à la figure 2. [0055] Le système de calibration présenté en figure 1 comporte au moins un microphone 140 connecté à un module de contrôle client (CAL) 130 qui peut être intégré au serveur comme représenté ici. Dans ce cas, le microphone peut être branché en filaire au serveur. Le module de contrôle client du microphone et le serveur partagent alors la même horloge. Ce module client est alors naturellement syntonisé avec le serveur. 8 [0056] Dans un autre mode de réalisation, un microphone 240 est intégré dans un dispositif de calihration 200 comprenant le module de contrôle du microphone 230, un module de traitement 210 comportant un microprocesseur et une mémoire MEM. Un tel dispositif de cal ihration comporte également un module de communication 220 apte à communiquer des données au serveur 100. Ce dispositif de calihration peut être par exemple un terminal de communication de type téléphone intelligent ou « smartphone » en anglais. [0057] Dans ce mode de réalisation, le dispositif de calihration possède sa propre carte son et sa propre horloge. Une syntonisation est alors à prévoir pour que le dispositif de calibration et le serveur aient la même cadence d'horloge et pour que la captation des données et les corrections à apporter aux haut-parleurs soient en cohérence avec l'horloge du serveur. Pour cela, on peut mettre en oeuvre un protocole de synchronisation réseau de type PTP ( pour « Prccision Time Protocol » en anglais) et tel que décrit par exemple dans la norme IEEE intitulée « standard for a precision dock synchronisation prolocol for networked measurement and control systems », publiée par IEEE Instrumentation and Measurement Society IEEE 1588-2008. [0058] Pour mettre en oeuvre le procédé de calihration conforme à l'invention, le mi- crophone est placé devant les haut-parleurs de l'ensemble de haut-parleurs du système de restitution selon un processus de calibration décrit ci-après. Un signal de calihration tel que décrit ultérieurement en référence à la figure 4 est envoyé par le serveur de traitement 100 aux différents haut-parleurs du système et à des instants différents selon la procédure de captation décrite ultérieurement en référence à la figure 4. [0059] Toutes les données captées par ce microphone et suivant cette procédure de ca- libration, sont collectées par exemple par le module de collecte 160 du serveur qui conserve en mémoire les signaux captés ainsi que les informations d'horodatage déterminées après analyse des signaux restitués et les différents instants d'envoi des signaux de calibration aux différents haut-pat-leurs. [0060] Ces données captées et enregistrées sont analysées par le module d'analyse 170 du serveur 100 pour déterminer une pluralité de facteurs d'hétérogénéités à con-iger sur les différents haut-parleurs. Des corrections de ces différents facteurs d'hétérogénéités sont ensuite déterminées par le module de correction 180 qui calcule les fréquences d'échantillonnage, durée de mémoire tampon, gains ou autres paramètres à appliquer aux haut-parleurs pour rendre le système homogène. [0061] Ces différents paramètres sont envoyés ensuite aux différents modules clients pour que la con-ection adaptée soit effectuée sur les haut-parleurs correspondants. [0062] Dans le cas où le microphone est intégré dans un dispositif de calibration 200, ce dispositif peut également comporter un module de collecte 260 qui collecte les données captées et les envoie au serveur par le module de communication 220. Ce dispositif de 9 calibration peut aussi intégrer un module d'analyse 270 qui de la même façon que décrit ci-dessus pour le serveur, analyse les données collectées pour déterminer une pluralité de facteurs d'hétérogénéités à corriger. Le dispositif de calibration peut envoyer ces facteurs d'hétérogénéités au serveur via son module de communication 220 ou bien déterminer lui-même les corrections à apporter s'il intègre une module de correction 270. Dans ce cas, il envoie au serveur les corrections qui sont à appliquer aux haut-parleurs via leur module client respectif [0063] Ainsi, lorsque le procédé de calibration est réalisé, le système de restitution est devenu homogène, c'est-à-dire que les différents facteurs d'hétérogénéités des haut-parleurs de l'ensemble, ont été corrigés. Les différents haut-parleurs sont alors, par exemple, synchronisés, syntonisés, ils ont un rendu sonore et un volume sonore homogènes. Leur restitution spatiale peut être corrigée pour que la scène sonore restituée par ce système de restitution soit optimale vis-à-vis de la position donnée d'un auditeur. [0064] On décrit à présent une définition des termes de synchronisation et syntonisation des horloges des différents haut-parleurs. Deux appareils fonctionnant indépendamment possèdent leur propre horloge. Une horloge est définie comme une fonction monotone égale à un temps qui augmente au rythme déterminé par la fréquence d'horloge. Elle prend en général son origine à l'instant où l'appareil est mis en route. [0065] Les horloges de deux appareils sont forcément différentes et trois paramètres sont définis: - le décalage d'horloge : différence de temps à l'origine entre deux horloges ; - la dérive d'horloge : différence de fréquence entre deux horloges ; - la déviation d'horloge : variation de la dérive au cours du temps, ou dérivée seconde de l'horloge pal- rapport au temps. [0066] Une modélisation classique d'une horloge néglige la déviation d'horloge, princi- palement causée par des changements de température. Ainsi, dans un contexte réseau serveur/client, l'horloge du client Tc s'exprime en fonction de l'horloge du serveur Ts suivant l'équation (EQ1): Tc ces + 0) où a représente la dérive d'horloge du client par rapport à celle du serveur, et représente le décalage de l'horloge du client. La figure 2 représente cette modélisation. 100671 Le décalage est un temps et s'exprime en secondes. La dérive est une valeur sans dimension égale au rapport des fréquences d'horloge du serveur et du client /Sec. Elle est généralement donnée sous forme d'une valeur en ppm (parties-par-million) produite en calculant (EQ2) : 107(1 - [0068] Dans un contexte audio, la dérive peut être trouvée à partir des fréquences d'échantillonnage. La figure 2 introduit la problématique de la coordination d'horloge: pour que le client ait la même horloge que le serveur, il faut corriger sa dérive a et colliger son décalage . La première opération conduit à la syntonisation du client et du serveur, alors que la seconde conduit à leur synchronisation. [0069] Le procédé de calibration mis en oeuvre par le système de calibration décrit ci-dessus en référence à la figure 1, est maintenant décrit en référence à la figure 4. Le système est décrit ici lorsqu'une calibration est prévue pour N haut-parleurs. [0070] Une première étape E410 de lancement de la captation est mise en oeuvre en ini- tialisant le nombre de haut-parleurs pris en compte à 0 (i=0). [0071] A l'étape E415, le microphone de captation du dispositif de calibration est placé devant un premier haut-parleur (HPi) du système de restitution qui comprend donc N haut-parleurs. [0072] A l'étape E420, un signal de calibration est envoyé à un premier instant tl, au haut- parleur HPi par le serveur via le module client Ci du haut-parleur HPi. La restitution de ce signal est captée par le microphone à cette étape E420. 100731 Le signal de calibration est par exemple un signal dont la fréquence augmente de façon logarithmique avec le temps, ce signal étant appelé en anglais "chirps" ou "sweeps" logarithmiques. 100741 La convolution du signal mesuré à la sortie du haut-parleur avec un signal de ca- libration inverse permet d'obtenir directement la réponse impulsionnelle du haut-parleur. Un tel signal est par exemple un signal de type sinus glissant exponentiel tel qu'illustré en référence à la figure 3, ESS de longueur T (0.2 s dans l'exemple illustré en figure 3) et allant de la fréquence fl (20 Hz) à f2 (20 kHz). Ce signal s'écrit de la façon suivante en fonction du temps t comme suit (EQ3): 1) [0075] La mesure de ce signal joué par un haut-parleur permet d'estimer sa réponse impul- sionnelle en calculant l'intercorrélation entre le signal mesuré et le signal théorique ESS(t). Ceci est réalisé en pratique en convoluant le signal mesuré avec un sinus glissant inverse iESS présentant une décroissance exponentielle pour compenser les 11 différences d'énergie entre les fréquences (EQ4): iESS(e) P.S.S(T --)e [0076] La figure 3 présente un tel exemple de signal de calibration, le graphe (a) représente un sinus glissant exponentiel de 0.2 s, le graphe (b), le signal inverse et le graphe (c) la réponse impulsionnelle obtenue par convolution du sinus glissant par son inverse. 100771 Aux étapes E430, E432 et E435 de la figure 4, le signal de calibration est envoyé aux haut-parleurs de l'ensemble de haut-parleurs, HPk, avec k allant de 1 à N-1 et différent de i. Ce signal est envoyé à chacun des haut-parleurs via son module client Ck avec un décalage temporel At connu qui peut être par exemple de 5s. 100781 Ce décalage temporel est enregistré en mémoire dans le serveur. Il peut être équivalent entre chacun des haut-parleurs ou différent. La restitution de ces signaux est captée à cette étape E430 par le microphone resté en face du haut-parleur HPi. 100791 L'ordre d'envoi du signal de calibration à ces différents haut-parleurs peut être préétabli par le serveur. Par exemple, dans le mode de réalisation illustré aux étapes E430 à E435 de la figure 4, si le microphone est devant de haut-parleur i, le serveur envoie un signal de calibration au haut-parleur i+1 puis au haut-parleur i+2, ...,au haut-parleur i+k modulo N jusqu'à ce que tous les haut-parleurs différents de i soient pris en compte. Il effectue cette même séquence à chaque changement de position du microphone. 100801 Un autre ordre préétabli peut être par exemple de commencer à envoyer le signal de calibration toujours en commençant au même haut-parleur différent de i selon une séquence et un ordre défini (au haut-parleur suivant si égal au haut-parleur de positionnement du microphone). [0081] Ces ordres préétablis sont connus du serveur et du module d'analyse pour savoir à quel haut-parleur correspondant une donnée captée. [0082] Enfin, le serveur peut envoyer le signal de calibration selon un ordre aléatoire aux haut-parleurs différents de i mais dans ce cas, l'identification du haut-parleur pour lequel est envoyé le signal de calibration doit être donnée en association avec la donnée captée pour que l'analyse des données captées soit pertinente. [0083] A l'étape E440, le signal de calibration est joué à nouveau par le haut-parleur HPi, à un instant t2 différent de tl, qui peut être à un décalage temporel At du dernier haut-parleur de la boucle E430 à E435 ou bien un instant temporel décalé de tl et avant la mise en oeuvre de la boucle E430 à E435. [0084] La durée séparant l'instant t2 de l'instant tl est mise en mémoire du serveur de traitement. [0085] A l'étape E440, on vérifie si la boucle E415 à E455 est finie, c'est-à-dire que tous les haut-parleurs ont été traités de la même façon. Si ce n'est pas le cas (N en E450), alors, 12 les étapes E415 à E440 sont itérés pour le haut-parleur i suivant, i allant de 0 à N-1. L'ordre de passage des haut-parleurs est le même pour la boucle E430 à E435 pour chaque itération. Lorsque tous les haut-parleurs ont été traités par la boucle E415 à E440 (O en E450), l'étape E460 est mise en oeuvre. [0086] Les étapes E420 à E440 peuvent être effectuées dans un ordre différent. Par exemple, la captation du signal de calibration envoyé aux instants tl et t2 sur le même haut-parleur i, peut être faite avant la captation des signaux restitués par les autres haut-parleurs. Il est possible également d'effectuer la captation des signaux restitués par les haut-parleurs différents de i, avant la captation du signal restitué aux instants tl et t2 du haut-parleur i. L'ordre de ces étapes indiffère sur le résultat du procédé. [0087] A l'étape E460, la captation par le microphone est arrêtée et les données captées (Dc) sont collectées et enregistrées dans une mémoire du serveur ou du dispositif de calibration selon les modes de réalisation. Ces données sont prises en compte à l'étape E470 d'analyse. Cette étape d'analyse permet de déterminer une pluralité de facteurs d'hétérogénéités à corriger pour l'ensemble des N haut-parleurs. Ces facteurs d'hétérogénéités font partie d'une liste parmi : [0088] - une coordination d'horloge des haut-parleurs comprenant une synchronisation et une syntonisation des haut-parleurs ; [0089] - un volume sonore des haut-parleurs [0090] - un rendu sonore des haut-parleurs ; et [0091] - une cartographie des haut-parleurs. [0092] Une correction adaptée aux facteurs d'hétérogénéités déterminés est ensuite dé- terminée et appliquée en E480. [0093] Ces étapes E470 et E480 sont détaillées à la figure 5 maintenant décrite. Ainsi, les données captées reçues en E460 et issues des étapes de captations E410 à E460 sont transformées en réponses impulsionnelles par convolution avec le signal inverse, comme décrit ci-dessus en référence à la figure 3. L'opération globale pouvant être lourde, il peut être préférable de la réaliser en employant une fenêtre d'analyse. [0094] Une fois cette opération effectuée, on parvient à un signal comportant une suite de réponses impulsionnelles correspondantes aux différents haut-parleurs selon l'ordre de restitution du signal de calibration de la procédure de captation. [0095] A l'étape E520, une détection de pic est déterminée sur les réponses impulsionnelles ainsi obtenues. Les temps correspondants au maximum des réponses impulsionnelles sont gardés comme données d'horodatage. L'étape de détection est en fait une détection de pics multiples. L'approche utilisée ici comme mode de réalisation consiste à découvrir chaque maximum local défini par le passage d'une pente positive à une pente négative. Tous ces maximums locaux sont ensuite triés par ordre décroissant et les N*(N + 1) premiers sont conservés. 13 [0096] Cette approche est simple mais peut entraîner des erreurs si une réponse impul- sionnelle présente un maximum moins important qu'un bruit. Pour que ces cas particuliers soient détectés, un seuil de détection de pic est défini. [0097] De plus, pour chaque réponse impulsionnelle, des pics secondaires peuvent être présents et plus importants que le pic principal d'une autre réponse. Pour éviter cela, une durée minimale est définie entre deux pics détectés sur le signal. [0098] On obtient ainsi N*(N+1) données d' horodatage (ou « timestamps » en anglais). [0099] A l'étape E522, on détermine pour chacun des haut-parleurs HPi de l'ensemble, la dérive ne i de son horloge par rapport à celle du serveur de traitement. [0100] Les données captées utilisées sont les N+1 données d'horodatage mesurées lorsque le microphone de calibration est placé devant le haut-parleur HPi. On note ces données d' horodatage T avec ka [ 0, ..., N+11_ , ainsi que le temps théorique écoulé entre deux mesures du même haut-parleur HPi : t2 -tl. [0101] Si le temps théorique écoulé entre le signal joué par le haut-parleur HPi à l'instant tl et à l'instant t2 est égale à N3 avec 8 - A t- , le temps théorique constant écoulé entre deux restitutions du signal de calibration sur deux haut-parleurs adjacents de la boucle E430 à E435, on peut estimer la dérive du haut-parleur HPi par rapport au serveur suivant l'équation (EQ5) suivante : e % - N.11 101021 Ce temps théorique t2-tl est fixé avant le lancement de la calibration et son choix peut être fonction de la précision souhaitée en termes d'estimation des différents facteurs d'hétérogénéités. 101031 En effet, la précision d'estimation des différents paramètres de coordination d'horloge et de cartographie est principalement liée à la précision d'estimation des données d'horodatage. La détection de pics sur les réponses impulsionnelles implique une précision temporelle correspondant à un échantillon, c'est-à-dire environ 20 [is pour une fréquence d'échantillonnage à 48 kHz. Au-delà du fait qu'une meilleure précision peut être souhaitable, c'est surtout l'estimation de la dérive d'horloge qui est 14 impactée. En effet, de petites valeurs de dérives sont à attendre, de l'ordre de 10 ppm. Si la durée théorique entre les deux données d'horodatages servant à l'estimation de la dérive dans l'équation EQ5 précédente est égale à ls, une erreur d'un échantillon sur l'estimation des données d'horodatage entraîne une erreur d'environ 20 ppm. [0104] Une première solution pour réduire cette erreur est d'augmenter la durée entre les restitutions du signal de calibration. Si cette durée est telle que la durée entre les deux restitutions du signal de calihration sur le même haut-parleur (t2 - tl ), servant à l'estimation de la dérive est au moins égale à 20 s, l'erreur d'estimation devient inférieure à 1 ppm. Cette solution implique d'augmenter significativement la durée totale de la calibration acoustique, ce qui n'est pas toujours envisageable. [0105] Une seconde solution consiste à sur-échantillonner les réponses impulsionnelles lors d'une étape E510 représentée en figure 5, afin d'augmenter la précision de la détection de pics. Le sur-échantillonnage par un facteur entier P est un procédé classique en traitement du signal. P - 1 zéros sont tout d'abord insérés entre les échantillons du signal à sur-échantillonner. Le signal produit est ensuite filtré par un filtre passe-bas. Dans un exemple de réalisation, ce filtre passe-bas est un filtre de « Butterworth » d'ordre 100 tel que décrit dans le document intitulé « Discrete-Time Signal Processing" des auteurs Oppenheim, A. V., Schafcr, R. W., and Buck, J. R. et publié dans Prentice Hall, second edition en 1999. Ce filtre passe-bas a une fréquence de coupure fixée à la fréquence de Nyquist Fsa, avec Es la fréquence d'échantillonnage du signal initial. Cette technique permet de réduire les erreurs d'estimation des données d'horodatage, et donc des paramètres de calibration, sans augmenter la durée de mesure. En revanche, le sur-échantillonnage engendre une augmentation du temps de calcul. [0106] En pratique, un mélange des deux solutions (augmentation de l'intervalle de temps et sur-échantillonnage) est utilisé. Le temps entre les signaux servant à l'estimation de la dérive est augmenté jusqu'à environ 8 s et un sur-échantillonnage d'un facteur 10 est implémenté. [0107] Ainsi, la dérive de chaque haut-parleur est estimée en E522. [0108] A partir des données d'horodatage obtenues en E520 et du temps théorique écoulé entre le signal de calibration joué par le haut-parleur i et le signal joué par le haut-parleur 0, égal à i(N +1) Ô , il est possible de définir une latence relative entre ces deux haut-parleurs et égale à (EQ6): .'. n = - - - i(N 1)S [0109] La définition des latences relatives par rapport au premier haut-parleur est arbitraire et peut conduire à des valeurs négatives. Pour ne parvenir qu'à des valeurs positives et ainsi avoir le retard de chaque haut-parleur par rapport à celui qui est le plus en avance, on calcule (EQ7): 8,:OL£ - ?ni [0110] On obtient ainsi toutes les latences relatives entre haut-parleur pris deux à deux, à l'étape E524. [0111] Quand toutes les dérives d'horloge et toutes les latences relatives sont connues, on peut estimer les distances entre les haut-parleurs à l'étape E526. Selon la procédure de calibration décrite en figure 4, lorsque le microphone est placé devant le haut-parleur i, les autres haut-parleurs jouent le signal de calibration dans un ordre circulaire. Pour k IO N [ , le temps théorique écoulé entre les données d'horodatage tt et T est égal à ka . La distance entre le haut-parleur i et un autre haut-parleurj est estimée suivant l'équation (EQ8) : + k)(modN) - i-- e,)-. avec c la vitesse du son dans l'air. [0112] La valeur tij représente le temps de propagation d'une onde sonore entre les deux haut-parleurs. Pour chaque couple (i, j) de haut-parleurs, la distance dij est estimée deux fois. La moyenne de ces deux valeurs est utilisée, soit (EQ9): = pour construire une matrice carrée symétrique D dont les éléments sont les carrés des distances entre chaque couple de haut-parleur : d pour 16 [0113] Après cette étape d'analyse détaillée E470, le procédé de calibration met en oeuvre une étape de correction E480 maintenant détaillée pour homogénéiser le système audio distribué hétérogène. [0114] A l'étape E530, une correction du facteur d'hétérogénéité de syntonisation, cor- respondant à la dérive d'horloge d'un haut-parleur par rapport au serveur est calculée. La dérive d'horloge entre un haut-parleur et le serveur n'est pas corrigée par une modification directe de l'horloge de la carte son du haut-parleur correspondant ou de l'enceinte sans-fil, principalement parce que l'accès à cette horloge n'est pas possible dans ce contexte d'audio distribué hétérogène. La correction est ici appliquée aux données audio par le module client contrôlant le haut-parleur. En effet, les échantillons audio sont fournis à la carte son ou à l'enceinte sans-fil par un module client tel que décrit en référence à la figure 1. [0115] Pour corriger cette dérive, un traitement sur la fréquence d'échantillonnage est effectué. En effet, si la calibration acoustique montre que les données sont jouées trop vite, le module client doit les ralentir. [0116] Ainsi, pour un haut-parleur HPi dont la dérive a par rapport au serveur a été estimée à l'étape E522, la nouvelle fréquence d'échantillonnage (FSRC) à appliquer aux échantillons audio est calculée en E530 et est égale à "/a . Cette nouvelle fréquence d'échantillonnage est donnée au convertisseur de fréquence d'échantillonnage SRC du module client Ci (SRC pour « Sample Rate Converser» en anglais). A l'étape E570, cette correction est appliquée par le client Ci, via son convertisseur SRC qui met en oeuvre dans ce mode de réalisation, une interpolation linéaire entre les échantillons et ne prend comme paramètre que la nouvelle fréquence d'échantillonnage FSRC telle que définie ci-dessus. Ce ré-échantillonnage est effectué en E580 par chacun des clients Cl, C2, CN correspondants aux haut- parleurs HPI, HP2 HPN pour corriger le facteur d'hétérogénéité de syntonisation des différents haut-parleurs. [0117] De la même façon que la correction de la dérive d'horloge et donc du facteur d'hétérogénéité de syntonisation, la correction du facteur d'hétérogénéité de synchronisation, du aux latences relatives entre les haut-parleurs, est réalisée par le module client du haut-parleur concerné par la correction. [0118] Les latences 17 calculées en E524 représentent le retard de chaque haut-parleur par rapport à celui qui est le plus en avance. En pratique, pour corriger cette latence, il n'est pas possible d'avancer la lecture des appareils retardataires. 11 faut donc retarder la lecture des haut-parleurs en avance par rapport à celui qui est le plus en retard. Pour cela, on parvient à retarder la lecture par l'ajout d'une mémoire-tampon (ou « huffering » en anglais). La durée de cette mémoire tampon 0 pour le haut-parleur est obtenue en E540 à partir des latences eé suivant l'équation (EQ10): [0119] Cette valeur de mémoire tampon est transmise au module client Ci du haut-parleur HPi en E580 pour que les données audio reçues de la part du serveur ne soient pas directement envoyées à la carte son ou à l'enceinte sans-fil mais après un délai correspondant à la taille de la mémoire tampon ainsi déterminée. La synchronisation de tous les haut-parleurs peut alors être atteinte en ajoutant 0 à la taille de la mémoire-tampon de chaque client Ci. 101201 Pour corriger le facteur d'hétérogénéité du rendu sonore des haut-parleurs, l'étape E560 récupère les réponses impulsionnelles des haut-parleurs qui ont été générées et conservées à partir des données captées. L'amplitude de sa transformée de Fourier constitue la réponse du haut-parleur en fonction de la fréquence. Elle permet à l'étape E560 de calculer l'énergie dans chaque bande de fréquences considérée. Le processus de calibration, décrit en figure 4, produit deux réponses impulsionnelles par haut-parleur. Les valeurs d'énergie estimées peuvent donc être moyennées sur ces deux mesures. La valeur d'énergie obtenue est alors moyennée sur chaque bande de fréquences pour obtenir une correction d'égalisation sous la forme d'un gain à apporter à chaque haut-parleur dans chaque bande. 101211 Ces gains d'égalisation peuvent être appliqués au niveau du serveur ou peuvent être envoyés en E580 aux différents clients pour égaliser le signal audio à transmettre aux haut-parleurs et ainsi homogénéiser le rendu sonore des haut-parleurs. 101221 Pour corriger à présent le volume sonore des haut-parleurs, à l'étape E570 et dans un mode de réalisation de cette étape, seule une égalisation globale de volume est réalisée, c'est-à-dire sur une seule bande prenant en compte tout le spectre audible. Pour éviter de saturer les haut-parleurs, l'égalisation applique une réduction de gain à chaque haut-parleur afin d'ajuster son volume au plus faible d'entre eux. [0123] Pour cela, les modules clients des haut-parleurs correspondants possèdent une option 18 de volume exprimée en pourcentage. Si Ei est l'énergie globale estimée pour chaque haut-parleur i, son volume Vi (en %) est calculé suivant l'équation suivante (EQI I): 'E;') 100 [0124] Cette correction de volume est ainsi envoyée en E580 aux modules clients corres- pondants pour qu'ils appliquent cette correction de volume par l'application d'un gain adapté. [0125] La calibration acoustique produit la matrice D des carrés des distances à l'étape E526, entre chaque couple de haut-parleur. A l'étape E550, une cartographie des haut-parleurs est d'abord réalisée à partir de ces données, afin de pouvoir ensuite appliquer une correction spatiale pour adapter le point d'écoute optimal à une position donnée d'un auditeur. [0126] Une approche basée sur les matrices de distance euclidienne (EDM pour « Euclidean Distance Matrix » en anglais) peut donc être appliquée. [0127] L'algorithme MDS (pour « Multi-Dimensional Scaling » en anglais) peut s'appliquer. Il s'appuie sur les propriétés de rang des EDM pour estimer les coordonnées cartésiennes des haut-parleurs dans un repère arbitraire comme dérit dans le document intitulé « Euclidean distance matrices : Essential theory, algorithms, and applications » des auteurs Dokmanic, I., Parhizkar, R., Ranieri, J., et Vetterli, M publié dans IEEE Signal Processing Magazine, 32(6) :12-30 en 2015. [0128] En particulier, le MDS classique définit le centre du repère au barycentre des haut- parleurs. Toutefois, une hypothèse importante doit être respectée pour pouvoir appliquer le MDS : la matrice D doit être une matrice de distance euclidienne. [0129] D'après les auteurs, cette hypothèse est vérifiée si la matrice de Gram obtenue après le centrage de la matrice D est définie semi-positive, c'est-à-dire que ses valeurs propres sont supérieures ou égales à 0. 11 se trouve que cette condition n'est pas toujours respectée dans le cas d'application décrit ci-dessus à cause du placement du microphone de mesure ou d'erreurs d'estimation des distances entre les haut-parleurs. [0130] Si la matrice D n'est pas une EDM, une autre approche est nécessaire pour la car- tographie. Par exemple, l'algorithme ACD (pour « Altenzate Coordinate Descent » en anglais). Cette méthode consiste en une descente de gradient sur chaque coordonnée recherchée pour minimiser l'erreur entre la matrice D mesurée et celle estimée. Cette méthode est décrite dans le document intitulé « Euclidean Distance Matrices Properties, Algorithms and Applications » de l'auteur Parhizkar, R, publié dans sa thèse PhD thesis, École Polytechnique Fédérale de Lausanne, Suisse en 2013. Si cet algorithme converge rapidement, il est tout de même plus lourd que le MDS classique. C'est pourquoi, dans un mode de réalisation de l'invention, l'algorithme de cartographie réalisée commence par l'application de la méthode MDS et n'applique la 19 méthode r ACD qu'une fois vérifié que la matrice des distances mesurées n'est pas une EDM. [0131] La cartographie retourne les positions de tous les haut-parleurs sous forme de co- ordonnées cartésiennes dans un repère arbitraire. L'application d'une correction spatiale du système adaptée à la position d'un auditeur nécessite la connaissance de cette position dans le même repère. Elle peut être obtenue par des méthodes de localisation basées sur des antennes de microphones ou sur plusieurs microphones répartis dans la pièce. D'autres approches peuvent être basées sur de la localisation vidéo. La détermination de la position de l'auditeur n'est pas l'objet de cette invention. Elle est reçue par le serveur à l'étape E550 pour déterminer les corrections spatiales à apporter aux différents haut-parleurs. [0132] Une première méthode de correction spatiale consiste à déplacer virtuellement tous les haut-parleurs sur un cercle dont le centre est l'auditeur. La distance entre ce dernier et chaque haut-parleur est calculée. Le rayon du cercle de haut-parleurs est la plus grande de ces distances. Le déplacement virtuel est finalement réalisé en appliquant un délai et un gain à chaque haut-parleur dont la distance à l'auditeur est inférieure au rayon du cercle. [0133] Cette méthode contribue déjà grandement à améliorer l'immersion de l'auditeur, niais ne suffit pas si les positions réelles des haut-parleurs sont trop éloignées des positions optimales définies dans la norme (ITU, 2012) citée précédemment. [0134] Dans ce cas, une adaptation angulaire replaçant virtuellement les haut-parleurs aux positions optimales peut être utilisée. Cette fonctionnalité est par exemple présente dans le codec MPEG-H et décrite dans la norme (ISO/IEC 23008-3, 2015). [0135] Ces paramètres de délai, de gain ou d'angle déterminés à cette étape E550 sont envoyés aux modules clients correspondants pour qu'ils mettent en oeuvre en E570 ces corrections afin de corriger le facteur d'hétérogénéité relatif à la cartographie. [0136] Ainsi, la réalisation d'un procédé de calibration selon l'invention permet, en une seule mesure, d'avoir accès à tous les paramètres nécessaires à l'homogénéisation d'un système d'audio distribué hétérogène. Cette calibration globale est importante puisque les paramètres dépendent les uns des autres, à savoir la latence relative entre deux haut-parleurs dépend de leur dérive d'horloge respective, et l'estimation de la distance entre deux haut-parleurs dépend de leur latence relative et de leur dérive respective. [0137] La méthode présentée ici par le système de restitution audio peut alors effectuer les corrections nécessaires : - la syntonisation par conversion de fréquence d'échantillonnage ; - la synchronisation par adaptation de mémoires tampon ; - l'égalisation globale des haut-parleurs par ajustement de leur volume ; - l'égalisation par bande de fréquence pour homogénéiser le rendu sonore ; - la configuration spatiale du système par un algorithme de cartographie. [0138] Un ou plusieurs de ces facteurs peuvent être ainsi corriges. 21 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5]