WO2024212122A1 - Synchronisation audio dans un système de distribution audio - Google Patents
Synchronisation audio dans un système de distribution audio Download PDFInfo
- Publication number
- WO2024212122A1 WO2024212122A1 PCT/CN2023/087761 CN2023087761W WO2024212122A1 WO 2024212122 A1 WO2024212122 A1 WO 2024212122A1 CN 2023087761 W CN2023087761 W CN 2023087761W WO 2024212122 A1 WO2024212122 A1 WO 2024212122A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- audio
- playback
- time
- packet
- audio device
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000012952 Resampling Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43076—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R3/00—Circuits for transducers, loudspeakers or microphones
- H04R3/12—Circuits for transducers, loudspeakers or microphones for distributing signals to two or more loudspeakers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R5/00—Stereophonic arrangements
- H04R5/04—Circuit arrangements, e.g. for selective connection of amplifier inputs/outputs to loudspeakers, for loudspeaker detection, or for adaptation of settings to personal preferences or hearing impairments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R2227/00—Details of public address [PA] systems covered by H04R27/00 but not provided for in any of its subgroups
- H04R2227/005—Audio distribution systems for home, i.e. multi-room use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R27/00—Public address systems
Definitions
- the various embodiments relate generally to audio systems and, more specifically, to techniques for audio synchronization in an audio distribution system.
- Audio distribution systems in which audio is distributed through multiple speakers located in different parts of a venue, are commonly employed in concert halls, movie theaters, public address systems, and the like. In such systems, to ensure a seamless and cohesive audio experience for the listener, audio synchronization is oftentimes employed, so that the audio is played in perfect synchronization across all speakers, without any delays or offsets between them. With the advent of networked audio systems, in which audio is distributed over a network to multiple speakers, audio synchronization has become even more important.
- Acomputer-implemented method of audio playback at a secondary audio device in an audio distribution system includes: receiving, from a primary audio device in the audio distribution system, one or more audio playback packets and input association information for the one or more audio playback packets; receiving, from the primary audio device, a start playback time; in response to receiving the start playback time, determining a current audio clock time at the secondary audio device; based on the current audio clock time at the secondary audio device, the input association information, and the start playback time, selecting an audio playback packet from the one or more audio playback packets; and pushing the selected audio playback packet to an audio sink included in the secondary audio device.
- Figure 1 illustrates a networked audio system configured to implement one or more aspects of the various embodiments
- FIG. 2 is a more detailed illustration of a primary audio device of the networked audio system of Figure 1, according to various embodiments;
- Figure 3 sets forth a flowchart of method steps for associating a frame or an audio playback packet with a receipt time, according to various embodiments
- Figure 5 sets forth a flowchart of method steps for synchronizing playback of audio in the networked audio system of Figure 1, according to various embodiments;
- Figure 6 is a schematic illustration of an audio playback packet and a modified audio playback packet, according to various embodiments.
- Figure 7 is a block diagram of a computing device configured to implement one or more aspects of the various embodiments.
- FIG. 1 illustrates a networked audio system 100 configured to implement one or more aspects of the various embodiments.
- Networked audio system 100 plays back audio content over multiple audio devices (such as loudspeakers) and/or channels.
- networked audio system 100 distributes the audio content being played back to the multiple audio devices and/or channels in a digital format via a network.
- networked audio system 100 distributes audio content via audio packets that include audio data.
- the network can include a wireless local area network (WLAN) , a cellular network, a wired communication network (such as a local area network) , or any combination thereof.
- WLAN wireless local area network
- cellular network such as a local area network
- wired communication network such as a local area network
- Networked audio system 100 receives audio content from an audio service 101 (e.g. , Spotify, Apple Music, Pandora, YouTube Music, Tidal and/or other audio content streaming services) or other audio source, such as one or more audio input devices (e.g. , microphones) , one or more storage devices, or the like.
- an audio service 101 e.g. , Spotify, Apple Music, Pandora, YouTube Music, Tidal and/or other audio content streaming services
- other audio source such as one or more audio input devices (e.g. , microphones) , one or more storage devices, or the like.
- Primary audio device 120 can operate as both an audio source and an audio sink. In the role of audio source, primary audio device 120 pushes audio playback packets 102 to each secondary audio device 130 included in networked audio system 100. In the role of audio sink, primary audio device 120 consumes audio playback packets 102 received from audio service 101, resulting in the playback of the audio content included in audio playback packets 102. In some embodiments, primary audio device 120 performs other functions for enabling the operation of networked audio system 100 and for implementing various embodiments described herein. One embodiment of primary audio device 120 is described in greater detail below in conjunction with Figure 2.
- Each of the K secondary audio devices 130 operates as an audio sink. Thus, each secondary audio device 130 consumes audio playback packets 102 received from primary audio device 120, resulting in the playback of the audio content included in audio playback packets 102.
- secondary audio device 130 performs other functions for enabling the operation of networked audio system 100 and for implementing various embodiments described herein.
- One embodiment of a secondary audio device 130 is described in greater detail below in conjunction with Figure 4.
- FIG. 2 is a more detailed illustration of primary audio device 120, according to various embodiments.
- Primary audio device 120 processes and plays back audio data and performs other functions for enabling the operation of networked audio system 100 and for implementing various embodiments described herein.
- primary audio device 120 performs operations that enable clock synchronization and drift compensation.
- primary audio device 120 performs operations that enable audio clock alignment between primary audio device 120 and secondary audio devices 130, for example via Precision Time Protocol (PTP) .
- PTP uses a master-slave architecture, in which a master clock provides the reference time to one or more slave clocks.
- audio signals from primary audio device 120 are transmitted over the network of networked audio system 100 to a secondary audio device 130.
- the audio clocks of both audio devices can be synchronized.
- the process starts with primary audio device 120 transmitting an audio signal to a particular secondary audio device 130.
- the particular secondary audio device 130 receives the audio signal and uses PTP to synchronize the audio clock (not shown in Figure 2) of secondary audio device 130 with an audio clock 211.
- primary audio device 120 performs operations that enable audio clock alignment between primary audio device 120 and secondary audio devices 130 via a Timing Synchronization Function (TSF) .
- TSF Timing Synchronization Function
- Drift compensation is a technique used to synchronize the audio playback of primary audio device 120 and secondary audio devices 130.
- primary audio device 120 resamples the audio on secondary audio devices 130 based on a calculated drift. For example, by adjusting the sample rate of one or more secondary audio devices 130 based on the calculated drift, audio output of the one or more secondary audio devices 130 can be better aligned with the audio output of primary audio device 120, resulting in a more synchronized listening experience.
- primary audio device 120 performs operations to enable drift compensation, such as returning audio clock signals to a secondary audio device 130 when that secondary audio device 130 is performing drift compensation. An example drift compensation process is described below.
- primary audio device 120 includes, without limitation, an audio clock generator 221, an input synchronizer 222, an output synchronizer 223, a packet manager 224, a memory 225, and an audio sink 226.
- Audio clock generator 221 (also referred to as an “audio clock manager” ) can be a hardware device that determines the rate at which audio data (such as audio data included in audio playback packets 102) is sampled and played back by primary audio device 120. Thus, audio clock generator 221 generates an audio clock 211. In some embodiments, audio clock generator 221 also manages and tracks a current time value for primary audio device 120 based on audio clock 211.
- the frequency of audio clock 211 is usually expressed in samples per second ( e.g. , 44.1 kHz or 48kHz) .
- audio clock 211 is derived from a reference clock provided by the operating system associated with primary audio device 120 or networked audio system 100.
- Audio sink 226 is an audio output device, such as a loudspeaker, for playing back audio content included in audio playback packets 102.
- Input synchronizer 222 is a software or firmware module included in primary audio device 120.
- input synchronizer 222 receives audio playback packets 102 or frames from audio service 101 and queries packet manager 224 for the current packet number or frame number.
- Output synchronizer 223 pushes audio playback packets 102 to audio sink 226 for playback of audio content.
- Memory 225 stores data for enabling implementation of various embodiments described herein, such as input association information 202 (described below) for certain frames or packets received by primary audio device 120.
- primary audio device 120 generates input association information 202 for certain frames or packets received by primary audio device 120.
- primary audio device 120 associates a current audio clock value t association with a particular frame or packet received from audio service 101, such as an audio playback packet 102.
- input association information 202 includes an identifier for a specific frame or audio playback packet that has been received and buffered by secondary audio device 130 as well as an audio clock value associated with the specific frame or audio playback packet.
- the current audio clock time t association that is associated with the particular frame or packet received from audio service 101 is the audio clock value that corresponds to the time at which the particular frame or packet is received.
- input association information 202 includes a specific audio clock value t association and an associated frame or audio playback packet 102. Further, in such embodiments, primary audio device 120 transmits input association information 202 to secondary audio devices 130, where the input association information 202 is employed by secondary audio devices 130 to perform an output synchronization process as described below. In some embodiments, input association information 202 is transmitted along with audio playback packets 102. One embodiment of such an association process is described below in conjunction with Figure 3.
- primary audio device 120 also determines a start playback time t start-playback .
- t start-playback indicates an audio clock value at which audio content begins to be played back by primary audio device 120 and all secondary audio devices 130.
- Primary audio device 120 calculates t start-playback based on t association for a specific audio playback packet 102 and a time delay value t delay .
- t start-playback t association –t delay .
- t delay compensates for network jitter and other related delays associated with networked audio system 100.
- primary audio device 120 determines a suitable value of t delay based on one or more network environmental factors and/or other network requirements, such as transmission delay and jitter.
- the data transmission delay between devices can vary based on network type. For example, transmission delay in Ethernet networks is better than transmission delay in peer-to-peer (P2P) networks, which in turn is better than transmission delay in Wi-Fi networks. Further, in a given wireless network environment, the transmission delay also has jitter. To ensure that there is enough buffer, in some embodiments, primary audio device 110 adjusts t delay accordingly.
- primary audio device 120 can set t delay to 40 ms; when the maximum latency changes to 20 ms, primary audio device 120 can set t delay to 60ms; when the maximum latency returns to 10ms, primary audio device 120 can reduce t delay back to 40ms.
- t delay can vary dynamically according to changes in one or more network environmental factors and/or other network requirements. In other embodiments, t delay can be a fixed value for networked audio system 100.
- primary audio device 120 transmits start playback time t start-playback to each secondary audio device 130.
- step 302 input synchronizer 222 of primary audio device 120 retrieves information identifying the unit of data received in step 301, such as a frame number or data packet number. In some embodiments, input synchronizer 222 queries packet manager 224 for such information and receives the identifying information.
- step 303 input synchronizer 222 retrieves timing information associated with receipt of the unit of data received in step 301.
- input synchronizer 222 queries audio clock generator 421 for the timing information and receives the timing information.
- step 304 input synchronizer 222 generates input association information 202. Specifically, input synchronizer 222 sets an input association between the unit of data received in step 301 and the timing information retrieved in step 303. In some embodiments, primary audio device 120 stores input association information 202.
- step 305 primary audio device 120 transmits the input association information 202 generated in step 304 to a secondary audio device 130 for use in an output synchronization process as described below in conjunction with Figure 5.
- FIG 4 is a more detailed illustration of secondary audio device 130 of the networked audio system of Figure 1, according to various embodiments.
- Secondary audio device 130 processes and plays back audio data and performs other functions for enabling the operation of networked audio system 100 and for implementing various embodiments described herein.
- secondary audio device 130 performs operations that enable audio clock alignment between secondary audio device 130 and primary audio device 120 (clock synchronization) , for example via PTP or a TSF.
- secondary audio device 130 performs operations that enable drift compensation in networked audio system 100.
- a particular secondary audio device 130 can calculate audio clock drift every t interval seconds. Audio clock drift t drift between the particular secondary audio device 130 and primary audio device 120 in t interval can be calculated using a first signal sent by the particular secondary audio device 130 to primary audio device 120 and a second signal sent by primary audio device 120 back to the particular secondary audio device 130 in response to the first signal.
- the particular secondary audio device 130 can employ a PID controller to measure the difference between the actual playback rate and the desired playback rate, and then adjust the resampling algorithm to reduce this difference.
- secondary audio device 130 includes, without limitation, an audio clock generator 421, an output synchronizer 423, a packet manager 424, a memory 425, and an audio sink 426.
- Audio clock generator 421 can be similar in configuration and operation to audio clock generator 221 of Figure 2 and generates an audio clock 411.
- Output synchronizer 423 can be similar in configuration and operation to output synchronizer 223 of Figure 2
- packet manager 424 can be similar in configuration and operation to packet manager 224 of Figure 2
- memory 425 can be similar in configuration and operation to memory 225 of Figure 2
- audio sink 426 can be similar in configuration and operation to audio sink 226 of Figure 2.
- secondary audio device 130 employs input association information 202 received from primary audio device 120 to perform an output synchronization process as described below in conjunction with Figure 5.
- Figure 5 sets forth a flowchart of method steps for synchronizing playback of audio in networked audio system 100, according to various embodiments. Although the method steps are described in conjunction with the system of Figures 1 –4, persons skilled in the art will understand that any suitable system configured to perform the method steps, in any order, is within the scope of the embodiments. In some embodiments, a computer-implemented method 500 is performed for each secondary audio device 130 in networked audio system 100.
- Computer-implemented method 500 begins at step 501, where secondary audio device 130 receives, from primary audio device 120, one or more audio playback packets 102.
- secondary audio device 130 receives, from primary audio device 120, input association information 202 for the one or more audio playback packets 102.
- secondary audio device 130 receives the one or more audio playback packets 102 prior to receiving input association information 202.
- secondary audio device 130 receives input association information 202 interspersed among the one or more audio playback packets 102.
- secondary audio device 130 buffers the one or more audio playback packets 102, for example in memory 425. In some embodiments, secondary audio device 130 also stores input association information 202 in memory 425.
- secondary audio device 130 receives a start playback time t start- playback from primary audio device 120.
- secondary audio device 130 in response to receiving the start playback time t start-playback from primary audio device 120, secondary audio device 130 begins pushing silence samples to audio sink 226 of secondary audio device 130 until the current audio clock time reaches the start playback time t start-playback .
- audio sink 226 begins playing back the silence samples.
- secondary audio device 130 pushes silence samples to audio sink 226 of secondary audio device 130 prior to computer-implemented method 500. In such embodiments, in step 503, secondary audio device 130 continues pushing silence samples to audio sink 226.
- step 505 secondary audio device 130 determines the audio clock time t mark , which is the time at which the start playback time t start-playback is received in step 503.
- T mark enables the determination of the playback frame number f mark that is marked as the starting frame for playback of audio.
- start playback time t start-playback can be received by secondary audio device 130 at an audio clock time that is after the time indicated by start playback time t start-playback .
- secondary audio device 130 modifies the audio playback packet 102 for synchronized playback.
- secondary audio device 130 generates a modified frame or audio playback packet by removing elapsed audio samples from the frame or audio playback packet 102 selected in step 506.
- the number of elapsed audio samples corresponds to the number of silence samples played back by secondary audio device 130 after start playback time t start-playback has occurred.
- unexpected and/or variable network delay causes the start playback time t start-playback to be received by secondary audio device 130 at an audio clock value at secondary audio device 130 that is after the time indicated by start playback time t start-playback .
- silence samples are played by audio sink 226 until synchronized playback by secondary audio device 130 of the modified frame or audio playback packet begins. These silence samples correspond to the elapsed audio samples that are removed from the frame or audio playback packet 102 selected in step 506.
- the current audio clock time at secondary audio device 130 (audio clock time t mark ) is later than the start playback time t start-playback
- the one or more elapsed audio samples are associated with times prior to the current audio clock time, and these elapsed audio samples are not played back by audio sink 226.
- An embodiment of a modified audio playback packet is described below in conjunction with Figure 6.
- FIG. 6 is a schematic illustration of an audio playback packet 610 and a modified audio playback packet 620, according to various embodiments.
- Audio playback packet 610 includes a plurality of audio samples 611 that correspond to audio data that play back over a time interval 612.
- Modified audio playback packet 620 includes a plurality of audio samples 621 that correspond to audio data that play back over a time interval 622.
- Modified audio playback packet 620 is a modified version of audio playback packet 610. As shown, time interval 622 is shorter than time interval 612.
- the plurality of audio samples 621 included in modified audio playback packet 620 are identical to the audio samples included in a final portion 614 of audio playback packet 610.
- modified audio playback packet 620 is equivalent to audio playback packet 610 after the removal of the audio samples included in an initial portion 613 of audio playback packet 610.
- step 508 secondary audio device 130 pushes the modified audio playback packet to audio sink 226 and the modified audio playback packet is consumed, i.e. , converted to audio by audio sink 226. Because the modified audio playback packet includes audio samples from the final portion of the audio playback packet selected in step 506, the audio data being consumed by audio sink 226 is synchronized with audio data being played back by other secondary audio devices 130 in networked audio system 100, even though playback may begin at a different audio clock time for each different secondary audio device 130.
- FIG. 7 is a block diagram of a computing device 700 configured to implement one or more aspects of the various embodiments.
- computing device 700 can be a computing device associated with networked audio system 100, such as primary audio device 120 and/or a secondary audio device 130.
- Computing device 700 may be a desktop computer, a laptop computer, a tablet computer, or any other type of computing device configured to receive input, process data, generate control signals, and display images.
- Computing device 700 is configured to perform operations associated with computer-implemented method 300, computer-implemented method 500, and/or other suitable software applications, which can reside in a memory 710 depending upon whether computing device 700 is a primary audio device 120 or a secondary audio device 130.
- computing device 700 when computing device 700 is associated with primary audio device 120, computing device 700 is configured to perform operations associated with computer-implemented method 300, and when computing device 700 is associated with secondary audio device 130, computing device 700 is configured to perform operations associated with computer-implemented method 500. It is noted that the computing device described herein is illustrative and that any other technically feasible configurations fall within the scope of the present disclosure.
- computing device 700 includes, without limitation, an interconnect (bus) 740 that connects a processing unit 750, an input/output (I/O) device interface 760 coupled to input/output (I/O) devices 780, memory 710, a storage 730, and a network interface 770.
- Processing unit 750 may be any suitable processor implemented as a central processing unit (CPU) , a graphics processing unit (GPU) , an application-specific integrated circuit (ASIC) , a field programmable gate array (FPGA) , any other type of processing unit, or a combination of different processing units, such as a CPU configured to operate in conjunction with a GPU.
- CPU central processing unit
- GPU graphics processing unit
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- processing unit 750 may be any technically feasible hardware unit capable of processing data and/or executing software applications, including processes associated with computer-implemented method 500.
- the computing elements shown in computing device 700 may correspond to a physical computing system (e.g., a system in a data center) or may be a virtual computing instance executing within a computing cloud.
- I/O devices 780 may include devices capable of providing input, such as a keyboard, a mouse, a touch-sensitive screen, and so forth, as well as devices capable of providing output, such as a display device 781. Additionally, I/O devices 780 may include devices capable of both receiving input and providing output, such as a touchscreen, a universal serial bus (USB) port, and so forth. I/O devices 780 may be configured to receive various types of input from an end-user of computing device 700, and to also provide various types of output to the end-user of computing device 700, such as one or more graphical user interfaces (GUI) , displayed digital images, and/or digital videos. In some embodiments, one or more of I/O devices 780 are configured to couple computing device 700 to a network 705.
- GUI graphical user interfaces
- Memory 710 may include a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or combination thereof.
- Processing unit 750, I/O device interface 760, and network interface 770 are configured to read data from and write data to memory 710.
- Memory 710 includes various software programs that can be executed by processing unit 750 and application data associated with said software programs, including with computer-implemented method 300 and/or computer-implemented method 500.
- a primary audio device in the networked audio system generates input association information for a frame or packet of audio data and provides the input association information to the secondary audio devices of the networked audio system.
- the input association information associates a time that the frame or packet was received by the primary audio device with that frame or packet.
- the input association information is used by the secondary audio devices to perform an output synchronization process in which the frame or packet is modified at the secondary audio device by the removal of elapsed audio samples from the frame or audio playback packet before being pushed to an audio sink of the secondary audio device in synchronization with the corresponding audio samples being pushed to the audio sinks of the other audio devices in the networked audio system.
- At least one technical advantage of the disclosed techniques relative to the prior art is that the disclosed techniques enable audio synchronization in a networked audio system is that is not affected by unexpected and/or variable network delays between different audio devices within a networked audio system. Audio playback from multiple audio devices or channels of the networked audio system is synchronized so that the sound from each audio device or channel is emitted by each audio device at the same time. As a result, a seamless, unified audio experience is created in which the soundstage (or speaker image) is consistent and coherent.
- a computer-implemented method of audio playback at a secondary audio device in an audio distribution system includes: receiving, from a primary audio device in the audio distribution system, one or more audio playback packets and input association information for the one or more audio playback packets; receiving, from the primary audio device, a start playback time; in response to receiving the start playback time, determining a current audio clock time at the secondary audio device; based on the current audio clock time at the secondary audio device, the input association information, and the start playback time, selecting an audio playback packet from the one or more audio playback packets; and pushing the selected audio playback packet to an audio sink included in the secondary audio device.
- selecting the audio playback packet from the one or more audio playback packets is based on a difference between the current audio clock time at the secondary device and the start playback time.
- a non-transitory computer readable medium includes a set of instructions which, in response to execution by a processor of a computer system, cause the processor to perform the steps of: receiving, from a primary audio device in an audio distribution system, one or more audio playback packets and input association information for the one or more audio playback packets; receiving, from the primary audio device, a start playback time; in response to receiving the start playback time, determining a current audio clock time at the secondary audio device; based on the current audio clock time at the secondary audio device, the input association information, and the start playback time, selecting an audio playback packet from the one or more audio playback packets; and pushing the selected audio playback packet to an audio sink included in the secondary audio device.
- non-transitory computer readable medium of clause 13 further comprising instructions which, in response to execution by the processor, cause the processor to perform the step of buffering the one or more audio playback packets at the secondary audio device.
- non-transitory computer readable medium of any of clauses 13-16 further comprising instructions which, in response to execution by the processor, cause the processor to perform the step of modifying the selected audio playback packet based on the current audio clock time by removing one or more elapsed audio samples from the selected audio playback packet.
- a system includes: a memory that stores instructions; and a processor that is communicatively coupled to the memory and is configured to, when executing the instructions, perform the steps of: receiving, from a primary audio device in an audio distribution system, one or more audio playback packets and input association information for the one or more audio playback packets; receiving, from the primary audio device, a start playback time; in response to receiving the start playback time, determining a current audio clock time at the secondary audio device; based on the current audio clock time at the secondary audio device, the input association information, and the start playback time, selecting an audio playback packet from the one or more audio playback packets; and pushing the selected audio playback packet to an audio sink included in the secondary audio device.
- aspects of the present embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc. ) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module, ” a “system, ” or a “computer. ” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium (s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function (s) .
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Otolaryngology (AREA)
- Computer Security & Cryptography (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
Un procédé de lecture audio mis en œuvre par ordinateur sur un dispositif audio secondaire dans un système de distribution audio consiste à : recevoir, d'un dispositif audio primaire dans le système de distribution audio, un ou plusieurs paquets de lecture audio et des informations d'association d'entrée pour le(s) paquet(s) de lecture audio ; recevoir, du dispositif audio primaire, une heure de lecture de démarrage ; en réponse à la réception de l'heure de lecture de démarrage, déterminer une heure d'horloge audio actuelle au niveau du dispositif audio secondaire ; d'après l'heure d'horloge audio actuelle au niveau du dispositif audio secondaire, les informations d'association d'entrée et l'heure de lecture de démarrage, sélectionner un paquet de lecture audio parmi le(s) paquet(s) de lecture audio ; et transférer le paquet de lecture audio sélectionné vers un récepteur audio inclus dans le dispositif audio secondaire.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/087761 WO2024212122A1 (fr) | 2023-04-12 | 2023-04-12 | Synchronisation audio dans un système de distribution audio |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/087761 WO2024212122A1 (fr) | 2023-04-12 | 2023-04-12 | Synchronisation audio dans un système de distribution audio |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024212122A1 true WO2024212122A1 (fr) | 2024-10-17 |
Family
ID=86286247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/087761 WO2024212122A1 (fr) | 2023-04-12 | 2023-04-12 | Synchronisation audio dans un système de distribution audio |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024212122A1 (fr) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006074274A2 (fr) * | 2005-01-05 | 2006-07-13 | Control4 Corporation | Procede et appareil de synchronisation de lecture de transmissions multimedia en continu dans des dispositifs a sorties multiples |
US20210311692A1 (en) * | 2020-04-01 | 2021-10-07 | Sagemcom Broadband Sas | Method of Managing an Audio Stream Read in a Manner That is Synchronized on a Reference Clock |
-
2023
- 2023-04-12 WO PCT/CN2023/087761 patent/WO2024212122A1/fr unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006074274A2 (fr) * | 2005-01-05 | 2006-07-13 | Control4 Corporation | Procede et appareil de synchronisation de lecture de transmissions multimedia en continu dans des dispositifs a sorties multiples |
US20210311692A1 (en) * | 2020-04-01 | 2021-10-07 | Sagemcom Broadband Sas | Method of Managing an Audio Stream Read in a Manner That is Synchronized on a Reference Clock |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6640359B2 (ja) | ワイヤレスオーディオ同期 | |
US11678005B2 (en) | Latency negotiation in a heterogeneous network of synchronized speakers | |
TWI547123B (zh) | 使多個媒體流同步之方法、緩衝媒體流之方法、系統及路由器 | |
JP2009521882A (ja) | ワイヤレスネットワークにおけるメディアデータ同期化 | |
US9837093B2 (en) | Packet based delivery of multi-channel audio over wireless links | |
JP2019024214A (ja) | 再生同期 | |
US10341773B2 (en) | Packet based delivery of multi-channel audio over wireless links | |
US9804633B2 (en) | Indirect clock measuring and media adjustment | |
JP2019525235A (ja) | 同期オーディオ再生装置 | |
US10805063B2 (en) | Virtual reality viewing system, reproduction synchronizing method, and virtual reality viewing program | |
US20240289086A1 (en) | Synchronizing Playback of Audio Information Received from Other Networks | |
WO2024212122A1 (fr) | Synchronisation audio dans un système de distribution audio | |
JP7513910B2 (ja) | 同期制御システム、送信装置、受信装置、同期制御方法、および、同期制御プログラム | |
CA3077449A1 (fr) | Systemes et procedes pour determiner le retard de plusieurs flux de medias | |
KR20170138647A (ko) | 미디어 재생 프로그램 | |
US10917465B2 (en) | Synchronization setting device and distribution system | |
CN112235685B (zh) | 一种音箱组网方法及音箱系统 | |
JP5735360B2 (ja) | 情報端末、情報機器及びこれらからなるシステム | |
CN115549832A (zh) | 一种音频同步方法及音频播放设备、存储介质 | |
KR20190031889A (ko) | 실시간 동기식 이더넷 기반 음향 시스템 및 방법 |