FR 3085572 A1 20200306 FR 1857774 A 20180829 Procédé pour une restitution sonore spatialisée d'un champ sonore audible en une position d'un auditeur se déplaçant et système mettant en oeuvre un tel procédé [1] L'invention se place dans le domaine de l'audio spatialisée et du contrôle de champs sonores. Le procédé a pour but de restituer au moins un champ sonore dans une zone, pour un auditeur, en fonction de la position de l'auditeur. Notamment, le procédé a pour but de restituer le champ sonore en prenant en compte les déplacements de l'auditeur. [2] La zone est couverte par un réseau de haut-parleurs, alimentées par des signaux de commande respectifs pour émettre chacun un signal audio en continu. Un poids respectif est appliqué à chaque signal de commande des haut-parleurs afm de restituer le champ sonore suivant la position de l'auditeur. A partir des poids, un jeu de filtres est déterminé, chaque filtre du jeu de filtres correspondant à chaque haut-parleur. Le signal devant être distribué à l'auditeur est alors filtré par le jeu de filtre et diffusé par le haut-parleur correspondant au filtre. [3] Les méthodes itératives utilisées se servent des poids calculés à l'itération précédente pour calculer les nouveaux poids. Le jeu de filtres dispose donc d'une mémoire des itérations précédentes. Lors d'un déplacement de l'auditeur, une partie du champ sonore qui a été restitué à l'itération précédente (ou à l'ancienne position de l'auditeur) est absent de la nouvelle position de l'auditeur. 11 n'est donc plus contraint et la partie des poids permettant cette restitution précédente n'est plus utile mais reste en mémoire. Autrement dit, le champ sonore restitué en la position précédente de l'auditeur, à l'itération précédente n'est plus utile pour le calcul des poids à la position courante de l'auditeur, ou à l'itération courante, mais reste en mémoire. [4] La présente invention vient améliorer la situation. [5] A cet effet, elle propose un procédé assisté par des moyens informatiques, pour une restitution sonore spatialisée à partir d'un réseau de haut-parleurs couvrant une zone, en vue d'une diffusion d'un champ sonore choisi, audible au moins en une position d'au moins un auditeur dans la zone, dans lequel, les haut-parleurs sont alimentés par des signaux de commande respectifs pour émettre chacun un signal audio en continu, le procédé comprend itérativement et en continu pour chaque auditeur : - obtention de la position courante d'un auditeur dans la zone au moyen d'un capteur de position ; - détermination de distances entre au moins un point de la zone et des positions respectives des haut-parleurs pour en déduire des fonctions de transfert acoustiques respectives des haut-parleurs en ledit point, une position dudit point étant définie dynamiquement en fonction de la position courante de l'auditeur, ledit point correspondant à une position de microphone virtuel, - estimation d'une pression acoustique en ledit microphone virtuel, au moins en fonction des signaux de commande respectifs des haut-parleurs, et d'un poids initial respectif des signaux de commande des haut-parleurs ; - calcul d'une erreur entre ladite pression acoustique estimée et une pression acoustique cible, souhaitée en ledit microphone virtuel ; - calcul et application de poids respectifs aux signaux de commande des haut- parleurs, en fonction de ladite erreur et d'un facteur d'oubli de poids, ledit facteur d'oubli étant calculé en fonction d'un déplacement de l'auditeur, ledit déplacement étant déterminé par une comparaison entre une position précédente de l'auditeur et la position courante de l'auditeur ; le calcul de la pression acoustique en la position de l'auditeur étant mis en oeuvre à nouveau en fonction des signaux de commande respectifs, ainsi pondérés, des haut-parleurs. [6] La présente méthode se base donc directement sur le déplacement de l'auditeur pour faire varier le facteur d'oubli à chaque itération. Cela permet d'atténuer l'effet mémoire dû au calcul des poids aux itérations précédentes. La précision de la restitution du champ en est grandement améliorée, tout en ne nécessitant pas de ressources en calcul trop coûteuses. [7] Selon une réalisation, une pluralité de points formant les positions respectives d'une pluralité de microphones virtuels est définie dans la zone pour estimer une pluralité de pressions acoustiques respectives dans la zone en tenant compte du poids respectif appliqué à chaque haut-parleur, comprenant chacun respectivement un facteur d'oubli, et des fonctions de transfert propres à chaque haut-parleur en chaque microphone virtuel, la pluralité de points étant centrée sur la position de l'auditeur. 2 [8] De cette manière, la pression acoustique est estimée en une pluralité de points de la zone, entourant l'auditeur. Cela permet d'appliquer des poids à chaque haut-parleur en tenant compte des écarts de pressions acoustiques pouvant survenir en différents points de la zone. L'estimation des pressions acoustiques est donc réalisée de manière homogène et précise autour de l'auditeur, ce qui permet d'accroître la précision de la méthode. [9] Selon une réalisation, la zone comprend une première sous-zone dans laquelle le champ sonore choisi est à rendre audible et une deuxième sous-zone dans laquelle le champ sonore choisi est à rendre inaudible, la première sous-zone étant définie dynamiquement comme correspondant à la position de l'auditeur et dudit microphone virtuel, le microphone virtuel étant un premier microphone virtuel, et la deuxième sous-zone étant définie dynamiquement comme étant complémentaire de la première sous-zone, la deuxième sous-zone étant couverte par au moins un deuxième microphone virtuel dont une position est définie dynamiquement en fonction de ladite deuxième sous-zone, le procédé comprenant en outre itérativement : - une estimation d'une pression acoustique dans la deuxième sous-zone, au moins en fonction des signaux de commande respectifs des haut-parleurs, et d'un poids initial respectif des signaux de commande des haut-parleurs ; calcul d'une erreur entre ladite pression acoustique estimée dans la deuxième sous- zone et une pression acoustique cible, souhaitée dans la deuxième sous-zone ; - calcul et application de poids respectifs aux signaux de commande des haut- parleurs, en fonction de ladite erreur et d'un facteur d'oubli de poids, ledit facteur d'oubli étant calculé en fonction d'un déplacement de l'auditeur, ledit déplacement étant déterminé par une comparaison entre une position précédente de l'auditeur et la position courante de l'auditeur ; le calcul de la pression acoustique dans la deuxième sous-zone étant mis en oeuvre à nouveau en fonction des signaux de commande respectifs, pondérés, des haut-parleurs. [010] La méthode permet donc de restituer différents champs sonores dans une même zone, en utilisant le même système de haut-parleurs, en fonction d'un déplacement de l'auditeur. Ainsi, à chaque itération, le champ sonore effectivement restitué dans les deux sous-zones est évalué afin qu'à chaque déplacement de l'auditeur, la pression acoustique dans chacune des sous-zones atteigne effectivement la pression acoustique cible. La position de l'auditeur peut permettre de déterminer la sous-zone dans laquelle le champ 3 sonore est à rendre audible. La sous-zone dans laquelle le champ sonore est à rendre inaudible est alors défmie dynamiquement à chaque déplacement de l'auditeur. Le facteur d'oubli est donc calculé itérativement pour chacune des deux sous-zones, de sorte que la pression acoustique dans chacune des sous-zones atteigne sa pression acoustique cible. [011] Selon une réalisation, la zone comprend une première sous-zone dans laquelle le champ sonore choisi est à rendre audible et une deuxième sous-zone dans laquelle le champ sonore choisi est à rendre inaudible, la deuxième sous-zone étant définie dynamiquement comme correspondant à la position de l'auditeur et dudit microphone virtuel, le microphone virtuel étant un premier microphone virtuel, et la première sous-zone étant définie dynamiquement comme étant complémentaire de la deuxième sous-zone, la première sous-zone étant couverte par au moins un deuxième microphone virtuel dont une position est définie dynamiquement en fonction de ladite première sous-zone, le procédé comprenant en outre itérativement : - une estimation d'une pression acoustique dans la deuxième sous-zone, au moins en fonction des signaux de commande respectifs des haut-parleurs, et d'un poids initial respectif des signaux de commande des haut-parleurs ; - calcul d'une erreur entre ladite pression acoustique estimée dans la deuxième sous- zone et une pression acoustique cible, souhaitée dans la deuxième sous-zone ; - calcul et application de poids respectifs aux signaux de commande des haut- parleurs, en fonction de ladite erreur et d'un facteur d'oubli de poids, ledit facteur d'oubli étant calculé en fonction d'un déplacement de l'auditeur, ledit déplacement étant déterminé par une comparaison entre une position précédente de l'auditeur et la position courante de l'auditeur ; le calcul de la pression acoustique dans la deuxième sous-zone étant mis en oeuvre à nouveau en fonction des signaux de commande respectifs, pondérés, des haut-parleurs. [012] De même, la position de l'auditeur peut permettre de définir la sous-zone dans laquelle le champ sonore est à rendre inaudible. La sous-zone dans laquelle le champ sonore est à rendre audible étant définie dynamiquement comme complémentaire de l'autre sous-zone. Le facteur d'oubli est donc calculé itérativement pour chacune des deux sous-zones, de sorte que la pression acoustique dans chacune des sous-zones atteigne sa pression acoustique cible. 4 [13] Selon une réalisation, chaque sous-zone comprend au moins un microphone virtuel et deux haut-parleurs, et de préférence chaque sous-zone comprend au moins une dizaine de microphones virtuels et au moins une dizaine de haut-parleurs. [14] Le procédé est donc apte à fonctionner avec une pluralité de microphones et de haut-parleurs. [15] Selon une réalisation, une valeur du facteur d'oubli augmente si l'auditeur se déplace et diminue si l'auditeur ne se déplace pas. [16] L'augmentation du facteur d'oubli en cas de déplacement de l'auditeur permet d'oublier plus rapidement les poids calculés aux itérations précédentes. Au contraire, la diminution du facteur d'oubli lorsque l'auditeur ne se déplace pas permet de conserver au moins en partie les poids calculés aux itérations précédentes. [17] Selon une réalisation, le facteur d'oubli est défini par rraj (._ , avec y(n) le facteur d'oubli, n l'itération courante, yrudx le facteur d'oubli maximal, x un paramètre défini par le concepteur égal à g un pas d'adaptation, m une variable définie en fonction d'un déplacement de l'auditeur ayant comme maximum x et a une variable permettant d'ajuster la vitesse d'augmentation ou de diminution du facteur d'oubli. [18] Ainsi, le facteur d'oubli est directement estimé en fonction d'un déplacement de l'auditeur. Notamment, le facteur d'oubli dépend de la distance parcourue à chaque itération par l'auditeur, autrement dit de la vitesse de déplacement de l'auditeur. Un facteur d'oubli différent peut donc être estimé pour chaque auditeur. Les valeurs des variables peuvent également être ajustées au cours des itérations de manière à prendre réellement en compte le déplacement de l'auditeur. [19] Selon une réalisation, un pas de montée lu et un pas de descente Id du facteur d'oubli sont définis tels que : - si un déplacement de l'auditeur est déterminé, m = min(m + 1) - si aucun déplacement de l'auditeur n'est déterminé, m = max(m - ld, 0), avec 0 0, la pression acoustique en ce point est trop faible. Elle doit donc être augmentée pour correspondre au contraste sonore souhaité dans la deuxième sous-zone. [99] Le principe est donc d'utiliser le champ de pression présent dans la deuxième sous-zone qui est induit par la pression acoustique dans la première sous-zone, puis d'atténuer ou d'amplifier les valeurs individuelles de pressions acoustiques estimées en chaque microphone, de sorte à ce qu'elles correspondent au champ sonore cible dans la deuxième sous-zone sur l'ensemble des microphones. Pour tous les microphones, on définit le vecteur : = [100] Ce coefficient est calculé à chaque itération et peut donc évoluer. Il peut donc être écrit sous la forme e(n). [101] En variante, dans le cas où une unique pression acoustique P2 est estimée pour la deuxième sous-zone SZ2, un seul coefficient d'atténuation est calculé et appliqué à la pression acoustique P2. [102] Les coefficients d'atténuation sont calculés de manière à répondre au critère de contraste défini par le concepteur. Autrement dit, le coefficient d'atténuation est défini de sorte que la différence entre le contraste sonore entre les deux sous-zones SZ2 et le contraste sonore souhaité Cc soit proche de zéro. [103] Les étapes S30 à S32 permettent de définir la valeur des pressions acoustiques cibles Pti, Pte dans la première et la deuxième sous-zone SZ1, SZ2. [104] L'étape S30 comprend l'initialisation des pressions acoustiques cibles Pt1, Pt2, respectivement dans la première et la deuxième sous-zone SZ1, SZ2. Les pressions acoustiques cibles Pt1, Pt2 caractérisent le champ sonore cible à diffuser dans les sous-zones. La pression acoustique cible Pt1 dans la première sous-zone SZ1 est définie comme étant une pression cible Pt1, choisie par le concepteur. Plus précisément, la pression cible Ptidans la première sous-zone SZ1 est supérieure à zéro, de sorte que le champ sonore cible soit audible dans cette première sous-zone. La pression acoustique cible Pt2 dans la seconde sous-zone est initialisée à zéro. Les pressions cibles Pt1, Pt2 sont ensuite transmises à l'unité de traitement TRAIT à l'étape S31, sous la forme d'un vecteur Pt. [105] A chaque itération, on attribue de nouvelles valeurs de pressions cibles aux pressions cibles Pt1, Pt2 déterminées à l'itération précédente. Cela correspond à l'étape S32. Plus précisément, la valeur de la pression cible Ptidans la première sous-zone est celle définie à l'étape S30 par le concepteur. Le concepteur peut modifier cette valeur à tout moment. La pression acoustique cible Pt2 dans la deuxième sous-zone prend la valeur de la pression acoustique P2 atténuée (étape S29). Cela permet, à chaque itération, de redéfinir le champ sonore cible à restituer dans la deuxième sous-zone, en tenant compte de la perception de l'auditeur et des signaux de commande des haut-parleurs. Ainsi, la pression acoustique cible Pt2 de la deuxième sous-zone n'est égale à zéro que lors de la première itération. En effet, dès lors que les haut-parleurs diffusent un signal, un champ sonore est perçu dans la première sous-zone, mais également dans la deuxième sous-zone. [106] Mathématiquement, la pression cible Pt2 dans la deuxième sous-zone est calculée comme suit. [107] A la première itération, Pt2 est égale à zéro : Pt2 (0) = 0 . [108] A chaque itération, la pression acoustique P2 estimée dans la deuxième sous-zone est calculée. Cette pression acoustique correspond à la pression acoustique induite dans la seconde sous-zone par le rayonnement des haut-parleurs dans la première sous-zone. 21 Ainsi, à chaque itération on a : P2 (w, n) = G2 (w, n)q(w, n), avec G2 (w, n) la matrice de fonctions de transfert dans la deuxième sous-zone à l'itération n. [109] La pression cible Pt2 à l'itération n + 1 peut donc être calculée comme Pt2 (n + 1) = e(n) x P2. [110] A l'étape S33, l'erreur entre la pression cible Pt2 et la pression estimée P2 dans la deuxième sous-zone est calculée. L'erreur est due au fait qu'un pas d'adaptation ti est appliqué de manière à ce que la pression cible Pt2 ne soit pas atteinte immédiatement. La pression cible Pt2 est atteinte au bout d'un certain nombre d'itérations du procédé. Cela permet de minimiser les ressources en calcul nécessaires pour atteindre la pression cible Pt2 dans la deuxième sous-zone SZ2. Cela permet en outre d'assurer la stabilité de l'algorithme. De la même manière, le pas d'adaptation pt est également choisi de sorte que l'erreur calculée à l'étape S33 ait une petite valeur, afin de stabiliser le filtre. [111] Le facteur d'oubli y(n) est ensuite calculé afin de calculer les poids à appliquer à chaque signal de commande des haut-parleurs. [112] Comme décrit ci-avant, le facteur d'oubli y(n) permet de régulariser le problème et d'atténuer les poids calculés aux itérations précédentes. Ainsi, lorsque l'auditeur se déplace, les poids précédents n'influent pas sur les poids futurs. [113] Le facteur d'oubli y(n) est déterminé en se basant directement sur un éventuel déplacement de l'auditeur. Ce calcul est illustré aux étapes S34 à S36. A l'étape S34, la position de l'auditeur aux itérations précédentes est récupérée. Il est par exemple possible de récupérer la position de l'auditeur à toutes les itérations précédentes. En variante, il est possible de ne récupérer la position de l'auditeur que pour une partie des précédentes itérations, par exemple les dix dernières ou les cent dernières itérations. [114] A partir de ces données, une vitesse de déplacement de l'auditeur est calculée à l'étape S35. La vitesse de déplacement peut être calculée en mètres par itération. La vitesse de l'auditeur peut être nulle. 22 [115] A l'étape S36, le facteur d'oubli y(n) est calculé selon la formule décrite ci-avant : [116] A l'étape S33, le facteur d'oubli y(n) est modifié si nécessaire, en fonction du résultat du calcul de l'étape S36. [117] Le calcul et la modification du facteur d'oubli à l'étape S37 sert à calculer les poids à appliquer aux signaux de commande des haut-parleurs HP. Plus précisément, à la première itération les poids sont initialisés à zéro (étape S38). Chaque haut-parleur diffuse un signal de commande non pondéré. Puis, à chaque itération, la valeur des poids varie en fonction de l'erreur et du facteur d'oubli (étape S39). Les haut-parleurs diffusent alors le signal de commande ainsi pondéré. [118] Les poids sont calculés tels que décrit ci-avant en référence aux figures 2a et 2b, selon la formule : q(n -F 1) = q(n)(1 - py(n)) + (n)(G(n)q(n) - Pt(n)). [119] Les filtres FILT à appliquer aux haut-parleurs sont alors déterminés à l'étape S40. Un filtre par haut-parleur HP est par exemple calculé. Il peut donc y avoir autant de filtres que de haut-parleurs. Le type de filtres appliqués à chaque haut-parleur comprend par exemple une transformée de Fourier inverse. [120] Les filtres sont alors appliqués au signal audio à reproduire S(U) qui a été obtenu à l'étape S41. L'étape S41 est une étape d'initialisation, mise en oeuvre uniquement à la première itération du procédé. Le signal audio à reproduire S(U) est destiné respectivement à l'auditeur U. A l'étape S42, les filtres FILT sont appliqués au signal S(U), en vue d'obtenir N signaux de commande S(HP1,...,HPN) filtrés à diffuser respectivement par les haut-parleurs (H21,...,HPN) à l'étape S43. Les signaux de commande S(HP1,...,HPN) sont diffusés respectivement par chaque haut-parleur (HP1,...,HPN) du réseau de haut-parleurs à l'étape S44. De manière générale, les haut-parleurs HP diffusent les signaux de commande en continu. [121] Puis, à chaque itération, les filtres FILT sont calculés en fonction des signaux S(HP1,...,HPN) filtrés à l'itération précédente et diffusés par les haut-parleurs, tels que perçus par le réseau de microphones. Les filtres FILT sont appliqués au signal S(U) pour obtenir de nouveaux 23 signaux de commande S(HP1,...,HPN) à diffuser respectivement sur chaque haut-parleur du réseau de haut-parleurs. [122] Le procédé est alors relancé à partir de l'étape S35 dans laquelle les pressions acoustiques P1, P2 des deux sous-zones SZ1, SZ2 sont estimées. [123] Bien entendu, la présente invention ne se limite pas aux modes de réalisation décrits ci-avant. Elle s'étend à d'autres variantes. [124] Par exemple, le procédé peut être mis en oeuvre pour une pluralité d'auditeurs Ui à UN. Dans ce mode de réalisation, un signal audio S(U1, UN) peut être prévu respectivement pour chaque auditeur. Ainsi, les étapes du procédé peuvent être mises en oeuvre pour chacun des auditeurs, de manière à ce que le champ sonore choisi de chaque auditeur lui soit restitué en sa position, et en tenant compte de ses déplacements. Ainsi, une pluralité de facteurs d'oubli peut être calculée pour chacun des auditeurs. [125] Selon une autre variante, le champ sonore choisi est un premier champ sonore, au moins un deuxième champ sonore choisi étant diffusé par le réseau de haut-parleurs HP. Le deuxième champ sonore choisi est audible dans la deuxième sous-zone pour un deuxième auditeur et est à rendre inaudible dans la première sous-zone pour un premier auditeur. Les haut-parleurs sont alimentés par les premiers signaux de commande pour émettre chacun un signal audio en continu correspondant au premier champ sonore choisi, et sont également alimentés par des deuxièmes signaux de commande pour émettre chacun un signal audio en continu correspondant au deuxième champ sonore choisi. Les étapes du procédé telles que décrites ci-avant peuvent être appliquées à la première sous-zone SZ1, de sorte que le deuxième champ sonore choisi soit rendu inaudible dans la première sous-zone SZ1 en tenant compte des déplacements des deux auditeurs. [126] Selon un autre exemple de réalisation, les pi ière et deuxième sous-zones ne sont pas complémentaires. Par exemple, dans une zone, une première sous-zone peut être définie par rapport à un premier auditeur Ul et une deuxième sous-zone peut être définie par rapport à un deuxième auditeur U2. Le champ sonore est à rendre audible dans la première sous-zone et inaudible dans la deuxième sous-zone. Le champ sonore dans le restant de la zone peut ne pas être contrôlé. 24 25