1. Technical Field
The present invention relates to audio headphones, and more particularly to a system for audio headphone equalization.
2. Related Art
Reproduction of audible sounds using headphones typically entails use of an audio signal generation device that generates one or more audio signals representative of audible sound, such as voice or music, that are provided either via a wire or wireless connection to a headphone. The headphone includes one or more transducers that are positioned in proximity to a user's ears. Audio signals received by the headphone are used to drive the one or more transducers to produce audible sound. In order to provide stereo audible sound, one or more loudspeakers are provided in proximity to each of a user's ears. The headphone may be configured to be inserted in a user's ears, to be positioned on top of a user's ears (supra-aural), or to be surrounding a user's ears (cirumaural).
A computing system for headphone equalization may use predetermined tone burst reference signals in conjunction with predetermined tone burst test signals during a user specific audio test to generate a headphone correction filter. The headphone correction filter may be applied to audio signals used to drive the headphone transducer(s) to provide equalization of the audio signals. The headphone correction filter may be generated to be headphone specific and user specific to compensate not only for the physical anatomy of the user's ear/hearing and the functionality of the headphone, but also how the user's brain processes the audible sound provided by the headphone.
In an example, the system may include a series of predetermined tone burst reference signals having a fixed loudness level and a series of predetermined tone burst test signals having a variable loudness level. The loudness level of the tone burst test signals may be adjustable based on a respective user gain setting control signal associated with each respective one of the tone burst test signals. The series of tone burst reference signals and the series of tone burst test signals may each be at a different predetermined frequency so that a band of frequencies is formed.
Each of the tone burst reference signals may be associated with a set of tone burst test signals in a sub-band surrounding the frequency of one of the tone burst reference signals. There may be a number of different sub-bands in the frequency band with each containing a tone burst reference signal, and surrounding tone burst test signals. The tone burst test signals in different sub-bands may overlap such that the same tone burst test signals may be used in trials different sub-bands in association with different tone burst reference signals.
Each of the sub-bands includes a series of trials that together may form the user specific audio test. During a first trial in a first sub-band, in a repeating intermittent sequence, a tone burst reference signal may be provided to drive a headphone transducer, followed by a tone burst test signal. A user may listen and compare the two signals, and adjust a loudness of the tone burst test signal until the two signals are perceived by the user as having about equal loudness. Subsequent trials in the first sub-band using the same tone burst reference signal and other tone burst test signals in the first sub-band may be completed until a user gain setting signal has been captured and stored by the system for all the tone burst test signals in the sub-band. This process may be performed for each of the tone burst reference signals in the corresponding other sub-bands.
The resulting captured and stored user gain setting signals from all of the sub-bands may be processed to form a user based frequency response curve. As part of forming the curve, the overlapping user gain signal settings from the tone burst test signals appearing in multiple sub-bands may be interpolated. In addition, the user based frequency response curve may be smoothed and clipped to form a continuous frequency response curve. The frequency response curve may be used by the system to generate the headphone correction filter. Any number of headphone correction filters may be generated, included different headphone correction filters for different headphones and different users.
Other systems, methods, features and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
The computing system 100 can also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, an audio device, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Examples of audio devices include an amplifier, a compact disc player, a television, a vehicle head unit, a radio, a home theater system, an audio receiver, an MP3 player, an audio headphone, an IPOD, or any other device capable of generating audio signals and/or audible sound perceived by a listener. In a particular example, the computing system 100 can be implemented using wireless electronic devices such as a smartphone that provide voice, audio, video or data communication. Further, while a single computing system 100 is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
In
The term “module” may be defined to include a plurality of executable modules. As described herein, the modules are defined to include software, hardware or some combination of hardware and software that is executable by a processor, such as processor 102. Software modules may include instructions stored in memory, such as memory 104, or another memory device, that are executable by the processor 102 or another processor. Hardware modules may include various devices, components, circuits, gates, circuit boards, and the like that are executable, directed, and/or controlled for performance by the processor 102.
The computing system 100 may include a memory 104, such as a memory 104 that can communicate via a communication bus 106. The memory 104 may be a main memory, a static memory, or a dynamic memory. The memory 104 may include, but is not limited to computer readable storage media such as various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like. In one example, the memory 104 includes a cache or random access memory for the processor, 102. In alternative examples, the memory 104 is separate from the processor 102, such as a cache memory of a processor, the system memory, or other memory. The memory 104 may include or be an external storage device or database for storing data. Examples include a hard drive, compact disc (“CD”), digital video disc (“DVD”), memory card, memory stick, floppy disc, universal serial bus (“USB”) memory device, or any other device operative to store data. The memory 104 is operable to store instructions executable by the processor 102. The functions, acts or tasks illustrated in the figures or described may be performed by the programmed processor 102 executing instructions stored in the memory 104. The functions, acts or tasks are independent of the particular type of instructions set, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firm-ware, micro-code and the like, operating alone or in combination. Likewise, processing strategies may include multiprocessing, multitasking, parallel processing and the like.
The memory 104 may be a computer readable storage medium. The term “computer-readable storage medium” may include a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable storage medium” may also include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a processor or that cause a computer system to perform any one or more of the methods or operations disclosed. The “computer-readable storage medium” may be non-transitory, and may be tangible.
The computing system 100 may also include a user interface 108. In
The input module 112 may be configured to allow a user to interact with any of the components of the computing system 100. The input module 112 may include a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display capabilities, voice command capabilities, remote control or any other device or capability operative to interact with the computing system 100.
The computing system 100 may also include an input/output module 114 configured to receive and provide input and output signals. The input and output signals may be analog or digital signals provided individually, or within a protocol such as RS232, RS484, Universal Serial Bus (USB), FIREWIRE, AES, or any other protocol.
In a particular example, as depicted in
The present disclosure contemplates a computer-readable medium that includes instructions 124 or receives and executes instructions 124 responsive to a propagated signal so that a device connected to a network 126 can communicate voice, video, audio, images or any other data over the network 126. Further, the instructions 124 may be transmitted or received over the network 126 via a communication port or interface 120, and/or using a communication bus 106. The communication bus 106 may be any form of communication pathway between the modules of the computing system 100, which may include dedicated communication pathways and/or shared communication pathways, and may or may not use a communication protocol for communication. The communication port or communication interface 120 may be a part of the processor 102 or may be a separate component. The communication port 120 may be created in software or may be a physical connection in hardware. The communication port 120 may be configured to connect with a network 126, external media, the display 110, or any other components in system 100, or combinations thereof. The connection with the network 126 may be a physical connection, such as a wired Ethernet connection or may be established wirelessly. Likewise, the additional connections with other components of the system 100 may be physical connections or may be established wirelessly, such as using a BLUETOOTH, or other short range wireless protocol. The network 126 may alternatively be directly connected to the communication bus 106.
The network 126 may include wired networks, wireless networks, Ethernet AVB networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.11, 802.16, 802.20, 802.1Q or WiMax network. Further, the network 126 may be a public network, such as the Internet, a private network, such as an intranet, a local area network, a wide area network, or combinations thereof, and may utilize a variety of networking protocols now available or later developed.
The system is not limited to operation with any particular standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) may be used. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as are considered equivalents.
Applications that may include the system may broadly include a variety of electronic and computer systems. One or more examples described may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules. Accordingly, the present system encompasses software, firmware, and hardware implementations. The system described may be implemented by software programs executable by a computer system. Further, in a non-limited example, implementations may include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing, such as cloud computing, may be constructed to implement various parts of the system.
The computing system 100 may be in communication with headphone 130. The headphone 130 may include at least a pair of transducers that are positioned to be in close proximity to one or more of a listener's ears when the headphones are worn by the listener. The headphones 130 may be circumaural to encompass a listener's ears, supra-aural to sit on top of a listener's ears, ear-fitting, such as earbuds and in-ear designs, or any other design that provides an individual listening experience to a user. In addition or alternatively, the headphone 130 may be a headset used by a user for both listening and speaking.
The headphone 130 may be in communication with the computing system 100 via a wired or a wireless communication. For example, the headphones 130 may be in wired communication with the computing system 100 via a cable and the input/output module 114 or the network 126, or in wireless communication with the computing system 100 via the communication interface 120 or the network 126. In some example applications, at least a portion of the computing system 100 may be resident in the headphone 130. In other examples, at least part of the computing system 100 may be in a separate device, such as a mobile communication device or audio player, and headphone 130 may be a separate stand-alone device.
The computing system 100 may provide accurate individualized headphone equalization without test microphones or other expensive equipment by providing a listener test procedure that results in user personalized equalization settings for a particular set of headphones. The user personalized equalization signals are derived by the computing system 100 using a testing procedure initiated by the user. During the test procedure, predetermined previously stored sets of test signals and reference signals are presented to the user via the headphone 130. Based on the users feedback collected and stored during the testing procedure, the computing system 100 may generate a headphone correction filter that is customized for the particular user and a particular set of headphones. The headphone correction filter may be a digital filter, or an analog filter that is applied to audio signals such that filtered audio signals drive the transducers in the headphone 130.
The computing system 100 may provide audio signals to drive the headphone 130 based on pre-recorded audio content or live audio content, such as music or voice. The audio signals may be digital or analog audio signals. Pre-recorded audio content can include stored audio content, streaming audio content, or any other audio content that is captured and recreated. Live audio content can include conversations, musical performances, or any other audible sound being supplied at the time of production of the audible sound as an audio signal. Alternatively, or in addition, audio signals to drive the headphones may be provided from an audio device, such as an MP3 player, an audio codec, a CD or DVD player, or any other device capable of producing audio signals to drive the transducer(s) in the headphone 130. Where an audio device is used to provide audio signals to drive the headphone 130, the headphone correction filter may be applied to the audio signals at the audio device; at an intermediary point, such as the computing system 100 or a separate filter device; or at the headphone 130.
Any number of headphone correction filters may be generated by the computing system 100. Thus, a user may have different digital headphone correction filters for different sets of headphones and different audio devices.
The computing system 100 may generate one or more headphone correction filters so that the headphone 130 can provide high quality sound reproduction. It is important for high quality sound reproduction that the sound transducers themselves (headphone loudspeakers) deliver the program material in a neutral way, without imposing any audible frequency response alteration. In general, it is difficult to measure and determine perceived frequency responses of headphones. One of the problems with headphone reproduction is the large coloration, variation from headphone device to device, and differences in perceived audio sound timbre from one listener to another.
Measured headphone data (binaural data), using a coupler or dummy head, are difficult to interpret and of limited value for accurate headphone equalization (EQ) because measured headphone date does not take individually perceived frequency responses and variations among listeners into account. The computing system 100 provides a simple, convenient means to capture and then equalize the response for an individual user in the form of one or more headphone correction filters. Due to the testing method employed, not only do the headphone correction filters generated by the computing system 100 take into account the anatomical conditions of a listener's ears, but also how the listener's brain processes audible sound received in the listener's ears. Thus, the headphone correction filters generated by the computing system 100 may correct pre-filtering of stereo signals for the headphones 130, in order to obtain flat perceived responses and as a result, correct out-of-head localization with binaural recordings, or other stereo material that has been processed through head-related (binaural) filters.
Variations of perceived responses among listeners using the same headphone can be significant. Hence a fixed, predefined EQ filter intended for use with all listener's will likely work poorly for some listeners, reasonable for other listeners, and well for some other listeners. The computing system 100 may generate headphone EQ filters (correction filters) that are individually adapted to each person, without, for example performing test measurements with a probe microphone while wearing the headphone. If such tests were undertaken, a probe microphone could be inserted into the ear canal to detect sound pressure, very close to the ear drum. Problems with this testing technique are listener safety, cost, variations of the test microphone's frequency response itself, and its influence on the response while inserted in the listener's ear. Further, in these types of tests, it is not clear how closely the response resembles the actual listener's perceived response, because further “filtering” of information in the brain is not taken into account.
The computing system 100 solves these types of problems by applying predetermined test signals, such as pre-equalized, equal-loudness burst signals during a user specific tuning test. In other examples, the predetermined test signals may be pseudo-random noise, windowed sine bursts, or any other bandlimited signals. The burst signals may be derived from impulse responses of a predetermined auditory filter bank. The audio band may be divided into sub-bands with different reference frequencies (fref) substantially centered in each band, thereby avoiding large pitch differences between the test signals. Overlapping regions of each of the frequency sub-bands may be used to ensure that a frequency response curve over the entire desired frequency range can be reconstructed reliably. In addition, the overlapping regions of the frequency sub-bands can be used to confirm consistency of the user inputs captured and stored during the user specific audio test. The computing system 100 may employ an automatic filter design method that takes captured and stored user input data and generates headphone correction filters, or headphone EQ filters.
fc [1:23]=[50 150 250 350 450 570 700 840 1000 1170 1370 1600 1850 2150 2500 2900 3400 4000 4800 5800 7000 8500 10500] Hz
In other examples, fewer or greater numbers of center frequencies may be generated for the band filters.
For example, in
Each of the trial sets 308, 310, 312, 314, or 316 may be stored as a set of predetermined tone burst reference signals and a set of predetermined tone burst test signals that can be used during the user specific tuning test. As illustrated in
The tone burst reference signal 320 (fref) and the tone burst test signals 322 (tefr) may be played in a predetermined sequence, with predetermined periods of silence between the signals. In one example, the periodic sequence is:
fref [i]→pause 1→tefr [i]→pause 1→fref [i]→pause 2
fref [i]→pause 1→tefr [i]→pause 1→fref [i]→pause 2.
The tone burst reference signal 320 (fref) operates as a reference signal with a fixed level, followed by one of the tone burst test signals 322 (tefr) having a level that is adjustable by the listener. The periodic sequence may also include a first pause (pause 1) between the signals, and a second pause (pause 2) at the end of the periodic sequence before the next periodic sequence commences. The sequence may be repeated periodically. In one example, the first pause (pause 1) may be about 0.2 seconds, and the second pause (pause 2) may be about 0.4 seconds. In other examples, different lengths of time may be used for the first and second pauses, and/or the first and second pauses may be the same length of time, or different lengths of time.
During each periodic sequence, a user may listen to the tone burst reference signal 320 (fref) at one center frequencies (fc) followed by one of the tone burst test signals 322 (tefr) in the sub-band played at another center frequencies (fc) and compare the perceived loudness of the two signals. The user may then adjust the loudness of the tone burst test signal 322 (tefr). Differences in loudness between the tone burst reference signal 320 (fref) and the tone burst test signal 322 (tefr) are related to differences in sound pressure level (SPL) and duration of the different audible sounds due to the human auditory system integrating or averaging the effect of SPL over a window of time, such as a 600 to 1000 millisecond window. Adjustment of the loudness of the tone burst test signal 322 (tefr) may be performed manually by the listener during each periodic sequence to equalize the loudness of the reference and test signals. In response to a user adjustment, a user gain setting signal may be received by the computing system 100. When the listener is satisfied that the perceived loudness of the tone burst reference signal 320 (fref) and the tone burst test signal 322 (tefr) are substantially the same, the listener may proceed to the next trial in the sub-band using the same tone burst reference signal 320 (fref) and a different one of the tone burst test signals 322 (tefr). Upon sequentially completing a comparison of the tone burst reference signal 320 (fref) to all of the tone burst test signals 322 (tefr) in the sub-band, and capture and storage of the respective gain setting signals from corresponding gain settings used to equalize the loudness, the computing system 100 may repeat the procedure for the next trial set.
The loudness adjustment 404 may be used to adjust the loudness of the tone burst test signal 322 (tefr) presently being used in the selected trial. Adjustment of the loudness may be performed by the computing system by changing a gain associated with the tone burst test signal 322 (tefr) to adjust an amplitude of the tone burst test signal 322 (tefr). The gain may be adjusted in response to receipt of a loudness adjustment signal or user gain setting signal from the user interface. Thus, as the user adjusts the loudness adjustment, a corresponding gain setting signal may be received by the computing system. The gain setting signal may be captured and stored by the computing system. In addition, the gain setting signal may adjust a gain being applied to the tone burst test signal 322 (tefr) to raise or lower the loudness of the signal. In one example, the amplitude of the tone burst test signals 322 (tefr) may be adjusted in an adjustment range of −15 dB to +15 dB with the loudness adjustment 404. In other examples, any other range of adjustment may be used.
The received gain setting signal may be captured and stored in association with the tone burst test signal 322 (tefr) presently being used in the selected trial. Where the same trial is performed multiple times using the same tone burst test signal 322 (tefr), the received gain setting signal may overwrite a previously received gain setting signal. Thus, a user may perform the same trial multiple times within a single user specific audio test, while having only a single gain setting signal captured and stored for each respective one of the tone burst test signals 322 (tefr). Upon moving to another trial during the user specific audio test, the last captured and saved gain setting signal may be used.
The filter generation module 406 may provide a filter generation signal, such as a start flag from the user interface. In response to receipt of the filter generation signal, the computing system may complete the trial presently in progress, and store the results. In addition, a filter design process may be initiated, as explained later.
In
With reference to
where the values in [bracket] denote the index location of the filter bank center frequencies fc that are the reference signal (tone burst reference signal 320 (fref)) used throughout the respective trial set. In this example, the filter bank center frequencies fc that are corresponding test signals (tone burst test signals 322 (tefr)) used in the trials in each of the trial sets are:
where the values in [bracket] denote the index location of the filter bank center frequencies fc that are the test signals (tone burst test signals 322 (tefr)) used throughout the respective trial sets.
As previously discussed, each of the trial sets include overlapping trials in which the filter bank center frequencies (fc) that are test signals are re-used with different filter bank center frequencies (fc) used as the reference signal. In the previous example, three test signals are repeated in the other trial sets. For example, trials using index locations 5, 6 and 7 as test signals are repeatedly used in the first and second trial sets. In addition, at least one of the tone burst test signals 322 (tefr) in one trial set may be the tone burst reference signal 320 (fref) in another trial set. For example, the tone burst test signal 322 (tefr) at 840 Hz in the trial set of the first sub-band 308 may be the tone burst reference signal 320 (fref) in the trial set of the second sub-band 310. Use of the same test signals in multiple trials sets should ideally lead to the same result (loudness level) by independent listener adjustment of the loudness level of the same test signals when compared to different reference signals. This overlapping data may be used to align the resulting individual curves to a frequency response curve representative of the entire trial.
An overlap 514 of the different segments is illustrated in
Referring again to
where w1=4096 frequency bins; w2=2048 frequency bins; w3=1024 frequency bins; and w4=512 frequency bins. In other examples, any other length of window, sample rate, and number of samples may be used. Each of the burst tones may be repeated a predetermined number of times within the tone burst test signal 322 (tefr) depending upon the trial set within which the trial is located. In one example the burst tone may be repeated pern[i] times during each tone burst test signal 322 (tefr) of a trial in a respective trial set:
All of the excitation burst signals may be pre-filtered by the computing system using an equal-loudness filter prior to storage and use in the test signals. Alternatively, the tone burst test signals 322 (tefr) which include the excitation burst signals, may be pre-filtered by the computing system using the equal-loudness filter prior to storage and use as the test signals In some examples, the loudness filtered excitation burst signals may be stored as a set of predetermined tone burst reference signals. In other examples, the tone burst test signal 322 (tefr) may be created using the filtered excitation burst signals and stored as a set of predetermined tone burst test signals. Alternatively, or in addition, the equal loudness filter may be applied to the excitation burst signals prior to the excitation burst signals being provided to the computing device for storage. Thus, the equal loudness filter may or may not be stored within the computing system, and the filtered, or unfiltered sets of predetermined tone burst reference and test signals may be stored.
The equal loudness filter may comprise a cascade of two second-order filter sections. In one example, the equal loudness filter may be specified to include a first filter section and a second filter section. The first filter section may include a notch filter, and the second filter section may include a shelving filter. In the example of a notch filter, the notch may be a second order infinite impulse response filter with a notch occurring at about 3 KHz. In this example the shelving filter may provide boost at low frequency by providing a shelving curve between about 200 Hz and 1000 Hz. Accordingly, in this example, the parameters of the first and second filter sections may be:
First Filter Section:
K=tan(pi*fcn/fs);
vgn=10̂(agn/20);
u=1+K/Qn+K̂2;
bn=[1+vgn/Qn*K+K̂2, 2*(K̂2−1), 1−vgn/Qn*K+K̂2]/u;
an=[1, 2*(K̂2−1)/u, (1−K/Qn+K̂2)/u];
Second Filter Section:
Shelving filter with fc=350; again=−18.5; Q=0.8;
K=tan(pi*fc/fs);
vg=10̂(again/20);
u=l+K/Q+K̂2;
bn=[vg+sqrt(vg)/Q*K+K̂2, 2*(K̂2−vg), vg−sqrt(vg)/Q*K+K̂2]/u;
an=[1, (2*(K̂2−1))/u, (1−K/Q+K̂2)/u];
In other examples, third order or higher order recursive filters may be used. In addition, the filters may be other than recursive filters, or may include different parameters that substantially meet the functional criteria described. Further, finite impulse response filters may be used instead of, or in addition to infinite impulse response filters.
The raw filter data entered by the listener as gain adjustments and captured by the computing system may be used to create the segments of
At block 1102, pieces of user input data in the form of gain values from each of the trials in the trial sets included in the user specific tuning test are captured and stored n memory. At block 1104, the stored user input data is combined to form the segments 502, 504, 506, 508, and 510, as previously discussed with regard to
If, on the other hand, the deviation in the gains is determined by the computing system to be within the gain deviation threshold at block 1106, the operation proceeds to block 1112 where the overlapping portions of the segments may be interpolated to a fine frequency grid in order to form a continuous logarithmic magnitude response curve of the gain values. At block 1114 the logarithmic magnitude response curve may be processed to create a continuous frequency response curve used to generate a filter. In one example, the logarithmic magnitude response curve may be normalized, limited to a maximum allowed gain if necessary, and smoothed to form the continuous frequency response curve. At block 1116 a headphone correction filter may be computed by the computing system from the continuous frequency response curve. In one example, the computing system may compute a final finite impulse response (FIR) filter from the continuous frequency response curve for the headphone correction filter.
Since each headphone may provide a different response, a user may end up with significantly different headphone correction filters for different types of headphones.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.