A portion of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever.
One or more embodiments relate generally to time alignment for independent recording and playback, and in particular, to providing spectrogram-based time alignment for independent recording and playback systems.
In-room speaker system equalization was traditionally implemented by exciting one speaker at a time. With a higher number of speakers, restrictions of measurement microphone setup, the annoyance factor due to traditional stimuli, and background noises, the process of measuring the impulse response of a multi-channel system in real-time can be cumbersome. With fast Fourier transform (FFT) computation restrictions on a smartphone digital signal processing (DSP), the accuracy and resolution of the impulse responses are compromised.
One embodiment provides a computer-implemented method that includes sending a stimulus signal to a loudspeaker. A measurement signal is received via a microphone. The stimulus signal is transformed into a stimulus time-frequency representation. The measured signal is transformed into a measured time-frequency representation. At least one frequency value is selected between the stimulus time-frequency representation and the measured time-frequency representation. In some embodiments, correlation (e.g., linear correlation) analysis is performed using the selected at least one frequency value. Based on the correlation analysis, a statistical mode is determined to produce a start-time of the stimulus signal. In some embodiments, a nonlinear analysis including a nonlinear model (e.g., a neural network) can be trained to identify a start-time or stop-time of the stimulus signal in a recording.
Another embodiment includes a non-transitory processor-readable medium that includes a program that when executed by a processor provides a start-time of a stimulus in a measurement, including sending, by the processor, a stimulus signal to a loudspeaker. The processor receives, via a microphone, a measurement signal. The processor transforms the stimulus signal into a stimulus time-frequency representation. The processor further transforms the measured signal into a measured time-frequency representation. The processor additionally selects at least one frequency value between the stimulus time-frequency representation and the measured time-frequency representation. The processor further performs correlation (e.g., linear correlation) analysis using the selected at least one frequency value. The processor additionally determines, based on the correlation analysis, a statistical mode to produce a start-time of the stimulus signal.
Still another embodiment provides an apparatus that includes a memory storing instructions, and at least one processor executes the instructions including a process configured to send a stimulus signal to a loudspeaker. A measurement signal is received via a microphone. The stimulus signal is transformed into a stimulus time-frequency representation. The measured signal is transformed into a measured time-frequency representation. At least one frequency value is selected between the stimulus time-frequency representation and the measured time-frequency representation. Correlation analysis is performed using the selected at least one frequency value. Based on the correlation analysis, a statistical mode is determined to produce a start-time of the stimulus signal.
These and other features, aspects and advantages of the one or more embodiments will become understood with reference to the following description, appended claims and accompanying figures.
For a fuller understanding of the nature and advantages of the embodiments, as well as a preferred mode of use, reference should be made to the following detailed description read in conjunction with the accompanying drawings, in which:
The following description is made for the purpose of illustrating the general principles of one or more embodiments and is not meant to limit the inventive concepts claimed herein. Further, particular features described herein can be used in combination with other described features in each of the various possible combinations and permutations. Unless otherwise specifically defined herein, all terms are to be given their broadest possible interpretation including meanings implied from the specification as well as meanings understood by those skilled in the art and/or as defined in dictionaries, treatises, etc.
A description of example embodiments is provided on the following pages. The text and figures are provided solely as examples to aid the reader in understanding the disclosed technology. They are not intended and are not to be construed as limiting the scope of this disclosed technology in any manner. Although certain embodiments and examples have been provided, it will be apparent to those skilled in the art based on the disclosures herein that changes in the embodiments and examples shown may be made without departing from the scope of this disclosed technology.
Some embodiments relate generally to time alignment for independent recording and playback, and in particular, to providing spectrogram based time alignment for independent recording and playback systems. One embodiment provides a computer-implemented method that includes accessing a stimulus signal at each of multiple frequency bands. A measured signal is accessed at each of the multiple frequency bands. The stimulus signal is transformed into a stimulus time-frequency representation. The measured signal is transformed into a measured time-frequency representation. At least one frequency value is selected between the stimulus time-frequency representation and the measured time-frequency representation. Correlation analysis is performed using the selected at least one frequency value. Based on the correlation analysis, a statistical mode is determined to estimate a start-time of the stimulus signal from the measurement signal.
In one or more embodiments, the disclosed technology implements a simultaneous deconvolution of a multichannel speaker system. Some embodiments use a set of circularly shifted sine-sweep stimuli to excite the speakers and calculate the impulse responses in real-time on a smartphone (or other similar device, such as a tablet, etc.) App over a cloud computing-based architecture. An independent recording and playback system, along with manual delays or system delays due to Bluetooth, Wi-Fi, or cloud-based communication, pose further challenges to the accuracy of measurements. To surmount these complications, one or more embodiments implement a time-alignment method that uses bin-wise matched filtering of spectrograms, followed by a statistical analysis of its results.
In some embodiments, simultaneous deconvolution processing calculating impulse response estimate uses the log-sweep autocorrelation inverse spectrum and the cross correlation shown in Equation (Eq.) (1).
Input signal: x(n)=x(t)|t=nT
Note that for an N channel speaker system, jth channel input is one of the log-sweeps, which is circularly shifted by <M>P.
Accurate impulse response calculations from a deconvolution operation calls for high resolution fast Fourier transform (FFT). In some embodiments, an on-device implementation of a simultaneous deconvolution process as a smartphone App may be restricted with the length of the FFT, which can be implemented on the processor. The App often runs into overruns attempting to implement a high resolution FFT. In order to solve the problems of hardware overruns, in one or more embodiments the processing is performed on a cloud computing-based processor. In some embodiments, an App is implemented using MATLAB Mobile or other similar tools. In one example embodiment, the architecture to implement the simultaneous deconvolution processing/algorithm App may be built using the MATLAB Mobile's connect to MATHWORKS® cloud feature. This enables implementation of an FFT of length in the magnitude of, for example, 219 (required for an example App) and above, which is sufficient to deconvolve sweeps of about the same length.
In one or more embodiments, the following equations provide clarity on the processing/algorithm implemented. Cross-correlation of two frequency bins SM and Sideal:
where, SM[n] and Sideal[n] are the nth elements of measured and ideal stimuli spectrogram frequency bin. The technique can be readily extended to include joint-analysis over multiple frequency bins from the spectrogram. This cross correlation is executed over length N with shift m.
In Eq. (6), P is the prominence of the peak, H is the height or amplitude of the peak, L and R are the left and right valley. The first peak of the impulse response that is found is above a certain threshold of the prominence.
In Eq. (7), P(x[i]) is prominence of peak at ith sample in impulse response (IR), and P, is the threshold value for prominence to detect a valid peak. In order to calculate relative channel delay Eq. (8) is implemented as:
In Eq. (8), TOAi is the time of arrival for the ith channel, which is calculated from the known sampling frequency and the peak_index in Eq. (7).
In Eq. (9), RelativeDisti,j is the actual relative distance between speakers for channel i and j respectively. This distance is calculated using the difference between the measured distance of the microphone from the speakers for channel i and j. This measurement may be performed using a laser rangefinder or similar device.
Eq. (10) shows that Errori;j is the difference between actual relative delay: Delay (Relativei,j) and the delay measured using Eq. (8): Delay (Measuredi,j).
In Eq. (11), H and X are the FFTs of the impulse response (derived with the simultaneous deconvolution processing/algorithm App for the ith channel) and pink noise (with a reference SPL), respectively. The FFT length used is determined by: length (Impulse_Responsei)+length (Pink_Noise)−1.
In Eq. (12), y¿ is the time domain convolution of the pink noise (measured) and the impulse response (calculated using the simultaneous deconvolution processing/algorithm App).
Real-time implementation of a speaker measurement smartphone app (for levels and delay) is a challenging process. One or more embodiments solve the challenge of using a high resolution FFT on device with an approach to deploy the calculations over a cloud environment-based processor/server. In some embodiments, circularly shifted log sine sweeps are time efficient and suitable for use. Another major challenge of having non-synchronized playback and recording systems is addressed using the statistical features from a high time-resolution spectrogram.
In some embodiments, the disclosed technology provides time alignment of an audio measuring/recording system with a separate playback system using automatically derived statistical features from a spectrogram. In one or more embodiments, the disclosed technology further provides spectrogram-based automatically derived start-time and end-time synchronization for system requiring alignment of a stimulus and recorded signal. Audio playback and recording systems may need synchronization due to manual, BLUETOOTH®, Wi-Fi or cloud computing based communication delay. Spectrogram based start and end-time synchronization can work on any system that may need alignment of the stimulus and the recorded signal. In some embodiments, the disclosed technology additionally provides loudspeaker tuning independent of stimulus, including at least one of pink noise, maximum length sequence (MLS), log sine sweeps, multitone, or random-white noise, and uses automatically derived statistical features of a spectrogram to evaluate start and stop times. One or more embodiments are independent of any stimulus that is used for loudspeaker tuning (i.e., the disclosed technology works for pink noise, MLS, log sine sweeps and multitone and random-white noise, etc. In cases with unknown stimuli, some embodiments use statistical properties of a spectrogram to evaluate start and stop times.
In some embodiments, process 2300 further includes the feature that the stimulus signal is played at one or more speakers.
In one or more embodiments, process 2300 additionally provides for calibrating time alignment for the one or more speakers based on the start-time.
In some embodiments, process 2300 further includes the feature that the measured signal is recorded at a computing device (e.g., a smartphone, tablet, etc.).
In one or more embodiments, process 2300 additionally includes the feature that the time alignment for the one or more speakers is calibrated for an audio measuring or recording system with a separate playback system and is based on one or more automatically derived statistical features from a spectrogram.
In some embodiments, process 2300 further includes providing tuning of the one or more speakers independent of the stimulus signal, including at least one of pink noise, maximum length sequence, log sine sweeps, multitone, or random-white noise. Process 2300 additionally includes providing a spectrogram-based automatically derived start-time and end-time synchronization for the audio measuring or recording system, where the audio measuring or recording system requires alignment of the stimulus signal and the measurement signal.
In one or more embodiments, process 2300 additionally includes the feature that the alignment of the stimulus signal and the measurement signal is required due to manual, BLUETOOTH®, Wi-Fi or cloud-based communication delay.
Embodiments have been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. Each block of such illustrations/diagrams, or combinations thereof, can be implemented by computer program instructions. The computer program instructions when provided to a processor produce a machine, such that the instructions, which execute via the processor create means for implementing the functions/operations specified in the flowchart and/or block diagram. Each block in the flowchart/block diagrams may represent a hardware and/or software module or logic. In alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures, concurrently, etc.
The terms “computer program medium,” “computer usable medium,” “computer readable medium”, and “computer program product,” are used to generally refer to media such as main memory, secondary memory, removable storage drive, a hard disk installed in hard disk drive, and signals. These computer program products are means for providing software to the computer system. The computer readable medium allows the computer system to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium. The computer readable medium, for example, may include non-volatile memory, such as a floppy disk, ROM, flash memory, disk drive memory, a CD-ROM, and other permanent storage. It is useful, for example, for transporting information, such as data and computer instructions, between computer systems. Computer program instructions may be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
As will be appreciated by one skilled in the art, aspects of the embodiments may be embodied as a system, method or computer program product. Accordingly, aspects of the embodiments 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 “circuit,” “module” or “system.” Furthermore, aspects of the embodiments 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.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be 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. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, 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.
Computer program code for carrying out operations for aspects of one or more embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of one or more embodiments are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, 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. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
References in the claims to an element in the singular is not intended to mean “one and only” unless explicitly so stated, but rather “one or more.” All structural and functional equivalents to the elements of the above-described exemplary embodiment that are currently known or later come to be known to those of ordinary skill in the art are intended to be encompassed by the present claims. No claim element herein is to be construed under the provisions of 35 U.S.C. section 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or “step for.”
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosed technology. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the embodiments has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the embodiments in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosed technology.
Though the embodiments have been described with reference to certain versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
This application claims the priority benefit of U.S. Provisional Patent Application Ser. No. 63/530,893, filed on Aug. 4, 2023, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63530893 | Aug 2023 | US |