DESCRIPTION DESCRIPTION
Titre : Calibration d'un système de restitution sonore distribué Title: Calibration of a distributed sound reproduction system
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. The present invention relates to the field of audio reproduction in a distributed and heterogeneous audio reproduction system.
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. More particularly, the present invention relates to a method and system for calibrating an audio reproduction system comprising a plurality of speakers or heterogeneous sound reproduction elements.
On entend par haut-parleurs hétérogènes, des haut-parleurs qui proviennent de fournisseurs différents et/ou qui sont de types différents par exemple filaires ou sans fils. By heterogeneous loudspeakers is meant loudspeakers which come from different suppliers and / or which are of different types, for example wired or wireless.
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é. In such a heterogeneous distributed context, where wired and wireless speakers, of different brands and models, are networked and controlled by a server, obtaining a coherent listening system making it possible to listen to a complete sound stage or to broadcast the same audio signal simultaneously in several rooms of the same house, is not easy.
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. Ce 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. Indeed, several factors of heterogeneity can arise. The different wireless speakers have their own clock. This situation creates a lack of coordination between the speakers. This lack of coordination includes both a lack of synchronization between the clocks of the loudspeakers, that is to say that the loudspeakers do not start to "play" at the same time, and a fault in tuning, c that is, the speakers do not "play" at the same rate.
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. A lack of synchronization can lead to an audible delay and / or a shift in the spatial image between the devices. A lack of tuning can cause a comb filter effect, an unstable spatial image and / or audible clicks due to starvation or force-feeding of samples.
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. Another factor of heterogeneity can come from the fact that different speakers can have different sound renderings. First of all from a global point of view, as some speakers are not on the same sound card and others are wireless speakers, they probably do not play at the same volume. In addition, each speaker has its own frequency response implying that the rendering of each frequency component of the signal to be played is not the same.
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 intitule "Multichannel stéréophonie sound System with and without accompanying picture" de ITTU-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. Yet another factor of heterogeneity may reside in the spatial configuration of the loudspeakers. In the case of a multichannel rendering, the speakers are generally not ideally positioned, that is to say that their positioning with respect to each other does not follow standardized positions to obtain optimal listening at a position defined of an auditor. For example, the ITU standard entitled "Multichannel stereophonie sound System with and without accompanying picture" from ITTU-R BS.775-3, Radiocommunication Sector of ITU, Broadcasting service (sound), published in 2012 describes such speaker positioning for multichannel stereophonic systems.
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. There are different systems or protocols allowing only certain heterogeneity factors to be corrected independently.
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 ce cas, le problème de synchronisation provient d'un problème de latence entre les haut-parleurs. Conventional multichannel listening systems control different speakers from the same sound card, so these systems do not experience synchronization issues. Synchronization problems appear as soon as multiple sound cards are present or wireless speakers are used. In this case, the synchronization problem stems from a latency problem between the speakers.
Les fabricants d'enceintes sans fil peuvent résoudre ce problème en appliquant un protocole de synchronisation réseau entre leurs produits provenant donc d'un même fabricant, mais ce n'est plus possible dans le cas de l'audio distribué hétérogène où les haut- parleurs proviennent de fabricants différents. Wireless speaker manufacturers can solve this problem by applying a network synchronization protocol between their products from the same manufacturer, but this is no longer possible in the case of heterogeneous distributed audio where the speakers come from different manufacturers.
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. Another solution is to find the latency between the speakers from an electro-acoustic measurement. If the same signal is sent to all speakers in a distributed audio system at the same time, each speaker will play it at a different time. Measuring the differences between these times gives the relative latencies between the speakers. Synchronizing the speakers therefore amounts to delaying those who are the most ahead from the estimated values. This technique has already been applied to synchronize Bluetooth speakers of different brands and models. However, it does not take into account the clock drift that exists between the speakers. Thus, the speakers or speakers may appear to be playing at the same time at the start of playback but will become out of sync over time.
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é. Other techniques make it possible to reduce faults such as the level of sound rendering or the position of loudspeakers, but this requires independent measurements linked to each defect capable of being corrected.
La présente invention vient améliorer la situation. The present invention improves the situation.
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-l autres haut-parleurs de l'ensemble et restitué par ces N-l haut-parleurs; 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 ;
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. To this end, it proposes a method for calibrating a distributed audio reproduction system, comprising a set of N heterogeneous loudspeakers controlled by a server. The method is such that it includes the following steps: a) placing a microphone in front of a first speaker of the assembly; b) pick-up by the microphone of a calibration signal sent to the first loudspeaker at a first instant and restored by the latter; c) capture, by the microphone, of the calibration signal sent with a known time difference to the Nl other speakers of the set and restored by these Nl speakers; d) picking up, by the microphone, of the calibration signal sent to the first loudspeaker at a second instant and restored once again by the latter; e) iteration of steps a) to d) for the N loudspeakers of the set; determination of a plurality of heterogeneity factors to be corrected for all of the N loudspeakers by analysis of the data thus captured; g) correction of the determined heterogeneity factors.
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 b), 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. The calibration process thus described makes it possible to optimize the pickup for different heterogeneous loudspeakers which do not necessarily belong to the same supplier or which are of different type in order to obtain corrections adapted to the different factors of heterogeneity of the loudspeakers of the system. of restitution. A single calibration process makes it possible to correct different heterogeneity factors, which on the one hand improves the quality of the distributed system and optimizes the resources necessary for the calibration of this system. Steps b), c) and d) of this process can be carried out in a different order without this detracting from the scope of the invention.
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. The various particular embodiments mentioned below can be added independently or in combination with each other, to the steps of the calibration process defined above.
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. Different heterogeneity factors are possible such as synchronization, tuning of the speakers making up the coordination of these speakers, loudness of the speakers, sound rendering of the speakers and / or mapping of the speakers .
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. These different heterogeneous factors are at least partly to be corrected. All these factors can be corrected by the same calibration process.
Dans un mode de réalisation particulier, le microphone est compris dans un appareil de calibration préalablement syntonisé avec le serveur. In a particular embodiment, the microphone is included in a calibration device previously tuned to the server.
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. Thus, it is possible to use, for example, a terminal provided with a microphone to carry out the capture steps. This calibration device being at the same rate as the server, it is then possible to correct the heterogeneity factors of the different loudspeakers in an adapted manner compared to the server which controls them and thanks to the data captured.
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+1) données d'horodatage. In one embodiment, the analysis of the captured data includes multiple detections of peaks in a signal resulting from a convolution of the captured data with an inverse calibration signal, a maximum peak being detected by taking into account a threshold for exceeding the peak detected and a minimum duration between two peaks detected, to obtain N * (N + 1) timestamp data.
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. The convolution of the captured data with the inverse calibration signal gives the impulse responses of the different speakers during the capture according to the process described. Peak detection therefore makes it possible to find the time stamp data for these impulse responses.
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. Ce 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. According to an advantageous embodiment, oversampling is carried out on the data captured before the peaks are detected. This oversampling allows to have more precise peak detection, which refines the timestamp data determined from this peak detection and will make it possible to increase the precision of the estimated drifts.
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 calibration envoyés au premier et au deuxième instant et du temps écoulé entre ces deux instants. In a particular embodiment, an estimate of a clock drift of a loudspeaker of the assembly with respect to a clock of the processing server is carried out from the time stamp data obtained for the signals of calibration sent at the first and second instant and the time elapsed between these two moments.
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. The calculation of this clock drift makes it possible to determine the heterogeneity factor relating to the tuning of the loudspeakers which can then be corrected to homogenize the restitution system.
Pour compléter cette estimation de dérive, dans un mode de réalisation, une estimation 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. To complete this drift estimate, in one embodiment, an estimate of the relative latency between the loudspeakers of the assembly, taken two by two, is carried out from the time stamping data obtained and the estimated drifts.
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. The calculation of these latencies makes it possible to determine the heterogeneity factor relating to the synchronization of the different loudspeakers which can then be corrected to homogenize the restitution system.
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. From this estimate of latency, it is possible according to one embodiment, to make an estimate of the distance between the loudspeakers of the set, taken two by two, from the timestamp data obtained, estimated relative latencies and estimated drift.
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. The estimation of these distances makes it possible to determine the heterogeneity factor relating to the mapping of the loudspeakers in the restitution system which can be corrected to homogenize it.
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. According to one embodiment of the invention, a heterogeneity factor relating to a tuning of the speakers of the set is corrected by resampling the audio signals intended for the corresponding speakers, according to a frequency dependent on the drifts of estimated clock of speakers with server clock.
Ce type de correction permet ainsi de corriger les dérives d'horloge des haut- parleurs sans modifier l'horloge de leur client respectif. This type of correction thus makes it possible to correct the clock drifts of the speakers without modifying the clock of their respective customers.
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. According to one embodiment, a heterogeneity factor relating to a synchronization of the speakers of the assembly is corrected by adding a buffer memory, for the transmission of the audio signals intended for the corresponding speakers, the duration of which is dependent on the estimated latencies of the speakers. In the same way, this type of correction makes it possible to correct the relative latencies between the speakers without modifying the clocks of the respective customers.
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. According to a particular embodiment, a heterogeneity factor relating to the sound rendering and / or a heterogeneity factor relating to the sound volume of the speakers of the assembly is corrected by equalization of the audio signals intended for the speakers corresponding, according to gains dependent on impulse responses received from the loudspeakers.
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. Thus, the correction made on the audio signals makes it possible to easily adapt the sound rendering and / or the sound volume. Several heterogeneity factors can thus be corrected via the same calibration process.
Dans un mode de réalisation particulier, un facteur d'hétérogénéité relatif à une cartographie 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. In a particular embodiment, a heterogeneity factor relating to a mapping of the loudspeakers of the assembly is corrected by applying a spatial correction to the corresponding loudspeakers, according to at least one delay depending on the distances estimated between the speakers and a given position of a listener.
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. Another heterogeneity factor is thus corrected on the basis of these same captured data and estimated distances between the loudspeakers.
La présente invention se 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 calibration 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-l autres haut-parleurs de l'ensemble et restitué par ces N-l 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. Dans un mode de réalisation particulier, le microphone est intégré dans un terminal. The present invention also relates to a system for calibrating a distributed audio reproduction system, comprising a set of N heterogeneous loudspeakers controlled by a server. The calibration system comprises: a microphone which, placed in front of a first loudspeaker of the assembly, is capable of picking up a calibration signal sent to the first loudspeaker at a first instant and restored by the latter, of picking up the calibration signal sent with a known time offset to the Nl other speakers of the set and restored by these Nl speakers, to pick up the calibration signal sent to the first speaker at a second instant and restored by the latter and iterating the capture operations for the N loudspeakers of the set, and a processing server comprising a module for collecting the captured data, an analysis module able to analyze the captured and collected data to determine a plurality of heterogeneity factors to be corrected and a correction module capable of calculating the corrections of the determined heterogeneity factors and of transmitting them to the different client modules of the corresponding loudspeakers in order to apply calculated corrections. In a particular embodiment, the microphone is integrated into a terminal.
Le système de calibration présente les mêmes avantages que le procédé décrit précédemment, qu'il met en oeuvre. The calibration system has the same advantages as the method described above, which it implements.
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. The invention relates to a computer program comprising code instructions for implementing the steps of the calibration method as described, when these instructions are executed by a processor.
Enfin l'invention se rapporte à un support de stockage, lisible par un processeur, intégré ou non au système de calibration, éventuellement amovible, sur lequel est enregistré un programme informatique comportant des instructions de code pour l'exécution des étapes du procédé de calibration tel que décrit précédemment. Finally, the invention relates to a storage medium, readable by a processor, integrated or not into the calibration system, possibly removable, on which is recorded a computer program comprising code instructions for the execution of the steps of the calibration process. as previously described.
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:
[Fig 1] La figure 1 illustre un système de calibration 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. Other characteristics and advantages of the invention will appear more clearly on reading the following description, given solely by way of nonlimiting example, and made with reference to the appended drawings, in which: [Fig 1] Figure 1 illustrates a calibration system comprising a plurality of heterogeneous speakers, a server and a microphone for implementing the calibration process according to an embodiment of the invention.
[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 ; [Fig 2] Figure 2 illustrates a clock model and the heterogeneity factors relating to synchronization and tuning according to an embodiment of the invention;
[Fig 3] La figure 3 illustre un exemple de signal de calibration utilisé pour mettre en oeuvre le procédé de calibration selon un mode de réalisation de l'invention ; [Fig 3] Figure 3 illustrates an example of a calibration signal used to implement the calibration method according to an embodiment of the invention;
[Fig 4] La figure 4 illustre un organigramme représentant les principales étapes d'un procédé de calibration selon un mode de réalisation de l'invention ; et [Fig 4] Figure 4 illustrates a flowchart representing the main steps of a calibration process according to an embodiment of the invention; and
[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. [Fig 5] Figure 5 illustrates in detail, the analysis and correction steps implemented according to an embodiment of the calibration method according to the invention.
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 HP1, 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 HPI est une enceinte Bluetooth® d'un fabriquant quelconque, le haut-parleur représenté en HPN est aussi une enceinte Bluetooth® d'un autre fabriquant. Thus, FIG. 1 represents a calibration system according to an embodiment of the invention. This system includes a set of N heterogeneous speakers HP1, HP2, HP3, ..., HPi ..., HPN. In the example illustrated here, the speakers come from different suppliers, some are connected to a sound card by wire, others are by a wireless transmission system. For example, the speaker shown in HPI is a Bluetooth® speaker from any manufacturer, the speaker shown in HPN is also a Bluetooth® speaker from another manufacturer.
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. The loudspeaker shown in HP3 is for example an enclosure using “Apple Airplay®” technology to connect wirelessly to a broadcasting server.
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. Other loudspeakers in the entire playback system are wired to devices which may be different and have different sound cards. For example, the speaker shown in HP2 is connected to a living room audio video decoder, of the “set top box” type, the speaker HPi is connected to a personal computer. Of course, this configuration is only one example of a possible configuration, many other types of configuration are possible and the number N of speakers is variable.
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 « Rapsberry 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 HPI 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.
Le serveur 100 comporte un module de traitement 150 comportant un processeur mR 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. All these speakers in this set are therefore heterogeneous, they each have their own clock. Each sound card or wireless speaker is controlled by a software module called client module represented here in C1, C2, C3, ..., Ci, ..., CN. These client modules are themselves connected to a processing server of a local network represented at 100. This server of the local network can be a personal computer, a compact computer of the “Rapsberry Pi®” type, an audio / video amplifier ( "AVR" for Audio Video Receiver in English), a home gateway serving as both an external network access point and a local network server, a communication terminal. The server 100 and the client modules can be integrated into the same device or distributed over several devices in the house. For example, the client module C1 of the speaker HPI is integrated into the server 100 while the client module C2 of the speaker HP2 is integrated into a TV decoder controlled by the server 100. The server 100 comprises a processing module 150 comprising a processor mR for controlling the interactions between the various modules of the server and cooperating with a memory block 120 (MEM) comprising a storage and / or working memory. The memory module 120 stores a computer program (Pg) comprising instructions for the execution, when these instructions are executed by the processor, of the steps of the calibration process and as described for example with reference to FIGS. 4 and 5. The program IT can also be stored on a memory medium readable by a reader of the server device or downloadable in the memory space of the latter.
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. This server 100 comprises an input or communication module 110 capable of receiving audio data S coming from different audio sources, either local or from a communication network.
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-Time 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-parleurs 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. The processing module 150 then sends to the client modules C1 to CN, the audio data received, in the form of RTP packets (for “Real-Time Protocol” in English). So that this audio data is reproduced by the set of speakers, in a homogeneous manner, that is to say so that they constitute a homogeneous and audible sound scene between the different speakers, the modules customers must be able to control their speakers without their having heterogeneous factors between them, not corrected. For example, the different clients C1 to CN must be both synchronized with the server but also tuned. An explanation of these two terms is described later with reference to Figure 2.
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. The calibration system presented in FIG. 1 comprises at least one microphone 140 connected to a client control module (CAL) 130 which can be integrated into the server as shown here. In this case, the microphone can be wired to the server. The microphone client control module and the server then share the same clock. This client module is then naturally tuned to the server.
Dans un autre mode de réalisation, un microphone 240 est intégré dans un dispositif de calibration 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 calibration comporte également un module de communication 220 apte à communiquer des données au serveur 100. Ce dispositif de calibration peut être par exemple un terminal de communication de type téléphone intelligent ou « smartphone » en anglais. In another embodiment, a microphone 240 is integrated into a calibration device 200 comprising the microphone control module 230, a processing module 210 comprising a microprocessor and a memory MEM. Such a calibration device also includes a communication module 220 capable of communicating data to the server 100. This calibration device can for example be a communication terminal of the smart phone or “smartphone” type in English.
Dans ce mode de réalisation, le dispositif de calibration 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 « Précision Time Protocol » en anglais) et tel que décrit par exemple dans la norme IEEE intitulée « standard for a précision dock synchronisation protocol for networked
measurement and control Systems », publiée par IEEE Instrumentation and Measurement Society IEEE 1588-2008. In this embodiment, the calibration device has its own sound card and its own clock. Tuning is then to be provided so that the calibration device and the server have the same clock rate and so that the data collection and the corrections to be made to the speakers are consistent with the server clock. For this, one can implement a network synchronization protocol of PTP type (for "Precision Time Protocol" in English) and as described for example in the IEEE standard entitled "standard for a precision dock synchronization protocol for networked measurement and control Systems ”, published by IEEE Instrumentation and Measurement Society IEEE 1588-2008.
Pour mettre en œuvre le procédé de calibration conforme à l'invention, le microphone 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 calibration 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. To implement the calibration method according to the invention, the microphone is placed in front of the loudspeakers of the set of loudspeakers of the reproduction system according to a calibration process described below. A calibration signal as described later with reference to FIG. 4 is sent by the processing server 100 to the different speakers of the system and at different times according to the capture procedure described later with reference to FIG. 4.
Toutes les données captées par ce microphone et suivant cette procédure de calibration, 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-parleurs. All the data captured by this microphone and according to this calibration procedure, are collected for example by the collection module 160 of the server which stores in memory the captured signals as well as the time stamping information determined after analysis of the restored signals and the different times sending calibration signals to the different speakers.
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 à corriger 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. These captured and recorded data are analyzed by the analysis module 170 of the server 100 to determine a plurality of heterogeneity factors to be corrected on the different loudspeakers. Corrections to these different heterogeneity factors are then determined by the correction module 180 which calculates the sampling frequencies, buffer memory duration, gains or other parameters to be applied to the loudspeakers to make the system homogeneous.
Ces différents paramètres sont envoyés ensuite aux différents modules clients pour que la correction adaptée soit effectuée sur les haut-parleurs correspondants. These different parameters are then sent to the different client modules so that the appropriate correction is made on the corresponding speakers.
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 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. In the case where the microphone is integrated into a calibration device 200, this device can also include a collection module 260 which collects the captured data and sends them to the server by the communication module 220. This calibration device can also integrate a analysis module 270 which, in the same way as described above for the server, analyzes the data collected to determine a plurality of heterogeneity factors to be corrected. The calibration device can send these heterogeneity factors to the server via its communication module 220 or else determine itself the corrections to be made if it integrates a correction module 270. In this case, it sends the corrections which are to be applied to the loudspeakers via their respective client module.
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.
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. Thus, when the calibration process is carried out, the restitution system has become homogeneous, that is to say that the different heterogeneity factors of the loudspeakers of the assembly have been corrected. The different speakers are then, for example, synchronized, tuned, they have a homogeneous sound quality and volume. Their spatial restitution can be corrected so that the sound scene reproduced by this restitution system is optimal with respect to the given position of a listener. We will now describe a definition of the terms of synchronization and tuning of the clocks of the different loudspeakers. Two independently operating devices have their own clock. A clock is defined as a monotonic function equal to a time which increases at the rate determined by the clock frequency. It generally originates from the moment the device is started up.
Les horloges de deux appareils sont forcément différentes et trois paramètres sont définis: The clocks of two devices are necessarily different and three parameters are defined:
- 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 ; - clock offset: time difference at the origin between two clocks; clock drift: frequency difference between two clocks;
- la déviation d'horloge : variation de la dérive au cours du temps, ou dérivée seconde de l'horloge par rapport au temps. - the clock deviation: variation of the drift over time, or second derivative of the clock with respect to time.
Une modélisation classique d'une horloge néglige la déviation d'horloge, principalement causée par des changements de température. Ainsi, dans un contexte réseau serveur/client, l'horloge du client Te s'exprime en fonction de l'horloge du serveur 7s· suivant l'équation ( EQ1 ) : ^ c ~ a^s ^ où a représente la dérive d'horloge du client par rapport à celle du serveur, et Q représente le décalage de l'horloge du client. La figure 2 représente cette modélisation. A classical modeling of a clock neglects the clock deviation, mainly caused by temperature changes. Thus, in a server / client network context, the client clock Te is expressed as a function of the server clock 7s · according to equation (EQ1): ^ c ~ a ^ s ^ where a represents the drift d client's clock relative to that of the server, and Q represents the offset of the client's clock. FIG. 2 represents this modeling.
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 fs/fc. Elle est généralement donnée sous forme d'une valeur en ppm (parties-par-million) produite en calculant {EQ2) :
The offset is a time and is expressed in seconds. The drift is a dimensionless value equal to the ratio of the clock frequencies of the server and the client fs / fc. It is generally given in the form of a value in ppm (parts-per-million) produced by calculating {EQ2):
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 corriger son décalage Q. La première opération conduit à la syntonisation du client et du serveur, alors que la seconde conduit à leur synchronisation. In an audio context, the drift can be found from the sampling frequencies. Figure 2 introduces the problem of clock coordination: for the client to have the same clock as the server, it is necessary to correct its drift a and to correct its offset Q. The first operation leads to the tuning of the client and the server, while the second leads to their synchronization.
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. The calibration method implemented by the calibration system described above with reference to FIG. 1, is now described with reference to FIG. 4. The system is described here when a calibration is planned for N loudspeakers.
Une première étape E410 de lancement de la captation est mise en oeuvre en initialisant le nombre de haut-parleurs pris en compte à 0 (i=0). A first step E410 of launching the capture is implemented by initializing the number of speakers taken into account at 0 (i = 0).
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.
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. In step E415, the microphone for picking up the calibration device is placed in front of a first loudspeaker (HPi) of the restitution system which therefore includes N loudspeakers. In step E420, a calibration signal is sent at a first instant t1 to the speaker HPi by the server via the client module Ci of the speaker HPi. The restitution of this signal is picked up by the microphone at this step E420.
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. The calibration signal is for example a signal whose frequency increases logarithmically with time, this signal being called in English "chirps" or "logarithmic sweeps".
La convolution du signal mesuré à la sortie du haut-parleur avec un signal de calibration 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)\
The convolution of the signal measured at the output of the loudspeaker with a reverse calibration signal allows the impulse response of the loudspeaker to be obtained directly. Such a signal is for example a signal of the exponential sliding sine type as illustrated with reference to FIG. 3, ESS of length T (0.2 s in the example illustrated in FIG. 3) and going from the frequency fl (20 Hz) at f2 (20 kHz). This signal is written in the following way as a function of time t as follows (EQ3) \
La mesure de ce signal joué par un haut-parleur permet d'estimer sa réponse impulsionnelle en calculant l'intercorrélation entre le signal mesuré et le signal théorique £55(0. Ceci est réalisé en pratique en convoluant le signal mesuré avec un sinus glissant inverse /ESS présentant une décroissance exponentielle pour compenser les différences d'énergie entre les fréquences ( EQ4)\
The measurement of this signal played by a loudspeaker makes it possible to estimate its impulse response by calculating the intercorrelation between the measured signal and the theoretical signal £ 55 (0. This is achieved in practice by convolving the measured signal with a sliding sine inverse / ESS with exponential decay to compensate for energy differences between frequencies (EQ4) \
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. Figure 3 presents such an example of calibration signal, the graph (a) represents an exponential sliding sine of 0.2 s, the graph (b), the inverse signal and the graph (c) the impulse response obtained by convolution of the sliding sine by its reverse.
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-l 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. In steps E430, E432 and E435 of FIG. 4, the calibration signal is sent to the speakers of the set of speakers, HPk, with k going from 1 to N-1 and different from i. This signal is sent to each of the speakers via its client module Ck with a known time offset At which can be, for example, 5 s.
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. This time difference is stored in memory in the server. It can be equivalent between each speaker or different. The restitution of these signals is picked up at this step E430 by the microphone which remains opposite the speaker HPi.
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. The order of sending the calibration signal to these different speakers can be pre-established by the server. For example, in the embodiment illustrated in steps E430 to E435 of FIG. 4, if the microphone is in front of speaker i, the server sends a calibration signal to speaker i + 1 then to speaker i +2, ..., to speaker i + k modulo N until all speakers other than i are taken into account. It performs this same sequence each time the microphone position is changed.
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). Another pre-established order can be for example to start sending the calibration signal always starting from the same speaker different from i according to a sequence and a defined order (to the next speaker if equal to the microphone positioning speaker ).
Ces ordres préétablis sont connus du serveur et du module d'analyse pour savoir à quel haut-parleur correspondant une donnée captée. These pre-established orders are known to the server and to the analysis module in order to know which loudspeaker corresponds to a captured data.
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. Finally, the server can send the calibration signal in a random order to the speakers other than i, but in this case, the identification of the speaker for which the calibration signal is sent must be given in association with the received data. so that the analysis of the captured data is relevant.
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. At step E440, the calibration signal is played again by the speaker HPi, at a time t2 different from tl, which may be a time offset At from the last speaker in the loop E430 to E435 or a time instant offset by tl and before the implementation of the loop E430 to E435.
La durée séparant l'instant t2 de l'instant tl est mise en mémoire du serveur de traitement. The time separating time t2 from time tl is stored in the memory of the processing server.
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, les étapes E415 à E440 sont itérés pour le haut-parleur i suivant, i allant de 0 à N-l. 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. In step E440, it is checked whether the loop E415 to E455 is finished, that is to say that all the speakers have been treated in the same way. If this is not the case (N in E450), then the steps E415 to E440 are iterated for the next speaker i, i going from 0 to N-1. The order of passage of the speakers is the same for the loop E430 to E435 for each iteration. When all the loudspeakers have been processed by the loop E415 to E440 (O in E450), step E460 is implemented.
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é. Steps E420 to E440 can be performed in a different order. For example, the capture of the calibration signal sent at times tl and t2 on the same loudspeaker i can be done before the signals reproduced by the other speakers are picked up. It is also possible to carry out the capture of the signals restored by the speakers different from i, before the capture of the signal restored at the instants t1 and t2 of the speaker i. The order of these steps does not matter on the result of the process.
A l'étape E460, la captation par le microphone est arrêtée et les données captées (De) 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 : In step E460, the capture by the microphone is stopped and the captured data (De) are collected and recorded in a memory of the server or of the calibration device according to the embodiments. These data are taken into account in the analysis step E470. This analysis step makes it possible to determine a plurality of heterogeneity factors to be corrected for all of the N loudspeakers. These heterogeneity factors are part of a list among:
- une coordination d'horloge des haut-parleurs comprenant une synchronisation et une syntonisation des haut-parleurs ;
- un volume sonore des haut-parleurs - clock coordination of the speakers including synchronization and tuning of the speakers; - loudspeaker volume
- un rendu sonore des haut-parleurs ; et - a sound rendering of the speakers; and
- une cartographie des haut-parleurs. - a map of the speakers.
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. A correction adapted to the determined heterogeneity factors is then determined and applied in E480.
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. These steps E470 and E480 are detailed in FIG. 5 now described. Thus, the captured data received in E460 and coming from the capture steps E410 to E460 are transformed into impulse responses by convolution with the reverse signal, as described above with reference to FIG. 3. Since the overall operation can be cumbersome, it it may be better to do it using an analysis window.
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. Once this operation has been carried out, a signal is obtained comprising a series of impulse responses corresponding to the different loudspeakers according to the order of restitution of the calibration signal from the capture procedure.
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. In step E520, a peak detection is determined on the impulse responses thus obtained. The times corresponding to the maximum of the impulse responses are kept as time stamp data. The detection step is in fact a detection of multiple peaks. The approach used here as an embodiment consists in discovering each local maximum defined by the passage from a positive slope to a negative slope. All these local maximums are then sorted in descending order and the first N% N + 1) are kept.
Cette approche est simple mais peut entraîner des erreurs si une réponse impulsionnelle 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. This approach is simple but can lead to errors if an impulse response has a lower maximum than a noise. For these particular cases to be detected, a peak detection threshold is defined.
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. In addition, for each impulse response, secondary peaks may be present and larger than the main peak of another response. To avoid this, a minimum duration is defined between two peaks detected on the signal.
On obtient ainsi N*{N+ 1) données d'horodatage (ou « timestamps » en anglais). This gives N * {N + 1) timestamp data (or "timestamps" in English).
A l'étape E522, on détermine pour chacun des haut-parleurs HPi de l'ensemble, la dérive ¾ de son horloge par rapport à celle du serveur de traitement. In step E522, the drift ¾ of its clock with respect to that of the processing server is determined for each of the speakers HPi in the set.
Les données captées utilisées sont les N+l 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 f avec k e [0, ... , N + 1[, ainsi que le temps théorique écoulé entre deux mesures du même haut-parleur HPi : t2 -tl. The captured data used are the N + 1 timestamp data measured when the calibration microphone is placed in front of the speaker HPi. These timestamp data T f are noted with k e [0, ..., N + 1 [, as well as the theoretical time elapsed between two measurements of the same loudspeaker HPi: t2 -tl.
Si le temps théorique écoulé entre le signal joué par le haut-parleur HPi à l'instant tl et à l'instant t2 est égale à NS avec S-At, 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 (EQS) suivante
If the theoretical time elapsed between the signal played by the speaker HPi at time tl and at time t2 is equal to NS with S-At, the constant theoretical time elapsed between two restitution of the calibration signal on two high -adjacent speakers of the loop E430 to E435, we can estimate the drift of the speaker HPi compared to the following server the following equation (EQS)
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. This theoretical time t2-tl is fixed before launching the calibration and its choice may be a function of the desired precision in terms of estimation of the various heterogeneity factors.
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 ps 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 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. In fact, the precision of estimation of the different clock coordination and mapping parameters is mainly linked to the precision of estimation of the time stamp data. The detection of peaks on the impulse responses implies a temporal precision corresponding to a sample, that is to say approximately 20 ps for a sampling frequency at 48 kHz. Beyond the fact that better precision may be desirable, it is above all the estimation of clock drift that is impacted. Indeed, small values of drifts are to be expected, of the order of 10 ppm. If the theoretical duration between the two time stamp data used to estimate the drift in the previous EQ5 equation is equal to ls, an error of a sample on the estimate of the time stamp data results in an error of about 20 ppm.
Une première solution pour réduire cette erreur est d'augmenter la durée d entre les restitutions du signal de calibration. Si cette durée est telle que la durée entre les deux restitutions du signal de calibration 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. A first solution to reduce this error is to increase the duration d between the restitution of the calibration signal. If this duration is such that the duration between the two restitutions of the calibration signal on the same loudspeaker (t2 - tl), used to estimate the drift is at least equal to 20 s, the estimation error becomes less than 1 ppm. This solution involves significantly increasing the total duration of the acoustic calibration, which is not always possible.
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 Z3 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., Schafer, R. W., and Buck, J. R. et publié dans Prentice Hall, second édition en 1999. Ce filtre passe-bas a une fréquence de coupure fixée à la fréquence de Nyquist Fs/l, avec Fs 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. A second solution consists in oversampling the impulse responses during a step E510 represented in FIG. 5, in order to increase the precision of the peak detection. Oversampling by an integer factor Z 3 is a conventional process in signal processing. P - 1 zeros are first inserted between the samples of the signal to be oversampled. The signal produced is then filtered by a low-pass filter. In an exemplary embodiment, this low-pass filter is a “Butterworth” filter of order 100 as described in the document entitled “Discrete-Time Signal Processing” by the authors Oppenheim, AV, Schafer, RW, and Buck, JR and published in Prentice Hall, second edition in 1999. This low-pass filter has a cutoff frequency fixed at the frequency of Nyquist Fs / l, with Fs the sampling frequency of the initial signal. This technique makes it possible to reduce the errors of estimation of the time stamp data, and therefore of the calibration parameters, without increasing the measurement time, but oversampling results in an increase in the calculation time.
En pratique, un mélange des deux solutions (augmentation de l'intervalle de temps d 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é. In practice, a mixture of the two solutions (increasing the time interval d and oversampling) is used. The time between the signals used to estimate the drift is increased to around 8 s and oversampling by a factor of 10 is implemented.
Ainsi, la dérive de chaque haut-parleur est estimée en E522. Thus, the drift of each speaker is estimated in E522.
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)5, il est possible de définir une latence relative qί 0 entre ces deux haut-parleurs et égale à ( EQ6)\
From the time stamping data obtained in E520 and the theoretical time elapsed between the calibration signal played by the speaker i and the signal played by the speaker 0, equal to i {N + 1) 5, it is possible to define a relative latency q ί 0 between these two speakers and equal to (EQ6) \
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)\ The definition of the relative latencies with respect to the first loudspeaker is arbitrary and can lead to negative values. To reach only positive values and thus to have the delay of each loudspeaker compared to that which is most ahead, one calculates (EQ7) \
E=E.o - f min f(^,c) E = Eo - f min f (^ , c )
On obtient ainsi toutes les latences relatives entre haut-parleur pris deux à deux, à l'étape E524. One thus obtains all the relative latencies between loudspeaker taken two by two, in step E524.
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 /) les autres haut-parleurs jouent le signal de calibration dans un ordre circulaire. Pour ke[ 0 ... N[, le temps théorique écoulé entre les données d'horodatage T° et T f est égal à kS. La distance entre le haut-parleur / et un autre haut-parleur j est estimée suivant l'équation ( EQ8) :
When all the clock drifts and all the relative latencies are known, the distances between the loudspeakers can be estimated in step E526. According to the calibration procedure described in Figure 4, when the microphone is placed in front of the speaker /) the other speakers play the calibration signal in a circular order. For ke [0 ... N [, the theoretical time elapsed between the time stamp data T ° and T f is equal to kS. The distance between the speaker / and another speaker j is estimated according to equation (EQ8):
avec c ia vitesse du son dans l'air. with this speed of sound in the air.
La valeur tij représente le temps de propagation d'une onde sonore entre les deux haut- parleurs. Pour chaque couple (/) j) de haut-parleurs, la distance d/je st estimée deux fois. La moyenne de ces deux valeurs est utilisée, soit (EQ9) :
The value tij represents the propagation time of a sound wave between the two speakers. For each pair (/) j) of speakers, the distance d / i is estimated twice. The average of these two values is used, ie (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 : to build a symmetrical square matrix D whose elements are the squares of the distances between each pair of loudspeakers:
d 2 d 2
pour
(i, /) e [0 ... L' [2 for (i, /) e [0 ... L '[ 2
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. After this step of detailed analysis E470, the calibration method implements a step of correction E480 now detailed to homogenize the heterogeneous distributed audio system.
A l'étape E530, une correction du facteur d'hétérogénéité de syntonisation, correspondant à 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. In step E530, a correction of the tuning heterogeneity factor, corresponding to the clock drift of a loudspeaker relative to the server is calculated. The clock drift between a speaker and the server is not corrected by a direct modification of the clock of the sound card of the corresponding speaker or of the wireless speaker, mainly because access to this clock is not possible in this context of heterogeneous distributed audio. The correction is applied here to the audio data by the client module controlling the loudspeaker. In fact, the audio samples are supplied to the sound card or to the wireless speaker by a client module as described with reference to FIG. 1.
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. To correct this drift, processing on the sampling frequency is carried out. Indeed, if the acoustic calibration shows that the data is played too quickly, the client module must slow it down.
Ainsi, pour un haut-parleur HPi dont la dérive ¾ 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 à Fs/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 Converter » 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 /SÆiTtelle 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. Thus, for a speaker HPi whose drift ¾ with respect to the server was estimated in step E522, the new sampling frequency (FSRC) to be applied to the audio samples is calculated in E530 and is equal to Fs / a This new sampling frequency is given to the sampling frequency converter SRC of the client module Ci (SRC for “Sample Rate Converter” in English). In step E570, this correction is applied by the client Ci, via its SRC converter which implements in this embodiment, a linear interpolation between the samples and takes as parameter only the new sampling frequency / SÆiTtelle that defined above. This resampling is carried out in E580 by each of the customers Cl, C2, ..., CN corresponding to the speakers HPI, HP2, ..., HPN to correct the heterogeneity factor of tuning of the different speakers.
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. In the same way as the correction of clock drift and therefore of the tuning heterogeneity factor, the correction of the synchronization heterogeneity factor, due to the relative latencies between the speakers, is carried out by the client module of the speaker affected by the correction.
Les latences Q, 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. Il 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 « buffering » en anglais). La durée de cette mémoire tampon 0, pour le haut-parleur est obtenue en E540 à partir des latences
qi suivant l'équation {EQIO)·.The latencies Q, calculated in E524 represent the delay of each loudspeaker compared to that which is the most ahead. In practice, to correct this latency, it is not possible to advance the playback of late devices. It is therefore necessary to delay the reading of the speakers in advance compared to that which is the most late. For this, we manage to delay reading by adding a buffer memory (or "buffering" in English). The duration of this buffer memory 0, for the loudspeaker is obtained in E540 from the latencies qi according to the equation {EQIO) ·.
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 <¾ à la taille de la mémoire-tampon de chaque client Ci. This buffer value is transmitted to the client module Ci of the speaker HPi in E580 so that the audio data received from the server is not sent directly to the sound card or to the wireless speaker but after a delay corresponding to the size of the buffer thus determined. The synchronization of all the speakers can then be achieved by adding <¾ to the size of the buffer memory of each client Ci.
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. 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. To correct the heterogeneity factor of the sound output from the loudspeakers, step E560 recovers the impulse responses from the loudspeakers which have been generated and stored from the captured data. The amplitude of its Fourier transform constitutes the response of the loudspeaker as a function of the frequency. It allows step E560 to calculate the energy in each frequency band considered. The calibration process, described in Figure 4, produces two impulse responses per speaker. The estimated energy values can therefore be averaged over these two measurements. The energy value obtained is then averaged over each frequency band to obtain an equalization correction in the form of a gain to be made to each loudspeaker in each band. These equalization gains can be applied at the server level or can be sent in E580 to the different clients to equalize the audio signal to be transmitted to the speakers and thus homogenize the sound rendering of the speakers.
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. To now correct the sound volume of the loudspeakers, in step E570 and in one embodiment of this step, only a global volume equalization is carried out, that is to say on a single band taking into account the whole audible spectrum. To avoid overloading the speakers, the equalization applies a gain reduction to each speaker in order to adjust its volume to the lowest of them.
Pour cela, les modules clients des haut-parleurs correspondants possèdent une option 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 ( EQ11 ) : For this, the client modules of the corresponding loudspeakers have a volume option expressed as a percentage. If Ei is the estimated overall energy for each speaker i, its volume Vi (in%) is calculated according to the following equation (EQ11):
min (E ) min (E)
Vt 100 Ë, Vt 100 Ë,
Cette correction de volume est ainsi envoyée en E580 aux modules clients correspondants pour qu'ils appliquent cette correction de volume par l'application d'un gain adapté. This volume correction is thus sent in E580 to the corresponding client modules so that they apply this volume correction by applying a suitable gain.
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.
Une approche basée sur les matrices de distance euclidienne (EDM pour « Eudidean Distance Matrix » en anglais) peut donc être appliquée. The acoustic calibration produces the matrix D of the squares of the distances in step E526, between each pair of loudspeakers. In step E550, a loudspeaker mapping is first carried out on the basis of this data, so that a spatial correction can then be applied to adapt the optimal listening point to a given position of a listener. An approach based on Euclidean distance matrices (EDM or “Eudidean Distance Matrix” in English) can therefore be applied.
L'algorithme MDS (pour « Muiti-Dimensionai Sca/ing » 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é « Eudidean distance matrices : Essential theory, algorithms, and applications » des auteurs Dokmanic, I., Parhizkar, R., Ranieri, 1, et Vetterli, M publié dans IEEE Signai Processing Magazine, 32(6) : 12-30 en 2015. The MDS algorithm (for “Muiti-Dimensionai Sca / ing” in English) may apply. It relies on the rank properties of EDMs to estimate the Cartesian coordinates of the speakers in an arbitrary frame of reference as derived in the document entitled “Eudidean distance matrices: Essential theory, algorithms, and applications” by the authors Dokmanic, I., Parhizkar, R., Ranieri, 1, and Vetterli, M published in IEEE Signai Processing Magazine, 32 (6): 12-30 in 2015.
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. In particular, classic MDS defines the center of the coordinate system at the barycenter of the loudspeakers. However, an important assumption must be respected to be able to apply the MDS: the matrix D must be a Euclidean distance matrix.
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. Il 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. According to the authors, this hypothesis is verified if the Gram matrix obtained after centering the matrix D is defined semi-positive, that is to say that its eigenvalues are greater than or equal to 0. It is found that this condition is not always met in the case of application described above because of the placement of the measurement microphone or errors in estimating the distances between the speakers.
Si la matrice D n'est pas une EDM, une autre approche est nécessaire pour la cartographie. Par exemple, l'algorithme ACD (pour « Aiternate 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é « Eudidean 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 méthode l'ACD qu'une fois vérifié que la matrice des distances mesurées n'est pas une EDM. If the matrix D is not an EDM, another approach is necessary for the mapping. For example, the ACD algorithm (for “Aiternate Coordinate Descent” in English). This method consists of a gradient descent on each coordinate sought to minimize the error between the matrix D measured and that estimated. This method is described in the document entitled “Eudidean Distance Matrices: Properties, Algorithms and Applications” by the author Parhizkar, R, published in his PhD thesis, École Polytechnique Fédérale de Lausanne, Suisse in 2013. If this algorithm converges quickly, it is still heavier than conventional MDS. This is why, in one embodiment of the invention, the mapping algorithm carried out begins with the application of the MDS method and only applies the ACD method once the matrix of the measured distances has been verified. is not an EDM.
La cartographie retourne les positions de tous les haut-parleurs sous forme de coordonné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. The cartography returns the positions of all the speakers in the form of Cartesian coordinates in an arbitrary coordinate system. The application of a spatial correction of the system adapted to the position of an auditor requires knowledge of this position in the same frame of reference. It can be obtained by localization methods based on microphone antennas or on several microphones distributed in the room. Other approaches can be based on video localization. The determination of the position of the auditor is not the object of this invention. It is received by the server in step E550 to determine the spatial corrections to be made to the different speakers.
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. A first method of spatial correction consists in moving virtually all the speakers on a circle whose center is the listener. The distance between the latter and each speaker is calculated. The radius of the speaker circle is the largest of these distances. The virtual displacement is finally achieved by applying a delay and a gain to each speaker whose distance to the listener is less than the radius of the circle.
Cette méthode contribue déjà grandement à améliorer l'immersion de l'auditeur, mais 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. This method already greatly contributes to improving the immersion of the listener, but is not sufficient if the actual positions of the loudspeakers are too far from the optimal positions defined in the standard (ITU, 2012) cited above.
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 codée MPEG-H et décrite dans la norme (ISO/IEC 23008-3, 2015). In this case, an angular adaptation virtually replacing the speakers in the optimal positions can be used. This functionality is for example present in the MPEG-H coded and described in the standard (ISO / IEC 23008-3, 2015).
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. These delay, gain or angle parameters determined in this step E550 are sent to the corresponding client modules so that they implement in E570 these corrections in order to correct the heterogeneity factor relating to the mapping.
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. Thus, carrying out a calibration method according to the invention makes it possible, in a single measurement, to have access to all the parameters necessary for the homogenization of a heterogeneous distributed audio system. This global calibration is important since the parameters depend on each other, namely the relative latency between two speakers depends on their respective clock drift, and the estimate of the distance between two speakers depends on their relative latency and their respective drift.
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 ; The method presented here by the audio playback system can then make the necessary corrections: tuning by sampling frequency conversion; synchronization by adapting buffer memories; global equalization of the speakers by adjusting their volume;
- l'égalisation par bande de fréquence pour homogénéiser le rendu sonore ;- EQ by frequency band to homogenize the sound rendering;
- la configuration spatiale du système par un algorithme de cartographie. - the spatial configuration of the system by a mapping algorithm.
Un ou plusieurs de ces facteurs peuvent être ainsi corrigés.
One or more of these factors can be corrected in this way.