Method for using a mobile device equipped with at least two microphones for determining the direction of loudspeakers in a setup of a surround sound system
10104489 ยท 2018-10-16
Assignee
Inventors
Cpc classification
H04R5/04
ELECTRICITY
H04R2499/11
ELECTRICITY
H04S7/301
ELECTRICITY
International classification
H04R5/04
ELECTRICITY
Abstract
A smartphone having two microphones is used for determining the direction of a loudspeaker in a surround system setup. This is performed using smartphone rotation in azimuth and polar angle direction while capturing in its microphones a test signal from a current one of the loudspeakers. From the microphone signals a corresponding TDOA value is calculated, and the smartphone is rotated until that TDOA value is nearly zero, resulting in a loudspeaker direction information.
Claims
1. A method for using a smartphone equipped with at least two microphones (m.sub.1,m.sub.2) for determining the direction of loudspeakers A, in a setup of a surround sound system including N loudspeakers, k=1 . . . N, wherein said direction is expressed by an azimuth angle .sub.k and a polar angle .sub.k, said method including: a) setting initial values (.sub.0,.sub.0) for said azimuth angle .sub.k and said polar angle .sub.k for loudspeaker l.sub.k direction; b) in a first loop over smartphone position angle for the determination of one of .sub.k and .sub.k, and thereafter in a second loop over smartphone position angle for the determination of the other one of .sub.k and .sub.k: c) setting k=1; d) in a sub-loop over k: e) in a sub-sub-loop over a rotation angle of said smartphone: f) causing loudspeaker l.sub.k to emit a test signal (s.sub.k(t)); g) rotating said smartphone and providing for said smartphone a corresponding measured smartphone rotation angle value .sub.k, h) capturing corresponding smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from said loudspeaker l.sub.k test signal; i) calculating from said microphone signals a corresponding Time Difference of Arrival value (.sub.k(.sub.k)); j) if said Time Difference of Arrival value (.sub.k(.sub.k)) is not zero or is not smaller than a predetermined threshold value, returning to step f); k) otherwise, calculating a corresponding azimuth .sub.k or polar .sub.k, respectively, angle value for the position of loudspeaker l.sub.k; L) incrementing k by 1; m) if kN, returning to step f); n) otherwise, checking whether both of .sub.k and .sub.k have been determined, and if not true, returning to step b); o) after all positions of said N loudspeakers have been determined, providing a corresponding set of N pairs of azimuth and polar angle values .sub.k and .sub.k for said loudspeakers l.sub.k and for all k; p) using said corresponding set of pairs of azimuth and polar angle values to accurately calibrate said loudspeakers l.sub.k.
2. The method for using a smartphone equipped with at least two microphones (m.sub.1,m.sub.2), having a known distance (d.sub.12) from each other, for determining the direction of loudspeakers l.sub.k in a setup of a surround sound system including N loudspeakers, k=1 . . . N, wherein said direction is expressed by an azimuth angle .sub.k and a polar angle .sub.k, said method including: a) setting initial values (.sub.0,.sub.0) for said azimuth angle .sub.k and said polar angle .sub.k for loudspeaker l.sub.k direction; b) in a first loop over smartphone position angle for the determination of one of .sub.k and .sub.k, and thereafter in a second loop over smartphone position angle for the determination of the other one of .sub.k and .sub.k: c) positioning said smartphone at a desired azimuth angle or polar angle; d) setting k=1; e) in a sub-loop over k: f) causing loudspeaker l.sub.k to emit a test signal (s.sub.k(t)); g) capturing the smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from said loudspeaker l.sub.k test signal; h) determining from said captured smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) a loudspeaker distance difference value (.sub.k) and calculating a corresponding smartphone position angle value (.sub.k): i) calculating a corresponding azimuth .sub.k or polar .sub.k, respectively, angle value for the position of loudspeaker l.sub.k; j) incrementing k by 1; k) if kN, returning to step f); I) otherwise, checking whether both of .sub.k and .sub.k, have been determined, and if not true, returning to step b); m) after all positions of said N loudspeakers have been determined, providing a corresponding set of N pairs of azimuth and polar angle values .sub.k and .sub.k for said loudspeakers l.sub.k and for all k; n) using said corresponding set of pairs of azimuth and polar angle values to accurately calibrate said loudspeakers l.sub.k.
3. The method according to claim 2, wherein for determining the distance (d.sub.12) between said two microphones (m.sub.1, m.sub.2) the following processing is carried out: a) selecting one loudspeaker l.sub.k of said N loudspeakers; b) causing loudspeaker l.sub.k to emit a test signal (s.sub.k(t)); c) capturing the smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from said loudspeaker l.sub.k test signal; d) rotating said smartphone and providing for said smartphone a corresponding measured smartphone rotation angle value .sub.k; e) calculating a corresponding Time Difference of Arrival value (.sub.k(.sub.k)); f) if said Time Difference of Arrival value (.sub.k(.sub.k)) is not zero or is not smaller than a predetermined threshold value, returning to step b); g) otherwise, defining an initial direction angle value =0; h) rotating said smartphone by an angle /4 and providing for said smartphone a corresponding measured rotation angle value ; i) causing loudspeaker l.sub.k to emit a test signal (s.sub.k(t)); j) capturing the smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from said loudspeaker l.sub.k test signal; k) calculating from said smartphone microphone signals (y.sub.k1(t),y.sub.k2(t)) a loudspeaker distance difference value .sub.k and a microphone distance value
4. The method according to claim 1, wherein said smartphone includes an app that controls the processing.
5. The method according to claim 2, wherein smartphone includes an app that controls the processing.
6. The method according to claim 1, wherein said smartphone microphone signals are
y.sub.k1(t)=g(d.sub.k1)s.sub.k(tT.sub.k1)+n.sub.1(t) and
y.sub.k2(t)=g(d.sub.k2)s.sub.k(tT.sub.k2)+n.sub.2(t), wherein T.sub.k1 is the time the sound wave needs for propagating from loudspeaker l.sub.k to microphone m.sub.1 and T.sub.k2 is the time the sound wave needs for propagating from loudspeaker l.sub.k to microphone m.sub.2, S.sub.k() is said test signal, g(d.sub.k) is an attenuation factor which describes the dependence of the amplitude on the distance d.sub.k between loudspeaker l.sub.k and microphone m.sub.1 or m.sub.2, and n.sub.1(t) and n.sub.2(t) take into account environmental and internal noise of said microphones.
7. The method according to claim 2, wherein said smartphone microphone signals are
y.sub.k1(t)=g(d.sub.k1)s.sub.k(tT.sub.k1)+n.sub.1(t) and
y.sub.k2(t)=g(d.sub.k2)s.sub.k(tT.sub.k2)+n.sub.2(t), wherein T.sub.k1 is the time the sound wave needs for propagating from loudspeaker l.sub.k to microphone m.sub.1 and T.sub.k2 is the time the sound wave needs for propagating from loudspeaker l.sub.k to microphone m.sub.2, S.sub.k() is said test signal, g(d.sub.k) is an attenuation factor which describes the dependence of the amplitude on the distance d.sub.k between loudspeaker l.sub.k and microphone m.sub.1 or m.sub.2, and n.sub.1(t) and n.sub.2(t) take into account environmental and internal noise of said microphones.
8. The method according to claim 6, wherein said Time Difference of Arrival for loudspeaker l.sub.k for said smartphone microphones is defined as .sub.k=T.sub.k1.sub.k2, which corresponds to the spatial difference .sub.k=|d.sub.k1d.sub.k2|=c|.sub.k| between said smartphone microphones and said loudspeaker l.sub.k with the sound velocity c in air as a scaling factor.
9. The method according to claim 3, wherein said Time Difference of Arrival for loudspeaker l.sub.k for said smartphone microphones is defined as .sub.k=T.sub.k1.sub.k2, which corresponds to the spatial difference .sub.k=|d.sub.k1d.sub.k2|=c|.sub.k| between said smartphone microphones and said loudspeaker l.sub.k with the sound velocity c in air as a scaling factor.
10. The method according to claim 1, wherein said Time Difference of Arrival is estimated by using a cross-correlation function
R.sub.k()={y.sub.k1(t)y.sub.k2(t)}=.sub..sup.+Y.sub.k1(f)Y.sub.k2*(f)exp.sup.2ifdf with y.sub.k(1|2)(t) being the signals captured by said smartphone microphones and y.sub.k(1l.sub.2)(f) being their respective Fourier transforms, and wherein the time delay between the microphone signals is obtained by searching the peak in the correlation
11. The method according to claim 3, wherein said Time Difference of Arrival is estimated by using a cross-correlation function
R.sub.k()={y.sub.k1(t)y.sub.k2(t)}=.sub..sup.+Y.sub.k1(f)Y.sub.k2*(f)exp.sup.2ifdf with y.sub.k(1|2)(t) being the signals captured by said smartphone microphones and y.sub.k(1|2)(f) being their respective Fourier transforms, and wherein the time delay between the microphone signals is obtained by searching the peak in the correlation
12. The method according to claim 1, wherein, instead of interactive rotation of said smartphone with respect to each loudspeaker for direction determination, it is assumed that the distances d.sub.k1, d.sub.k2 between the microphones of said smartphone and said loudspeaker are much greater than the distance d.sub.12 between the microphones in said smartphone, and the angle .sub.k between the line between both microphones and the direction of said loudspeaker is
13. A computer program product stored on a non-transitory computer readable medium comprising instructions which, when carried out on a mobile device, perform the method according to claim 1.
14. A computer program product stored on a non-transitory computer readable medium comprising instructions which, when carried out on a mobile device, perform the method according to claim 2.
15. A measurement device for determining the direction of loudspeakers l.sub.k in a setup of a surround sound system including N loudspeakers, k=1 . . . N, adapted to cooperate with a smartphone equipped with at least two microphones (m.sub.1,m.sub.2), wherein said direction is expressed by an azimuth angle .sub.k and a polar angle .sub.k, said smartphone comprising at least one processor configured for: a) setting initial values (.sub.0,.sub.0) for said azimuth angle .sub.k and said polar angle .sub.k for loudspeaker l.sub.k direction; b) in a first loop over smartphone position angle for the determination of one of .sub.k and .sub.k, and thereafter in a second loop over mobile device position angle for the determination of the other one of .sub.k and .sub.k: c) setting k=1; d) in a sub-loop over k: e) in a sub-sub-loop over a rotation angle of said smartphone; f) receiving for said smartphone being rotated a corresponding measured smartphone rotation angle value .sub.k; g) receiving corresponding smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from emitted loudspeaker l.sub.k test signal; h) calculating from said microphone signals a corresponding Time Difference of Arrival value (.sub.k(.sub.k)); i) if said Time Difference of Arrival value (.sub.k(.sub.k)) is not zero or is not smaller than a predetermined threshold value, returning to step f); j) otherwise, calculating a corresponding azimuth .sub.k or polar .sub.k, respectively, angle value for the position of loudspeaker l.sub.k; k) incrementing k by 1; I) if kN, returning to step f); m) otherwise, checking whether both of .sub.k and .sub.k have been determined, and if not true, returning to step b); n) after all positions of said N loudspeakers have been determined, providing a corresponding set of N pairs of azimuth and polar angle values .sub.k and .sub.k for said loudspeakers l.sub.k and for all k; o) using said corresponding set of pairs of azimuth and polar angle values to accurately calibrate said loudspeakers l.sub.k.
16. A measurement device for determining the direction of loudspeakers l.sub.k in a setup of a surround sound system including N loudspeakers, k=1 . . . N, adapted to cooperate with a smartphone equipped with at least two microphones (m.sub.1,m.sub.2), wherein said direction is expressed by an azimuth angle .sub.k and a polar angle .sub.k, said smartphone comprising at least one processor configured for: a) setting initial values (.sub.0,.sub.0) for said azimuth angle .sub.k and said polar angle .sub.k for loudspeaker l.sub.k direction; b) in a first loop over position angle for the determination of one of .sub.k and .sub.k, and thereafter in a second loop over smartphone position angle for the determination of the other one of .sub.k and .sub.k, said smartphone having a desired azimuth angle or polar angle: c) setting k=1; d) in a sub-loop over k: e) receiving smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from emitted loudspeaker l.sub.k test signal (s.sub.k(t)); f) determining from said captured smartphone microphone signals (y.sub.k1(f), y.sub.k2(t)) a loudspeaker distance difference value (.sub.k) and calculating a corresponding smartphone position angle value (.sub.k); g) calculating a corresponding azimuth .sub.k or polar .sub.k, respectively, angle value for the position of loudspeaker l.sub.k; h) incrementing k by 1; i) if kN, returning to step e); j) otherwise, checking whether both of .sub.k and .sub.k have been determined, and if not true, returning to step b); k) after all positions of said N loudspeakers have been determined, providing a corresponding set of N pairs of azimuth and polar angle values .sub.k and .sub.k for said loudspeakers l.sub.k and for all k; l) using said corresponding set of pairs of azimuth and polar angle values to accurately calibrate said loudspeakers l.sub.k.
17. The measurement device of claim 16, in which said at least one processor is further configured for: a) capturing smartphone microphone signals (y.sub.k1(t), y.sub.k2(t)) from loudspeaker l.sub.k test signal emitted by a selected loudspeaker l.sub.k among said N loudspeakers; b) receiving for said smartphone a measured smartphone rotation angle value .sub.k corresponding to a rotation of said smartphone; c) calculating a corresponding Time Difference of Arrival value (.sub.k(.sub.k)); d) if said Time Difference of Arrival value (.sub.k(.sub.k)) is not zero or is not smaller than a predetermined threshold value, returning to step a); e) otherwise, defining an initial direction angle value =0; f) receiving for said smartphone a measured rotation angle value corresponding to rotating said smartphone by an angle /4; g) receiving smartphone microphone signals from emitted loudspeaker l.sub.k test signal; h) calculating from said smartphone microphone signals a loudspeaker distance difference value .sub.k and a microphone distance value
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) Exemplary embodiments of the invention are described with reference to the accompanying drawings, which show in:
(2)
(3)
(4)
(5)
(6)
measured x/y-plane;
(7)
(8)
(9)
(10)
(11)
(12)
DESCRIPTION OF EMBODIMENTS
(13) Even if not explicitly described, the following embodiments may be employed in any combination or sub-combination.
(14) The correct calibration of a multi-channel audio system requires localisation of multiple speakers. This includes the determination of the direction and distance relative to the listener position. The distance can be measured as described in EP 2899997 A1 or by optical means using the camera of a smartphone. The direction angles are determined by using an acoustical measurement as described below.
(15) Direction Angles
(16) Assuming that the listener position is located in the coordinate origin of a three-dimensional coordinate system, the direction of each loudspeaker can be described by the azimuth angle and the polar angle in spherical coordinates (r, , ), see
(17) The angles (, ) can be determined in an interactive way by a device carrying two microphones, or by more devices each carrying one microphone.
(18) Sound Propagation
(19) In the following a microphone pair (m.sub.1, m.sub.2) with known orientation and a speaker l.sub.k with unknown position are considered. If the speaker emits a signal s.sub.k(t), the signals captured by the microphones will be attenuated and altered by noise. The so-called Time of Flight (ToF) T.sub.k1 is the time the sound wave needs for propagating from the source (speaker l.sub.k) to the microphone m.sub.1. Using a second microphone m.sub.2 the ToF is T.sub.k2. The signals at the microphone positions are:
y.sub.k1(t)=g(d.sub.k1)s.sub.k(tT.sub.k1)+n.sub.1(t)
y.sub.k2(t)=g(d.sub.k2)s.sub.k(tT.sub.k2)+n.sub.2(t)
(20) The function g(d.sub.k) is an attenuation factor, which describes the dependence of the amplitude on the distance between loudspeaker k and microphone 1 or 2 denoted by d.sub.k. The amplitudes and the phases of the two signals y.sub.k1(t), y.sub.k2(t) differ due to the relative positioning of the microphones to the source. The additive terms n.sub.1(t) and n.sub.2(t) take into account environmental and internal (thermal) noise of the microphones.
(21) Angle Determination
(22) The angle measurements can be integrated in a calibration step of a 3D surround sound loudspeaker setup controlled by a smartphone. The determination of the angles are based on the measurement of the Time Difference of Arrival TDOA. The TDOA for loudspeaker l.sub.k for the microphone pair (1,2) is defined as .sub.k=T.sub.k1T.sub.k2. This corresponds to the spatial difference .sub.k=|d.sub.k1d.sub.k2|=C|.sub.k| between the two microphones and the loudspeaker with the sound velocity in air as the scaling factor, see
(23) TDOA Measurement
(24) It is known to estimate the TDOA by using a cross-corre-lation (CC) function
R.sub.k()={y.sub.k1(t)y.sub.k2(t)}=.sup.+.sub.Y.sub.k1(f)Y*.sub.k2(f)exp.sup.2ifdf
with y.sub.k(1|2)(t) being the signals captured by the microphones (m.sub.1 or m.sub.2 for speaker k) and Y.sub.k(1|2)(f) being their respective Fourier transforms. The time delay between the captured signals is obtained by searching the peak in the correlation
(25)
(26) Known techniques for providing a sharper peak in the measurement and using interpolation for a higher time resolution can be applied.
(27) Calibration ProcessInteractive Angle Measurement
(28) In an interactive measurement a smartphone carrying a pair of microphones is used for the direction determination. It is not necessary that the distance d.sub.12 (see
(29) The angles .sub.k and .sub.k are defined relative to the baseline connecting the two microphones (see
(30) During playback of the signal from the loudspeaker, the user is moving the smartphone in the direction of the loudspeaker. In this case the TDOA can be continuously measured. This implies an ongoing transmission and capturing of the calibration signal. The device carried by the user can provide a graphical feedback like a level meter which increases if the TDOA is converging to zero. As an alternative, a special sound can be played back if TDOA for the microphones is converging to zero.
(31) In an automatic setting the time delay is measured continuously and the angles yielding the minimal time delay are computed as shown in the
(32) In step 81, initial values .sub.0 and .sub.0 for the azimuth angle .sub.k and the polar angle .sub.k are defined, e.g. .sub.0=.sub.0=0. The processing is continued from step 82 to step 88 with a first loop over angle for the determination of one of .sub.k and .sub.k, e.g. .sub.k. Thereafter that loop over angle is again carried out for the determination of the other one of .sub.k and .sub.k, e.g. .sub.k. In step 89 .sub.k and .sub.k, k=1 . . . N, for all N loudspeaker positions are output.
(33) In step 83 k=1 is set, and within the following sub-loop over k from step 841 to step 87 k is incremented in step 86 until k>N in step 87.
(34) In a sub-sub-loop beginning in step 841, loudspeaker l.sub.k emits a test signal s.sub.k(t). In step 842 the smartphone is rotated by a recommended angle, e.g. 45 or 90, and the corresponding true smartphone rotation angle .sub.k is provided from the related sensors within the smartphone. Then the smartphone microphones capture signals y.sub.k1(t) and y.sub.k2(t) in step 843, and in step 844 .sub.k(.sub.k) is calculated as described above. By testing step 840 the processing is continued with step 841 for a different smartphone rotation angle, until in step 840 .sub.k=0 or nearly zero, i.e. until the value .sub.k is smaller than a predetermined threshold value. If true, in step 85 the corresponding .sub.k or .sub.k, respectively, value is calculated as described above.
(35) Calibration ProcessSuccessive Angle Measurement
(36) In case the distance d.sub.12 (see
(37)
k=1, . . . , N.
(38) To avoid the ambiguity about in which half space a loudspeaker is located (see
(39) In a practical setting each measurement can be conducted for all loudspeakers before performing the next one, as depicted in the
(40) In step 91, initial values .sub.0 and .sub.0 for the azimuth angle .sub.k and the polar angle .sub.k are defined, e.g. .sub.0=.sub.0=0. The processing is continued from step 92 to step 96 with a first loop over smart phone position angle for the determination of one of .sub.k and .sub.k, e.g. .sub.k. Thereafter that loop over smart phone position angle is again carried out for the determination of the other one of .sub.k and .sub.k, e.g. .sub.k. In step 97 .sub.k and .sub.k, k=1 . . . N, for all N loudspeaker positions are output.
(41) In step 93 the current position of the smartphone is determined from the internal sensors of the smartphone. In step 94 k=1 is set and, within the following sub-loop processing over k from step 951 to step 950, k is incremented in step 955 until k>N in step 950.
(42) In step 951 loudspeaker l.sub.k emits a test signal s.sub.k(t). In step 952 the smartphone microphones are capturing signals y.sub.k1(t) and y.sub.k2(t). Also using d.sub.12, in step 953 the loudspeaker distance difference value .sub.k and a corresponding smart phone position angle value .sub.k are calculated therefrom as described above, and in step 954 the corresponding .sub.k or .sub.k, respectively, value is calculated as described above.
(43) Calibration ProcessDetermination of Microphone Distance
(44) In order to conduct a successive measurement as described in the preceding section, a necessary precondition is knowledge of the smartphone microphone distance d.sub.12. In case this distance is not known in advance it can be determined by an interactive measurement using one loudspeaker k. During the interactive measurement processing described in connection with
(45) Starting from this reference position, the smartphone is rotated by a predefined angle
(46)
In this position the loudspeaker distance difference .sub.k is measured and the microphone distance d.sub.12 is calculated by
(47)
cf.
(48) Microphone distance d.sub.12 is then used in the direction determination of the remaining loudspeakers as described in section Successive angle measurement.
(49) In
(50) In step 105 loudspeaker l.sub.k again emits the test or playback signal s.sub.k(t). In step 106 the signals y.sub.k1(t) and y.sub.k2(t) are captured, and in step 107 the loudspeaker distance difference value .sub.k and the microphone distance value d.sub.12() are calculated.
(51) The described processing can be carried out by a single processor or electronic circuit, or by several processors or electronic circuits operating in parallel and/or operating on different parts of the complete processing.
(52) The instructions for operating the processor or the processors according to the described processing can be stored in one or more memories. The at least one processor is configured to carry out these instructions.