Modern broadcast receivers have to support multiple audio inputs from different broadcast domains, such as FM, Digital Audio Broadcast (DAB), or Internet radio. In case of a reception loss of one of the audio sources, modern receivers support the switching to an alternative reception source when they are available. To make such a switch seamless and not recognizable by the listener, the different audio sources need to be aligned and time offset be known.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In one embodiment, a radio receiver is disclosed. The radio receiver includes a plurality of receiving ports to receive identical audio streams, a history buffer and a controller for retrieving information from a first stream in the plurality of identical audio streams that is received first. the controller is configured to store the retrieved information in the history buffer and compare the stored information with an information about a second stream in the plurality of identical audio streams to determine a time offset between the first stream and the second stream.
In some examples, a baseband processor is included to play one of the first stream and the second stream via a speaker. The controller is further configured to play the second stream starting from a point in time at which the first stream interrupts. The retrieved information includes blocks of data each containing a preselected width portion of the first stream. Each of the blocks of data including a start time timestamp and an end time timestamp of a section of the first stream.
In some embodiments, the preselected width is in a range 1 to 5 seconds. In some examples, the preselected width is automatically selected by the controller. In other examples, the preselected width is set through a changeable configuration for the controller.
In another embodiment, a method for determining a time offset between two identical audio streams is disclosed. The method includes receiving a plurality of identical audio streams, each being delayed with respect to other streams in the plurality of identical audio streams. The method further includes retrieving information from a first stream in the plurality of identical audio streams that is received first and storing the retrieved information in a history buffer and comparing the stored information with an information about a second stream in the plurality of identical audio streams to determine a time offset between the first stream and the second stream.
So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. Advantages of the subject matter claimed will become apparent to those skilled in the art upon reading this description in conjunction with the accompanying drawings, in which like reference numerals have been used to designate like elements, and in which:
Note that figures are not drawn to scale. Intermediate steps between figure transitions have been omitted so as not to obfuscate the disclosure. Those intermediate steps are known to a person skilled in the art.
Many well-known manufacturing steps, components, and connectors have been omitted or not described in details in the description so as not to obfuscate the present disclosure.
A radio may receive a same audio stream from different sources and in case of an interruption from one source, the radio can seamlessly switch to a stream from another source. However, streams received from different sources are not time synchronized due to different delays in the transmission channels. Therefore, the streams are correlated so that switching from one stream to another does not cause a break in audio playback and provides a good user experience.
The received audio streams are broken up into small blocks and the information about the blocks is stored in a history buffer. The limited amount of audio data is also stored. For example, last 10 seconds of audio stream may be stored in a memory. This time may be configurable depending on the size of the memory. The history buffer may include time stamps and audio stream data for the purpose of correlation. For example, pointers to the audio data stored in the memory may be included in the history buffer along with start and end time stamps of each block in the actual audio stream.
The radio receiver 100 includes a speaker 112 coupled to an audio driver to play a selected audio stream with the help of a baseband processor 106. The radio receiver 100 includes a controller 102 for receiving multiple identical audio streams through different channels and correlating the received audio streams and store the information about the plurality of audio streams in a memory and history buffer 104.
In some examples, the radio receiver 100 is configured to be aware of comparative delays in different types of reception channels. For example, a stream being received via the Internet may be slower than a stream being received on the FM band. When the radio receiver 100 is tuned to a particular program, the radio receiver 100 starts to play one stream and also starts to buffer the stream in the memory. A history buffer 104 is maintained with information about the data blocks of the audio streams.
For illustration purposes, assuming Stream 1 starts at −10 second, the controller 102 starts to store blocks of 5 second of Stream 1 in the history buffer 104. Stream 2 starts to arrive at a 10 second delay. At that time, block C of Stream 1 is being received. Hence, for stream correlation purposes, instead of comparing the two streams at 0 second, the controller 102 starts to correlate Stream 2 with Stream 1 data in the history buffer 104. Stream 2 is also broken up into blocks of equal and same size as the blocks of Stream 1. The controller 102 compares the blocks of Stream 1 from the history buffer 104 starting at −10 seconds with the blocks of Stream 2. When a match is found, the delay in Stream 2 is known because the controller 102 is aware that when block A of Stream 1 was received and compares it the time when block A of Stream 2 was received.
In some examples, after correlation, the controller 102 maintains a linked list of correlated blocks of the two audio streams. When Stream 1 is playing and, for example, experiences and interruption at block number C, the controller 102 can look up the linked list to identify the corresponding block in Stream 2. The controller 102 may either start to play the corresponding block in Stream 2 from the start or may start to play that block from the same time location already known from the block of Stream 1 where the interruption occurred.
Once the delay or time offset between the two audio streams is known, if Stream 1 interrupts, the controller 102 can switch to a corresponding delayed portion of Stream 2. In some embodiments, last few seconds of audio, the length of time can be configurable, of both streams are stored in the memory 104. In some embodiments, the history buffer or the memory 104 may be a volatile memory.
In the example of
The embodiments described herein provides the results of a computation of the delay between two audio sources within a time frame that is comparable to the actual delay between the two streams. Typical solutions require substantially more time for such computation. Another advantage of the embodiments described herein improves scalability because the time required for the time offset computations do not increase with the delay between the audio streams.
Some or all of these embodiments may be combined, some may be omitted altogether, and additional process steps can be added while still achieving the products described herein. Thus, the subject matter described herein can be embodied in many different variations, and all such variations are contemplated to be within the scope of what is claimed.
While one or more implementations have been described by way of example and in terms of the specific embodiments, it is to be understood that one or more implementations are not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements as would be apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the subject matter (particularly in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the scope of protection sought is defined by the claims as set forth hereinafter together with any equivalents thereof entitled to. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illustrate the subject matter and does not pose a limitation on the scope of the subject matter unless otherwise claimed. The use of the term “based on” and other like phrases indicating a condition for bringing about a result, both in the claims and in the written description, is not intended to foreclose any other conditions that bring about that result. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention as claimed.
Preferred embodiments are described herein, including the best mode known to the inventor for carrying out the claimed subject matter. Of course, variations of those preferred embodiments will become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventor expects skilled artisans to employ such variations as appropriate, and the inventor intends for the claimed subject matter to be practiced otherwise than as specifically described herein. Accordingly, this claimed subject matter includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed unless otherwise indicated herein or otherwise clearly contradicted by context.