(19)
(11)EP 3 474 515 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
29.07.2020 Bulletin 2020/31

(21)Application number: 17306431.2

(22)Date of filing:  20.10.2017
(51)International Patent Classification (IPC): 
H04N 21/81(2011.01)
H04L 29/06(2006.01)
H04L 29/08(2006.01)
H04N 21/43(2011.01)

(54)

A METHOD OF IMPROVING SYNCHRONIZATION OF THE PLAYBACK OF AUDIO DATA BETWEEN A PLURALITY OF AUDIO SUB-SYSTEMS

VERFAHREN ZUR VERBESSERUNG DER SYNCHRONISATION DER WIEDERGABE VON AUDIODATEN ZWISCHEN MEHREREN AUDIO-SUBSYSTEMEN

PROCÉDÉ D'AMÉLIORATION DE LA SYNCHRONISATION DE LA LECTURE DE DONNÉES AUDIO ENTRE UNE PLURALITÉ DE SOUS-SYSTÈMES AUDIO


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(43)Date of publication of application:
24.04.2019 Bulletin 2019/17

(73)Proprietor: Tap Sound System
94120 Fontenay-sous-Bois (FR)

(72)Inventors:
  • GIRARDIER, Thomas
    74330 POISY (FR)
  • GOUPY, Julien
    78320 LE MESNIL-SAINT-DENIS (FR)
  • GUESNEROT, Matthieu
    75015 PARIS (FR)

(74)Representative: Plasseraud IP 
66, rue de la Chaussée d'Antin
75440 Paris Cedex 09
75440 Paris Cedex 09 (FR)


(56)References cited: : 
US-A1- 2009 010 283
US-A1- 2016 044 622
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description


    [0001] The invention relates to the field of audio playback using a system which receives audio data and which includes a plurality of sub-systems each having a master device adapted to receive the audio data and to forward them (all or in part) to one or more slave device in communication therewith by Bluetooth and which are adapted to effectively playback the audio data they received.

    [0002] The employ of such systems is of high interest in certain contexts, for instance when one requires a refined coverage of a given facility using Bluetooth devices or the like as speakers for playing desired audio data.

    [0003] In fact, such systems are highly adaptable.

    [0004] However, converging towards an appropriate synchronization of the audio data between the various speakers is a complex problem. Examples and embodiments of the prior art may be found in US 2016/044622 and US 2009/010283.

    [0005] The invention seeks to improve the synchronization of the sub-systems together, which positively affects the overall synchronization of the playback of the audio data by the global system.

    [0006] To this end, the invention relates to a method of synchronizing a system adapted to receive a stream of audio data and playback the audio data, as defined in appended claims.

    [0007] The invention also relates to a computer program comprising instructions for the implementation of the method as defined above when executed by a processor.

    [0008] The invention also relates to a system adapted to receive a stream of audio data and playback the audio data, the system comprising a plurality of sub-systems each comprising a master device destined to be connected to at least one slave device through a Bluetooth usage, as defined in appended claims. The invention is defined by the appended independent claims. Preferred embodiments are defined by the dependent claims.

    [0009] Other features and advantages of the invention will become apparent from the following description provided for indicative and non-limiting purposes, with reference to the accompanying drawings, wherein:
    • Figure 1 illustrates a system according to the invention;
    • Figure 2 illustrates a master device of the system of Figure 1;
    • Figure 3 illustrates a slave device of the system of Figure 1; and
    • Figure 4 illustrates a method of synchronizing the system of Figure 1.


    [0010] Figure 1 illustrates a system SYS according to the invention.

    [0011] The system is an audio system. It is configured to receive a stream STR of audio data AD and to playback the audio data, i.e. transform the audio data into audible sounds of which the audio data are representative. Preferably, in the context of the invention, the audio data correspond to sounds which are audible for the human ear. They may correspond to music, a conversation, a speech, sounds and/or music associated to a movie, etc.

    [0012] The audio data AD are typically in an encoded form within the audio stream, for instance according to any known encoding process.

    [0013] The stream STR may be generated by an emitter EMI, for instance located in the vicinity of the system. The emitter may form part of the system SYS. Alternatively, it may be external to the system SYS.

    [0014] The emitter EMI may be any device, for instance an electronic device such as a smartphone, a smart tablet, a laptop computer, a desktop computer, etc.

    [0015] The stream STR is conveyed to the system according to one or more communication technology. In the context of the invention, the stream STR is advantageously received by the system SYS wirelessly. Advantageously, it is so via a Wi-Fi communication, the emitter EMI and the system SYS thus communicating using this technology.

    [0016] As is known, Wi-Fi is a communication technology which is a radio-based technology designed according to the IEEE 802.11 specifications, IEEE standing for Institute of Electrical and Electronics Engineers.

    [0017] The system SYS is itself advantageously arranged within a given facility FAC, such as a house, a conference room, and the like, and is thus intended to make the audio data audible for persons located in the facility FAC.

    [0018] Still in reference to Figure 1, the system SYS comprises a plurality of sub-systems SSi, where i is the index of the corresponding sub-system, and, according to the invention, it includes a synchronization module SYNC (Figure 2) configured to synchronize the various sub-systems SSi together.

    [0019] Regarding the sub-systems SSi, in Figure 1, three such sub-systems SS1, SS2, SS3 are shown.

    [0020] Each sub-system SSi is configured to receive all or part of the audio data AD and play all or part of the received audio data, i.e. make them audible for human ears.

    [0021] To this end, each sub-system SSi comprises a master device MDi and at least one slave device SDij in communication with the master device MDi, where j is the index of the considered slave device.

    [0022] Each master device MDi is configured to receive the audio data, preferably in the form of the stream STR itself or in the form of a stream generated based on the stream STR.

    [0023] For instance, each master device MDi is placed in a location that the stream STR reaches while retaining a usable form, in particular in terms of signal power.

    [0024] Alternatively, in some embodiments, the system SYS may include one or more device which is specifically configured to receive the audio data AD and forward them using a stream generated based on the stream STR to one or more master device MDi. This may be done by a master device MDi. Therefore, the corresponding master device(s) act as a Wi-Fi repeater in case a Wi-Fi connection is used.

    [0025] Alternatively or in parallel, this may be done by a device other than a master device or a slave device. In some embodiments, this may be done using a device which is external to the system.

    [0026] In addition, the master devices MDi are configured to forward all or part of the audio data AD they receive to the slave devices SDij of the sub-system SSi for playback back by the latter.

    [0027] It should be noted that a given sub-system may receive only part of the audio data AD, for instance that pertaining to one or more specific channels of the audio data. As such, it plays only part of the audio data AD. This means that the audio data received by a given sub-system may be different from the data received by another sub-system and/or that the sounds played by a given sub-system may be different from that of another sub-system.

    [0028] Moreover, a given slave device SDij may receive only part of the audio data which were received by the master device MDi, as it may be destined to only play part of these data, all or part of the remaining data being for instance destined to be played by the other slave devices. This means in particular that two slave devices of a given sub-system may receive different audio data and/or that the sounds played by each are different. For instance, one may receive the audio data of a first channel, such as a left channel, and another one that of another channel, such as a right channel.

    [0029] In the context of the invention, the audio data conveyed to the slave devices by the corresponding master device are preferably conveyed through a Bluetooth usage.

    [0030] Bluetooth is a communication standard that is well-known to the person skilled in the art, defined since 1994 and managed by a group of organizations (Bluetooth SIG). Bluetooth enables a short-distance bidirectional exchange of data (this is known to define a piconet network, which designates a network covering a personal zone). Bluetooth uses radio waves that are situated in the UHF band (between 300 MHz and 3 GHz).

    [0031] By "Bluetooth usage", it is understood that the communications are based on the Bluetooth standard. In particular, it may rely on an existing version of the standard. Moreover, it may rely on versions thereof to be released in the future. The communications for instance conform to the standard. Alternatively or in parallel, some or all of them may rely on the Bluetooth standard for which one or more protocols have been modified, for instance so as to create a point-to-multipoint link between a master device MDi and a plurality of slave devices SDij within a given sub-system. This is detailed here below.

    [0032] Although Bluetooth is preferred, the invention also applies to any communication technology allowing short distance, wireless bidirectional communications between the master device and the slave device(s) of a given sub-system. For instance, the distance in question is inferior to few tens of meters. Advantageously, in the context of the invention, the master devices MDi of the various sub-systems are further configured to synchronize together.

    [0033] For instance, this implemented through the exchange of time data between the master devices MDi, the time data for instance including time stamps which are indicative of the internal times of the master devices provided by an internal clock thereof. For instance, to synchronize two master devices, they exchange time data, and, based on these data, one of them or both compute the time difference between its internal clock and that of the other device as well as the transmission delay, and proceeds accordingly.

    [0034] To the end of carrying out these functions, in reference to Figure 2, each master device MDi includes a communication module COM, a Bluetooth Module BTM, a memory MEM and a processing module CPU.

    [0035] The communication module COM is configured to allow communications between the master device MDi and the emitter EMI, and between the master device MDi and the other master devices MDki.

    [0036] To this end, the communication module COM is configured to support the communication technology which is employed by the emitter for the stream STR, which may be done by Wi-Fi, as indicated above.

    [0037] However, any other technology may be used, whether wire-based or wireless-based.

    [0038] In a general sense, in the context, preferably, the communications between the emitter and the master device MDi and between the master devices are carried out using a technology other than Bluetooth. As such, the system is hybrid, in that it uses different communication technologies.

    [0039] The technology used by the master device MDi to communicate with the other master devices MDki may be different from that which is used between the master device MDi and the emitter. Alternatively, it may be identical. As indicated above, however, advantageously, it is identical, and the master device may then be adapted to act as a repeater to forward the stream STR to one or more of the other master devices MDki.

    [0040] It should be noted that the master devices may implement a plurality of technologies to communicate together, a pair of master device using a first technology, at least another pair using a different technology.

    [0041] The Bluetooth module BTM is configured to handle the communications with the one or more slave devices SDij of the considered sub-system through a Bluetooth usage.

    [0042] The Bluetooth module BTM may have any structure, and for instance includes one or more Bluetooth chip. It may also include one or more processing component, which may be shared with the processing module CPU or not.

    [0043] Advantageously, in the context of the invention, at least one sub-system SSi includes at least two slave devices, the Bluetooth module BTM of the corresponding sub-system being configured to communicate the audio data AD destined to the associated slave devices SDij to these slave devices through a usage of Bluetooth configured for a synchronized playback of the audio data by the slave devices.

    [0044] By "synchronized", it is to be understood that at given time, the respective sounds which are played by the slave devices SDij of the considered sub-system SSi all correspond to audio data associated to a same instant of the audio data. They may be different and synchronized nonetheless.

    [0045] To this end, the Bluetooth module may include a plurality of Bluetooth chips each dedicated to managing the communications with one of the slave devices SDij.

    [0046] However, preferably, it includes a single Bluetooth chip configured to create a point-to-multipoint link with the slave devices SDij and to stream the audio data AD associated thereto to the slave devices SDij using multimedia streams each intended for one of the slave devices SDij. Preferably this is done based on a non-blocking Bluetooth usage.

    [0047] Non-blocking Bluetooth usage is understood to refer to any Bluetooth programming (by a Bluetooth mode and/or by other Bluetooth parameters) that prevents the Bluetooth chip from blocking the piece of equipment which controls the slave devices (the processing module CPU for instance). Therefore, a non-blocking Bluetooth usage is a Bluetooth usage that prevents forcing the Bluetooth chip from retransmitting an unreceived packet as long as it has not been received, which also prevents forcing such packet to be retransmitted beyond a time at which at least one slave device no longer has data in its buffer memory due to, for example, unsuccessful attempts to retransmit the packet, which monopolizes the Bluetooth communications. A non-blocking usage corresponds to a set of parameters (FTO for Flush Timeout, QoS for Quality of Service, Mode, Extended Flow features) and not only to a mode (such as the SM mode) in the sense of the Bluetooth standard. This is for example the "Flow Control" mode or any other mode for which the "Flush Timeout" parameter is set according to the Bluetooth standard to prevent any retransmission. On the contrary, a blocking usage is a usage that leads to, for example, retransmitting data as long as the data are not received, or that leads to retransmitting data while a higher priority slave device is also waiting for data and has not received the data due to said usage (it is then blocked). The blocking usage may be used to prevent occasional data losses (in the event of prolonged power cuts for a duration longer than a given threshold, the blocking usage is not able to prevent data losses). On the contrary, employing a non-blocking usage prevents the risk that a slave device becomes inaccessible and prevents any data transmission to all slave devices. For example, a slave device can become inaccessible because it was moved out of range of the Bluetooth module BTM, etc.

    [0048] Advantageously, the master device MDi is configured so that the Flush Timeouts for the various L2CAP channels used to communicate with the slave devices SDij are at the value defined by the Bluetooth standard (i.e., 1, but this can vary according to the implementations) so that no retransmission is performed.

    [0049] As is known, L2CAP stands for Logical Link Control and Adaptation Protocol, and is a building block of the A2DP, which stands for "Advanced Audio Distribution Profile", which corresponds to the frame defined by the Bluetooth standard according to which the Bluetooth communications of a given Bluetooth chip are structured.

    [0050] According to an embodiment, the Bluetooth chip is configured when a data packet of the stream that it transmitted to a considered slave device is lost, to resend this packet to said slave device. The Bluetooth chip is configured to determine a fill rate of a buffer memory BUFij (Figure 3) of at least one of the slave devices SDij of the sub-system and to determine a maximum duration during which it can resend the lost packet to the slave device according to this fill rate.

    [0051] According to an implementation, this maximum duration is defined by the least filled buffer memory among the buffer memories of all the other slave devices (within the sub-system), for which it must deduce the time necessary for transmitting a sufficient portion of the stream. Therefore the content of the buffer memory of the Bluetooth multimedia device that lost a packet is not taken into account.

    [0052] According to another implementation, this maximum duration is defined by the least filled buffer memory among the buffer memories of all the slave devices of the sub-system (including the one that lost the packet), for which it must deduce the time necessary for transmitting a sufficient portion of the stream. In fact, if the slave device that lost the packet runs the risk of running out of audio data to play, it can be considered more appropriate to abandon the attempt to retransmit the lost packet, which in any case would be restored as delayed and thus desynchronized from the other slave devices.

    [0053] According to another implementation, the Bluetooth chip is configured to identify the slave device for which it is unnecessary to verify the fill rate of the buffer memory. For example, the Bluetooth chip can exclude a number n of slave devices in which it powered the buffer memories last, if it can deduce that other slave devices necessarily exist in which the buffer memory is less filled and which will determine the aforementioned maximum duration.

    [0054] According to another implementation, the Bluetooth chip is arranged to store an identifier of the slave device, the buffer memory of which it powered longest. When a packet is lost, the Bluetooth chip then only verifies the buffer memory of this slave device, the buffer memory of which it powered longest.

    [0055] According to another implementation, the Bluetooth module BTM is arranged to transmit portions of audio stream corresponding to a block of audio data, for instance which correspond to a duration of 14ms (which corresponds to the duration of an audio stream block encoded by the SBC codec).

    [0056] In an example, the Bluetooth module BTM controls four slave devices, and the transmission of a portion of about 14ms takes about 1.3ms. Thus it takes about 41.3ms or about 5.2ms to transmit about 14ms of stream to the four Bluetooth multimedia devices, which leaves about 14 ms-5.2ms or about 8.8ms during which the controlling device can identify the packets that were improperly transmitted or not transmitted and retransmit them.

    [0057] According to an implementation, the Bluetooth module BTM is arranged to configure the "Flush Timeout" of each L2CAP channel depending on the fill state of the buffer memories of the slave devices. This fill state is for instance estimated beforehand, for instance in a known manner.

    [0058] In an embodiment, the Bluetooth module BTM is configured to cause the packets on the Bluetooth chip which communicates with one or more slave device of the sub-system to be flushed for a given slave device when it is determined that the packets are not conveyed correctly. For instance, this situation of the packets being incorrectly sent is considered to be detected when the queue of packets to be sent to a given slave device exceeds a predetermined threshold.

    [0059] So as to obtain a point-to-multipoint configuration for a given Bluetooth chip, for instance, the A2DP profile of the Source SEP (for "Stream end point, in this case the Bluetooth chip) is modified, for example by substituting a conventional AVDTP building block, for Audio/Video Distribution Transport Protocol, for a modified AVDTP' building block, so that the Bluetooth chip is configured to generate a distinct Source SEP for each Sink SEP (corresponding to each slave device that it must control). This configuration corresponds to point-to-point link for each slave device, each slave device being linked to a virtual Source SEP in a same Bluetooth chip to simulate a multiplicity of Source devices where in reality there is only a single Bluetooth chip..

    [0060] According to another embodiment, the Bluetooth chip is configured to generate a unique SEP to control all the slave devices. More specifically, the A2DP profile of the Source SEP (the Bluetooth chip) is modified, for example by substituting a conventional AVDTP building block for a modified AVDTP' building block. The modification for instance consists in removing restrictions preventing a Source SEP from connecting to more than one Sink SEP.

    [0061] This principle of modifying the A2DP profile may be seen as a form of extension of the Bluetooth standard, an extension that does not produce difficulties as the Bluetooth standard is not provided to detect such an extension.

    [0062] In general, the Bluetooth usages used between the slave devices and the corresponding master device may conform to the Bluetooth standard except for the A2DP profile, which is configured for point-to-multipoint communications so as to allow a single Bluetooth chip of the Bluetooth module BTM to handle communications with a or the plurality of slave devices of the sub-systems.

    [0063] Advantageously, for each sub-system having a plurality of slave devices SDij, the Bluetooth module BTM is configured to send the streams of data to the respective slave devices as a function of the respective internal latencies of the slave devices so that the playback of the associated audio data by these slave devices is synchronized. In other words, the sending of the streams by Bluetooth to the slave devices accounts for the response times of the slave devices so that the respective sounds played by them are synchronized. As before, this means that sounds corresponding to a same instant of the audio data are played simultaneously by the slave devices within the sub-system, regardless of whether they are identical or not. The internal latencies are discussed in more details below.

    [0064] To this end, for instance, the Bluetooth module BTM is configured to generate at least as many multimedia streams as there are slave devices in the sub-system SSi based on the received stream (for instance the stream STR sent by the emitter EMI). For instance, this generation takes the form of a duplication of all or part of the received stream into at least the corresponding number of streams. In addition, the Bluetooth module BTM is configured to allocate each stream to a given slave device. So as to synchronize the streams, the Bluetooth module BTM then adjusts the timing of the sending of a given stream to the corresponding slave device based on the internal latency of the latter and on that of the other slave devices to obtain the synchronized playback.

    [0065] As for the memory MEM, it is configured to store programs destined to be executed by the processing module CPU for the operations of the master device MDi.

    [0066] Advantageously, it is also configured to store a database DB which includes identifiers of possible slave devices which may connect to the master device to operate as speakers, and, for each identifier of a slave device, at least one respective internal latency. The internal latency of a given slave device corresponds to its response time between the input of a stream and the playback of the audio data of this stream by the slave device. This internal latency is a structural characteristic parameter of the slave device. It usually is a function of the internal structure and configuration of the slave device. For instance, typically internal latency values are of about 100ms, 200ms, etc.

    [0067] For instance, to a given slave device corresponds a single identifier.

    [0068] Moreover, for a given slave device, the database may include a plurality of possible latencies. For instance, each internal latency associated to a given slave device is associated to a specific codec used for encoding and decoding the data exchanged between the master device and the slave device using their Bluetooth link. For all or part of the possible codecs, and for at least one slave device, a plurality of internal latencies may be present in the database DB. In fact, for a given codec, the internal latency of a slave device may vary from one configuration of the codec to another. Various configuration parameters may indeed influence latency, such as the quality of sound, the number of sound channels (e.g. mono, stereo) used, etc. At a given time, the specific codec used for a given slave device SDij and its configuration is known from the master device MDi, whereby this information is accessible to the latter.

    [0069] Advantageously, the data of the database are provided at least in part by the manufacturers of slave devices. Alternatively or in parallel, the database is filled and/or update based on latency estimation carried out by the system upon connection of a given slave device to a master device. This may be done according to any known process and with a known piece of equipment.

    [0070] It should be noted that the internal latency of a given slave device may be retrieved based on the identifier through retrieving further information from the slave device, such as the vendor identifier and/or its chip identifier, from which a model identifier is determined and to which one or more internal latencies are associated in the database DB. A selection of the internal latency may thus be carried out from the plurality of internal latencies associated thereto, for instance based on the codec and its configuration, as indicated above.

    [0071] The memory MEM is furthermore adapted to store a program PRG comprising instructions for the implementation of a method of synchronizing the system SYS according to the invention and which is detailed below.

    [0072] This program forms all or part of the synchronization module SYNC of the system, detailed below as well.

    [0073] It may also include one or more program configured for the synchronization of the master devices among themselves, as discussed above.

    [0074] The memory MEM may take any known form, such as one which includes one or more physical memory modules operatively coupled together.

    [0075] The processing module CPU is configured to manage the operations of the master device and of its components, typically through the execution of the programs contained in the memory MEM.

    [0076] It may include one or more processor or the like.

    [0077] In practice, the master device MDi may correspond to a personal computer, such as a laptop or desktop computer, a smartphone, a smart tv, a tablet, a phablet, an intelligent personal assistant device sometimes referred to as a home device, or the like.

    [0078] In reference to Figure 3, each slave device SDij is configured to receive all or part of the audio data AD from the associated master device MDi via Bluetooth (or the corresponding technology communication used between the master device and associated slave devices) and to playback the received audio data AD to make them audible by the audience.

    [0079] In practice, the slave devices SDij may take the form of speakers. However, they make take the form of any device having a component capable of transducing data into audible sounds, such as a smartphone, a TV, a computer, etc.

    [0080] The slave devices SDij are for instance of known structure and configuration. As such, they include known modules to perform these functions, in particular a reception module for receiving the audio data, a buffer BUFij to store the audio data, a processing module for decoding the data stored in the buffer, a transducer for converting the decoded data into sounds, a source of electrical energy for powering-up the modules, etc.

    [0081] As indicated above, they exhibit an internal latency which corresponds to their response time between the input of a stream of audio data therein and the playback of the audio data of this stream by the slave device.

    [0082] In reference to Figure 1, as for the synchronization module SYNC, as indicated above, it is configured to synchronize the various sub-systems SSi together for a better synchronization of the playback of the audio data by the various sub-systems.

    [0083] The synchronization module SYNC may be software in nature.

    [0084] Alternatively or in parallel, it may include hardware components, either dedicated or shared with other functions of the system SYS.

    [0085] In addition, in a first configuration, the synchronization module SYNC may be centralized in the system SYS. In other words, it is located in a single place, as opposed to distributed between several locations.

    [0086] In this first configuration, advantageously, it is located in one of the master device MDi, as shown on Figure 2. However, it may be located elsewhere, and/or form a stand-alone piece of equipment in communication with the master devices, and in particular with the communication modules COM thereof.

    [0087] In the example of Figure 2, the synchronization module SYNC for instance takes the form of a software program located in the memory MEM of the illustrated master device MDi.

    [0088] In a second configuration, the synchronization module SYNC is distributed between a plurality of locations. Advantageously, it is thus distributed between the sub-systems.

    [0089] More specifically, in this configuration, the synchronization module SYNC includes a plurality of sub-modules configured to carry out the functionalities detailed below. For instance, each sub-module is then located in one of the master devices MDi.

    [0090] Regardless of the considered configuration, the synchronization module SYNC is configured to:
    • obtain respective internal latency data of the sub-systems, the internal latency data of a given sub-system SSi being representative of an internal latency li of the sub-system SSi which corresponds to a response time between reception of the audio stream by the sub-system and playback of the audio data by the one or more slave device SSij of the sub-system,
    • based on the internal latency data of the plurality of sub-systems, for each sub-system, determining a respective delay di for implementation by said sub-system between reception of the audio data by the master device MDi and playback of the audio data by the slave devices SDij.


    [0091] It may also be configured to trigger the implementation of the delays, for instance through causing the delays to be sent to their destined sub-system.

    [0092] The internal latency li of a given sub-system SSi is defined as a function of at least the internal latency of the slave device(s) of the sub-system SSi. By "as a function of', it is meant that the obtained value effectively depends on the corresponding parameters.

    [0093] In an advantageous embodiment, this internal latency li is chosen as the maximum value between the respective slave devices. In other words, the internal latency li is chosen as the most limiting response time of the slave devices, i.e. the greatest response time between the latter.

    [0094] In a general configuration, the internal latency of a given sub-system li is chosen according to the following relationship (1):

    where lij is the internal latency of the slave device SDij, and Ri is a chosen constant which is positive or null. When it is null, the configuration is identical to that above wherein the most limiting response time is chosen.

    [0095] For instant, a positive constant Ri may be used in configurations in which it is desired to synchronize the sub-system with another device which is external to the system SYS.

    [0096] As for the delays di, as indicated above, they are respectively determined as a function of at least the internal latency of the various sub-systems.

    [0097] The delay di associated to sub-system SSi is advantageously destined to be applied between the time of reception of the audio data destined to the sub-system SSi, and the time at which the audio data thus received are sent by the master device MDi to the slave devices SDij, advantageously so that the playback of the audio data of the slave devices is synchronized between the slave devices SDij.

    [0098] For instance, in an advantageous configuration, the delay di of sub-system SSi is determined by the following relationship (2):

    where R is a chosen constant which is positive or null.

    [0099] For instance, R is determined as a function of the various constants Ri. Alternatively, it is not chosen as depending on the constants Ri.

    [0100] In some embodiments, for instance, a positive constant R may be used in configurations in which it is desired to synchronize the entire system SYS with another device which is external to the system SYS.

    [0101] A method according to the invention will now be described in reference to the Figures, in particular Figure 4.

    [0102] Initially, the master devices MDi are preferably synchronized. For instance, a known synchronization method is performed to that end, as discussed above.

    [0103] In a step S1, the system SYS receives to the stream STR of audio data AD sent by the emitter EMI.

    [0104] As indicated above, the stream STR is thus received by all or part of the master devices MDi. If only a part of them receives it, the stream is forwarded to the master device(s) which does not receive it, for instance by at least one master device MDi which does.

    [0105] In addition, each sub-system SSi determines its internal latency li. To this end, one of its components, for instance the master device MDi, proceeds using the relationship (1) above. Alternatively or in parallel, this may be done at least in part by the synchronization module SYNC itself.

    [0106] This determination is advantageously repeated over time. For instance, it is repeated at regular intervals. Alternatively or in parallel, it is carried out each time a slave device SDij connects to the master device MDi and thus joins the sub-system SSi, or disconnects therefrom.

    [0107] In case of a connection of a new slave device SDij, the master device MDi determines the internal latency lij of this device using the database DB, in which it retrieves this information based on the identifier of the slave device obtained during the exchanges carried out for the setup of the communication between the master device and this slave device SDij.

    [0108] After being determined, the internal latencies li are stored in the memory MEM of one or more master device MDi, and/or in a memory that the synchronization module SYNC includes (which may be shared with one master device MDi).

    [0109] In a step S2, the synchronization module SYNC obtains the internal latency data which are representative of the respective internal latencies li of the various sub-systems SSi.

    [0110] In practice, the internal latencies li are retrieved from the memory or memories in which they are stored for usage by the synchronization module SYNC.

    [0111] In a step S3, the synchronization module SYNC determines, for each sub-system SSi, the delay di to be applied by this sub-system between reception of the audio data destined to it (which may correspond to only part of the audio data AD, as discussed above) via the corresponding stream, and playback of the audio data by the at least one slave device of the sub-system SSi. This determination is carried out based on the internal latencies li which have been obtained.

    [0112] Preferably, this is done using the relationship (2) above.

    [0113] Once determined, each delay di is stored by the corresponding master device MDi in the memory MEM. For instance, it is remotely sent to the master device, typically if the synchronization module SYNC is remote from the corresponding device. Alternatively, for instance, if the synchronization module SYNC is local for the master device MDi, it is directly stored in the memory MEM.

    [0114] In a step S4, each sub-system SSi applies the corresponding delay for playback of the audio data it receives by the slave devices SSi. Advantageously, as indicated above, this takes the form of the master device delaying the distribution of the audio data to the slave device(s) upon reception of these data for a duration corresponding to the delay di. Advantageously, and as indicated above, if a sub-system includes a plurality of slave devices, the audio data are then sent to the slave devices by a Bluetooth usage for synchronized playback of these data by the slave devices. This is preferably the case for each sub-system.

    [0115] For instance, the delay di is continuously applied by the corresponding sub-system.

    [0116] Advantageously, steps S1 to S3 are repeated in time. The repetition is for instance regular, and/or carried out each time a variation of at least one of the internal latency li is detected.

    [0117] The invention presents several advantages. In particular, it improves synchronization of the playback of the audio data, and allows for a very precise synchronization when the master devices are synchronized and each sub-system operates in a synchronized manner internally with respect to the communications between the master device MDi and the slave devices SDij.

    [0118] Moreover, it does not require heavy computing resources, and can easily be introduced in preexisting systems.

    [0119] In a further embodiment of the system SYS, at least one master device MDi is also configured to playback all or part of the received audio data. In other words, it also functions as a speaker. In these embodiments, advantageously, the internal latency of the master device MDi for playing back the audio data is taken into account for the determination of the internal latency of the sub-system, for instance using (1). The aforementioned embodiments are meant to be examples useful for understanding the invention. The present invention is only defined by the appended claims.


    Claims

    1. A method of synchronizing a system (SYS) adapted to receive (S1) a stream (STR) of audio data (AD) and playback the audio data, the system comprising a plurality of sub-systems (SS1, SS2, SS3) each comprising a master device (MD1, MD2, MD3) and respective slave devices (SD11, SD12, SD21, SD22, SD31, SD32) connected to the master device through a Bluetooth usage, at least one master device (MD1, MD2, MD3) comprising a respective Bluetooth chip configured for creating a respective point-to-multipoint link from said Bluetooth chip to the respective slave devices (SD11, SD12, SD21, SD22, SD31, SD32), each master device being configured to receive all or part of the audio data and send the received audio data to the slave devices through said Bluetooth usage for playback by the slave devices, the system (SYS) comprising a synchronization module (SYNC), the method comprising:

    a. obtaining (S2), by the synchronization module (SYNC), respective internal latency data of the sub-systems (SS1, SS2, SS3), the internal latency data of a given sub-system being representative of an internal latency (li) of the sub-system which corresponds to a response time between reception of the audio data by the sub-system and playback of the audio data by the slave devices,

    b. based on the internal latency data of the plurality of sub-systems, determining (S3), by the synchronization module (SYNC), respective delays (d;) each to be applied by a given sub-system (SS1, SS2, SS3) between reception of the audio data and playback of the audio data by the slave devices of the sub-system,

    c. by each sub-system, applying (S4) the corresponding delay for playback of the audio data.


     
    2. The method according to claim 1, wherein the system is configured to receive the stream via a Wi-Fi connection.
     
    3. The method according to claim 1 or 2, wherein the internal latency of at least one sub-system observes the following relationship:

    where li is the internal latency of the sub-system of index i, lij is an internal latency of the slave device of index j within the sub-system of index i and which corresponds to a response time of said slave device between reception of a stream of audio data and playback of the audio data by the slave device, and Ri is a chosen constant which is positive or null.
     
    4. The method according to any one of the preceding claims, wherein steps a, b and c are repeated overtime, whereby the internal latency data and the delays are updated.
     
    5. The method according to any one of the preceding claims, wherein the master devices (MDi) are synchronized together.
     
    6. The method according to any one of the preceding claims, wherein within a given sub-system which includes a plurality of slave devices, the communications of the audio data to the slave devices are synchronized so that the playback of the audio data by the slave devices is synchronized between the slave devices.
     
    7. The method according to any one of the preceding claims, wherein, for a given sub-system, the delay is determined by the relationship:

    where i is the index of the considered sub-system, d; is the delay of the considered sub-system, lj is the internal latency of the sub-system of index j, and R is a constant having a positive or null value.
     
    8. A computer program comprising instructions for the implementation of the method according to any of the preceding claims when executed by a processor.
     
    9. A system adapted to receive a stream (STR) of audio data (AD) and playback the audio data, the system comprising a plurality of sub-systems (SS1, SS2, SS3) each comprising a master device (MD1, MD2, MD3) destined to be connected to slave devices (SD11, SD12, SD21, SD22, SD31, SD32) through a Bluetooth usage, at least one master device (MD1, MD2, MD3) comprising a respective Bluetooth chip configured for creating a respective point-to-multipoint link from said Bluetooth chip to the respective slave devices (SD11, SD12, SD21, SD22, SD31, SD32), each master device being configured to receive (S1) all or part of the audio data and send the received audio data to the slave devices through said Bluetooth usage for playback by the slave devices, the system further comprising a synchronization module (SYNC) configured to:

    a. obtaining (S2)respective internal latency data of the sub-systems, the internal latency data of a given sub-system being representative of an internal latency (li) of the sub-system which corresponds to a response time between reception of the audio data by the sub-system and playback of the audio data by the slave devices, and

    b. based on the internal latency data of the plurality of sub-systems, determining (S3) respective delays (d;) each destined to be applied by a given sub-system between reception of the audio data and playback of the audio data by the slave devices of the sub-system;
    the plurality of sub-systems (SSI) being configured to:
    c. by each sub-system, applying (S4) the corresponding delay for playback of the audio data.


     
    10. The system of claim 9, wherein all or part of the synchronization module is located in at least one master device.
     
    11. The system of claim 9 or 10, wherein the synchronization module includes a plurality of synchronization sub-modules each configured to collect the internal latency data of all the sub-systems and determine the delay of one or more of the sub-systems.
     
    12. The system of claim 9 or 10, wherein the synchronization module is located in one place.
     
    13. The system of any of claims 9 to 10, wherein at least one sub-system is remote from the synchronization module, the synchronization module being configured to communicate with the master device of said sub-system for collecting the internal latency data of the sub-system and for providing the master device with the delay associated to said sub-system.
     


    Ansprüche

    1. Verfahren zum Synchronisieren eines Systems (SYS) eingerichtet, einen Stream (STR) von Audiodaten (AD) zu empfangen (S1) und die Audiodaten wiederzugeben,
    wobei das System eine Vielzahl von Subystemen (SS1, SS2, SS3), wovon jedes eine Mastereinrichtung (MD1, MD2, MD3) und entsprechende Slaveeinrichtungen (SD11, SD12, SD21, SD22, SD31, SD32), welche mit den Mastereinrichtungen über eine Bluetooth-Verwendung verbunden sind, aufweist,
    wobei mindestens eine Mastereinrichtung (MD1, MD2, MD3) einen entsprechenden Bluetooth-Chip aufweist, welcher konfiguriert ist zum Erzeugen eines entsprechenden Punkt zu Multipunkt-Links von dem Bluetooth-Chip zu den entsprechenden Slaveeinrichtungen (SD11, SD12, SD21, SD22, SD31, SD32), wobei jede Mastereinrichtung konfiguriert ist, alle oder einen Teil der Audiodaten zu empfangen und die empfangenen Audiodaten an die Slaveeinrichtung über die Bluetooth-Verwendung zum Abspielen durch die Slaveeinrichtung zu senden, wobei das System (SYS) ein Synchronisationsmodul (SYNC) aufweist,
    wobei das Verfahren aufweist:

    a) Erhalten (S2) durch das Synchronisationsmodul (SYSN) entsprechende interne Latenzdaten der Subsysteme (SS1, SS2, SS3), wobei die internen Latenzdaten eines gegebenen Subsystems repräsentativ für eine interne Latenz (li) des Subsystems sind, welche einer Antwortzeit zwischen dem Empfangen von Audiodaten durch das Subsystem und dem Abspielen der Audiodaten durch die Slaveeinrichtungen ist,

    b) basierend auf den internen Latenzdaten der Vielzahl von Subsystemen, Bestimmen (S3) durch das Synchronisationsmodul (SYNC) entsprechende Verzögerungen (di), wovon jede auf ein gegebenes Subsystem (SS1, SS2, SS3) zwischen dem Empfang der Audiodaten und dem Abspielen der Audiodaten durch die Slaveeinrichtung des Subsystems angewandt wird,

    c) durch jedes Subsystem, Anwenden (S4) der entsprechenden Verzögerung zum Abspielen der Audiodaten.


     
    2. Verfahren nach Anspruch 1,
    wobei das System konfiguriert ist, den Stream über eine Wi-Fi Verbindung zu realisieren.
     
    3. Verfahren nach Anspruch 1 oder 2,
    wobei die interne Latenz von mindestens einem Subsystem die folgende Beziehung einhält:

    wobei li die interne Latenz des Subsystems des Indexes i, lij eine interne Latenz einer Slaveeinrichtung des Indexes j mit dem Subsystem des Indexes i ist und welche einer Antwortzeit der Slaveeinrichtung zwischen dem Empfang eines Beams von Audiodaten und Abspielen der Audiodaten durch die Slaveeinrichtung ist, und Ri eine gewählte Konstante, welche positiv oder 0 ist, ist.
     
    4. Verfahren nach einem der vorherigen Ansprüche,
    wobei die Schritte a, b und c im Laufe der Zeit wiederholt werden, wobei die internen Latenzdaten und die Verzögerungen aktualisiert werden.
     
    5. Verfahren nach einem der vorherigen Ansprüche,
    wobei die Mastereinrichtung (MDi) miteinander synchronisiert werden.
     
    6. Verfahren nach einem der vorherigen Ansprüche,
    wobei innerhalb eines gegebenen Subsystems, welches eine Vielzahl von Slaveeinrichtungen aufweist, die Kommunikationen der Audiodaten an die Slaveeinrichtungen synchronisiert sind, so dass das Abspielen der Audiodaten durch die Slaveeinrichtungen synchronisiert zwischen den Slaveeinrichtungen ist.
     
    7. Verfahren nach einem der vorherigen Ansprüche,
    wobei für ein gegebenes Subsystem die Verzögerung durch die Beziehung bestimmt wird:

    wobei i der Index des berücksichtigten Subsystems ist, di die Verzögerung des berücksichtigten Subsystems, lj die interne Latenz des Subsystems mit dem Index j und R eine Konstante, welche einen positiven Wert oder 0 hat.
     
    8. Computerprogramm aufweisend Instruktionen zum Implementieren des Verfahrens nach einem der vorherigen Ansprüche, wenn es durch einen Prozessor ausgeführt wird.
     
    9. System eingerichtet zum Empfang eines Streams (STR) von Audiodaten (AD) und zum Abspielen der Audiodaten,
    wobei das System eine Vielzahl von Subsystemen (SS1, SS2, SS3), wovon jedes eine Mastereinrichtung (MD1, MD2, MD3) aufweist, die dazu bestimmt ist, mit Slaveeinrichtung (SD11, SD12, SD21, SD22, SD31, SD32) über eine Bluetooth-Verwendung verbunden zu werden, mindestens eine Mastereinrichtung (MD1, MD2, MD3), welche einen entsprechenden Bluetooth-Chip aufweist, der konfiguriert ist zum Erzeugen einer entsprechenden Punkt-zu-Multipunkt-Verbindung von dem Bluetooth-Chip zu den entsprechenden Slaveeinrichtungen (SD11, SD12, SD21, SD22, SD31, SD32) aufweist, wobei jede Mastereinrichtung konfiguriert ist, um alle oder einen Teil der Audiodaten zu empfangen (S1) und die empfangenen Audiodaten an die Slaveeinrichtung über die Bluetooth-Verwendung zum Abspielen durch die Slaveeinrichtung zu senden, wobei das System des Weiteren ein Synchronisationsmodul aufweist, welches konfiguriert ist um:

    a) entsprechende interne Latenzdaten der Subsysteme zu erhalten (S2), wobei die internen Latenzdaten eines gegebenen Subsystems repräsentativ für eine interne Latenz (li) des Subsystems sind, welche einer Antwortzeit zwischen dem Empfang der Audiodaten durch das Subsystem und dem Abspielen der Audiodaten durch die Slaveeinrichtungen entspricht, und;

    b) entsprechende Verzögerungen di basierend auf den internen Latenzdaten der Vielzahl von Subsystemen zu bestimmen (S3), wobei jede dazu bestimmt ist, von einem gegebenen Subsystem zwischen Empfang der Audiodaten und Abspielen der Audiodaten durch die Slaveeinrichtung des Subsystems angewendet zu werden;
    wobei die Vielzahl von Subsystemen (SSI) konfiguriert ist, um:
    c) Anwenden (S4) durch jedes Subsystem die korrespondierende Verzögerung zum Abspielen der Audiodaten.


     
    10. System nach Anspruch 9,
    wobei alle oder ein Teil des Synchronisationsmoduls in der mindestens einem Mastereinrichtung lokalisiert ist.
     
    11. System nach Anspruch 9 oder 10,
    wobei das Synchronisationsmodul eine Vielzahl von Synchronisationssubmodule aufweist, wobei jedes konfiguriert ist, um die internen Latenzdaten von allen Subsystemen zu sammeln und die Verzögerung von einem oder mehreren Subsystemen zu bestimmen.
     
    12. System nach Anspruch 9 oder 10,
    wobei das Synchronisationsmodul an einem Platz lokalisiert ist.
     
    13. System nach einem der Ansprüche 9 bis 10,
    wobei das mindestens eine Subsystem entfernt von dem Synchronisationsmodul ist, wobei das Synchronisationsmodul konfiguriert ist, um mit der Mastereinrichtung des Subsystems zu kommunizieren, zum Sammeln der internen Latenzdaten des Subsystems und um der Mastereinrichtung die mit dem Subsystem verbundene Verzögerung bereitzustellen.
     


    Revendications

    1. Procédé de synchronisation d'un système (SYS) adapté pour recevoir (S1) un flux (STR) de données audio (AD) et lire les données audio, le système comprenant une pluralité de sous-systèmes (SS1, SS2, SS3) comprenant chacun un dispositif maître (MD1, MD2, MD3) et des dispositifs esclaves (SD11, SD12, SD21, SD22, SD31, SD32) respectifs connectés au dispositif maître au moyen d'une utilisation de Bluetooth, au moins un dispositif maître (MD1, MD2, MD3) comprenant une puce Bluetooth respective configurée pour créer une liaison point à multipoints respective de ladite puce Bluetooth aux dispositifs esclaves (SD11, SD12, SD21, SD22, SD31, SD32) respectifs, chaque dispositif maître étant configuré pour recevoir la totalité ou une partie des données audio et envoyer les données audio reçues aux dispositifs esclaves au moyen de ladite utilisation de Bluetooth pour la lecture par les dispositifs esclaves, le système (SYS) comprenant un module de synchronisation (SYNC), le procédé comprenant :

    a. l'obtention (S2), par le module de synchronisation (SYNC), de données de latence interne respectives des sous-systèmes (SS1, SS2, SS3), les données de latence interne d'un sous-système donné étant représentatives d'une latence interne (li) du sous-système qui correspond à un temps de réponse entre la réception des données audio par le sous-système et la lecture des données audio par les dispositifs esclaves,

    b. sur la base des données de latence interne de la pluralité de sous-systèmes, la détermination (S3), par le module de synchronisation (SYNC), de retards (di) respectifs, chacun destiné à être appliqué à un sous-système (SS1, SS2, SS3) donné entre la réception des données audio et la lecture des données audio par les dispositifs esclaves du sous-système,

    c. par chaque sous-système, l'application (S4) du retard correspondant pour la lecture des données audio.


     
    2. Procédé selon la revendication 1, dans lequel le système est configuré pour recevoir le flux via une connexion Wifi.
     
    3. Procédé selon la revendication 1 ou 2, dans lequel la latence interne d'au moins un sous-système respecte la relation suivante :

    où li est la latence interne du sous-système d'indice i, lij est une latence interne du dispositif esclave d'indice j à l'intérieur du sous-système d'indice i et qui correspond à un temps de réponse dudit dispositif esclave entre la réception d'un flux de données audio et la lecture des données audio par le dispositif esclave, et Ri est une constante choisie qui est positive ou nulle.
     
    4. Procédé selon l'une quelconque des revendications précédentes, dans lequel les étapes a, b et c sont répétées dans le temps, moyennant quoi les données de latence interne et les retards sont mis à jour.
     
    5. Procédé selon l'une quelconque des revendications précédentes, dans lequel les dispositifs maîtres (MDi) sont synchronisés ensemble.
     
    6. Procédé selon l'une quelconque des revendications précédentes, dans lequel, à l'intérieur d'un sous-système donné qui inclut une pluralité de dispositifs esclaves, les communications des données audio aux dispositifs esclaves sont synchronisées de manière que la lecture des données audio par les dispositifs esclaves soit synchronisée entre les dispositifs esclaves.
     
    7. Procédé selon l'une quelconque des revendications précédentes, dans lequel, pour un sous-système donné, le retard est déterminé par la relation :

    où i est l'indice du sous-système considéré, di est le retard du sous-système considéré, lj est la latence interne du sous-système d'indice j, et R est une constante ayant une valeur positive ou nulle.
     
    8. Programme informatique comprenant des instructions pour la mise en Ĺ“uvre du procédé selon l'une quelconque des revendications précédentes quand elles sont exécutées par un processeur.
     
    9. Système adapté pour recevoir un flux (STR) de données audio (AD) et lire les données audio, le système comprenant une pluralité de sous-systèmes (SS1, SS2, SS3) comprenant chacun un dispositif maître (MD1, MD2, MD3) destiné à être connecté à des dispositifs esclaves (SD11, SD12, SD21, SD22, SD31, SD32) respectifs au moyen d'une utilisation de Bluetooth, au moins un dispositif maître (MD1, MD2, MD3) comprenant une puce Bluetooth respective configurée pour créer une liaison point à multipoints respective de ladite puce Bluetooth aux dispositifs esclaves (SD11, SD12, SD21, SD22, SD31, SD32) respectifs, chaque dispositif maître étant configuré pour recevoir (S1) la totalité ou une partie des données audio et envoyer les données audio reçues aux dispositifs esclaves grâce à ladite utilisation Bluetooth pour la lecture par les dispositifs esclaves, le système comprenant en outre un module de synchronisation (SYNC) configuré pour :

    a. l'obtention (S2) de données de latence interne respectives des sous-systèmes, les données de latence interne d'un sous-système donné étant représentatives d'une latence interne (li) du sous-système qui correspond à un temps de réponse entre la réception des données audio par le sous-système et la lecture des données audio par les dispositifs esclaves, et

    b. sur la base des données de latence interne de la pluralité de sous-systèmes, la détermination (S3) de retards (di) respectifs, chacun destiné à être appliqué à un sous-système donné entre la réception des données audio et la lecture des données audio par les dispositifs esclaves du sous-système ;
    la pluralité de sous-systèmes (SSI) étant configurée pour :
    c. par chaque sous-système, l'application (S4) du retard correspondant pour la lecture des données audio.


     
    10. Système selon la revendication 9, dans lequel la totalité ou une partie du module de synchronisation est située dans au moins un dispositif maître.
     
    11. Système selon la revendication 9 ou 10, dans lequel le module de synchronisation comprend une pluralité de sous-modules de synchronisation, chacun configuré pour collecter les données de latence interne de la totalité des sous-systèmes et déterminer le retard d'un ou plusieurs des sous-systèmes.
     
    12. Système selon la revendication 9 ou 10, dans lequel le module de synchronisation est situé dans un lieu unique.
     
    13. Système selon l'une quelconque des revendications 9 et 10, dans lequel au moins un sous-système est éloigné du module de synchronisation, le module de synchronisation étant configuré pour communiquer avec le dispositif maître dudit sous-système pour collecter les données de latence interne du sous-système et pour fournir au dispositif maître le retard associé audit sous-système.
     




    Drawing











    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description