WO2020196004A1 - 信号処理装置および方法、並びにプログラム - Google Patents

信号処理装置および方法、並びにプログラム Download PDF

Info

Publication number
WO2020196004A1
WO2020196004A1 PCT/JP2020/011361 JP2020011361W WO2020196004A1 WO 2020196004 A1 WO2020196004 A1 WO 2020196004A1 JP 2020011361 W JP2020011361 W JP 2020011361W WO 2020196004 A1 WO2020196004 A1 WO 2020196004A1
Authority
WO
WIPO (PCT)
Prior art keywords
rotation
calculation
order
matrix
head
Prior art date
Application number
PCT/JP2020/011361
Other languages
English (en)
French (fr)
Inventor
哲 曲谷地
祐基 光藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US17/440,550 priority Critical patent/US20220159402A1/en
Publication of WO2020196004A1 publication Critical patent/WO2020196004A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S7/00Indicating arrangements; Control arrangements, e.g. balance control
    • H04S7/30Control circuits for electronic adaptation of the sound field
    • H04S7/302Electronic adaptation of stereophonic sound system to listener position or orientation
    • H04S7/303Tracking of listener position or orientation
    • H04S7/304For headphones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R5/00Stereophonic arrangements
    • H04R5/033Headphones for stereophonic communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/01Multi-channel, i.e. more than two input channels, sound reproduction with two speakers wherein the multi-channel information is substantially preserved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2400/00Details of stereophonic systems covered by H04S but not provided for in its groups
    • H04S2400/11Positioning of individual sound objects, e.g. moving airplane, within a sound field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2420/00Techniques used stereophonic systems covered by H04S but not provided for in its groups
    • H04S2420/01Enhancing the perception of the sound image or of the spatial distribution using head related transfer functions [HRTF's] or equivalents thereof, e.g. interaural time difference [ITD] or interaural level difference [ILD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2420/00Techniques used stereophonic systems covered by H04S but not provided for in its groups
    • H04S2420/11Application of ambisonics in stereophonic audio systems

Definitions

  • the present technology relates to signal processing devices and methods, and programs, and in particular, to signal processing devices, methods, and programs that enable more efficient sound reproduction.
  • Ambisonics there is an expression method of 3D audio information called Ambisonics, which can flexibly correspond to any recording / playback system, and is attracting attention.
  • ambisonics having a second order or higher are called high-order ambisonics (HOA (Higher Order Ambisonics)) (see, for example, Non-Patent Document 1).
  • HOA Higher Order Ambisonics
  • sound information extends to the spatial axis in addition to the time axis, and Ambisonics retains the information by performing frequency conversion, that is, spherical harmonic conversion, in the angular direction of the 3D polar coordinates. ing.
  • the spherical harmonic conversion can be considered to correspond to the time-frequency conversion of the audio signal with respect to the time axis.
  • the advantage of this method is that information can be encoded and decoded from any microphone array to any speaker array without limiting the number of microphones or speakers.
  • the binaural reproduction technology is generally called an auditory display (VAD (Virtual Auditory Display)), and is realized by using a head-related transfer function (HRTF).
  • VAD Visual Auditory Display
  • HRTF head-related transfer function
  • the head-related transfer function expresses information on how sound is transmitted from all directions surrounding the human head to the binaural eardrum as a function of frequency and arrival direction.
  • VAD is a system that uses this principle.
  • This technology was made in view of such a situation, and makes it possible to reproduce sound more efficiently.
  • the signal processing device of one aspect of the present technology includes a order determining unit for determining a order for limiting the amount of calculation for the rotation matrix corresponding to the rotation of the listener's head, and the rotation matrix as the order.
  • a order determining unit for determining a order for limiting the amount of calculation for the rotation matrix corresponding to the rotation of the listener's head, and the rotation matrix as the order.
  • the signal processing method or program of one aspect of the present technology determines a digit for limiting the amount of calculation related to the rotation matrix corresponding to the listener's head rotation, and limits the rotation matrix by the digit.
  • the head-related transfer function in the spherical harmonic region is rotated by the calculation, and the head-related transfer function after rotation obtained by the calculation is combined with the sound signal in the spherical harmonic region to generate a headphone drive signal. Including steps.
  • a digit for limiting the amount of calculation for the rotation matrix corresponding to the rotation of the listener's head is determined, and spherical harmonics are obtained by the calculation limiting the rotation matrix by the order.
  • the head-related transfer function of the region is rotated, and the rotated head-related transfer function obtained by the calculation is combined with the sound signal of the spherical harmonic region to generate a headphone drive signal.
  • the spherical harmonic conversion for the function f ( ⁇ , ⁇ ) on the spherical coordinates is expressed by the following equation (1).
  • ⁇ and ⁇ indicate the elevation angle and horizontal angle in spherical coordinates, respectively, and Y n m ( ⁇ , ⁇ ) indicates the spherical harmonics.
  • the spherical harmonic function Y n m ( ⁇ , ⁇ ) with “-” at the top represents the complex conjugate of the spherical harmonic function Y n m ( ⁇ , ⁇ ).
  • n and m indicate the order and order of the spherical harmonic function Y n m ( ⁇ , ⁇ ), and ⁇ n ⁇ m ⁇ n.
  • the order m is also called an order or a period, and hereinafter, when it is not necessary to distinguish between n and m, the order n and the order m are collectively referred to as an order.
  • Equation (2) i indicates a pure imaginary number, and P n m (x) is a Legendre polynomial function.
  • x i indicates the position of the speaker
  • indicates the time frequency of the sound signal.
  • the input signal D' n m ( ⁇ ) is a sound signal corresponding to each order n and order m of the spherical harmonics for a predetermined time frequency ⁇ .
  • x i (Rsin ⁇ i cos ⁇ i , Rsin ⁇ i sin ⁇ i , Rcos ⁇ i ), where i indicates the speaker index that identifies the speaker.
  • i 1,2, ..., L
  • ⁇ i and ⁇ i represent the elevation angle and the horizontal angle indicating the position of the i-th speaker, respectively.
  • the transformation represented by such an equation (7) is a spherical harmonic inverse transformation corresponding to the equation (6).
  • the speaker drive signal S (x i , ⁇ ) is obtained by the equation (7)
  • the number of speakers L which is the number of reproduced speakers
  • the degree N of the spherical harmonics that is, the maximum value N of the order n
  • a general method for simulating stereophonic sound at the ear by presenting headphones is, for example, a method using a head-related transfer function as shown in FIG.
  • the input ambisonics signal is decoded to generate speaker drive signals for the virtual speakers SP11-1 to the virtual speakers SP11-8, which are a plurality of virtual speakers.
  • the signal decoded at this time corresponds to, for example, the above-mentioned input signal D' n m ( ⁇ ).
  • the virtual speakers SP11-1 to the virtual speakers SP11-8 are arranged in a ring shape and virtually arranged, and the speaker drive signal of each virtual speaker is obtained by the calculation of the above equation (7).
  • the virtual speaker SP11-1 and the virtual speaker SP11-8 are also simply referred to as the virtual speaker SP11.
  • the left and right drive signals (binaural signals) of the headphones HD11 that actually reproduce the sound for each of those virtual speakers SP11 use a head-related transfer function. Generated by a convolution operation. Then, the sum of the drive signals of the headphones HD11 obtained for each virtual speaker SP11 is taken as the final drive signal.
  • the head-related transfer function H (x, ⁇ ) used to generate the left and right drive signals of the headphones HD11 is the eardrum of the user from the sound source position x in the state where the head of the user who is the listener exists in the free space.
  • the transmission characteristic H 1 (x, ⁇ ) to the position is normalized by the transmission characteristic H 0 (x, ⁇ ) from the sound source position x to the head center O in the absence of the head. That is, the head-related transfer function H (x, ⁇ ) for the sound source position x is obtained by the following equation (9).
  • the head-related transfer function H (x, ⁇ ) by convolving the head-related transfer function H (x, ⁇ ) into an arbitrary audio signal and presenting it with headphones or the like, the direction of the convolved head-related transfer function H (x, ⁇ ) to the listener. That is, it is possible to give the illusion that the sound is heard from the direction of the sound source position x.
  • such a principle is used to generate the left and right drive signals of the headphones HD11.
  • each virtual speaker SP11 is defined as position x i
  • the speaker drive signal of those virtual speakers SP11 is defined as S (x i , ⁇ ).
  • the left and right drive signals P l and the drive signal P r of the headphones HD11 can be obtained by calculating the following equation (10). Can be done.
  • H l (x i , ⁇ ) and H r (x i , ⁇ ) are the normalized heads from the position x i of the virtual speaker SP11 to the left and right eardrum positions of the listener, respectively.
  • the part transfer function is shown.
  • the input signal D' n m ( ⁇ ) in the spherical harmonic region can be finally reproduced by presenting the headphones. That is, it is possible to realize the same effect as Ambisonics by presenting headphones.
  • the drive signal P ( ⁇ ) when it is not necessary to distinguish between the drive signal P l and the drive signal P r for the time frequency ⁇ , they are also simply referred to as the drive signal P ( ⁇ ).
  • the head-related transfer function H l (x i , ⁇ ) and the head-related transfer function H r (x i , ⁇ ) when it is not necessary to distinguish between the head-related transfer function H l (x i , ⁇ ) and the head-related transfer function H r (x i , ⁇ ), the head-related transfer function H (x i , ⁇ ) is simply used. Also referred to as.
  • the method of combining the ambisonics and the binaural reproduction technology described above will also be referred to as the first method.
  • the operation shown in FIG. 2 is performed in order to obtain 1 ⁇ 1, that is, the drive signal P ( ⁇ ) of 1 row and 1 column.
  • H ( ⁇ ) represents a 1 ⁇ L vector (matrix) consisting of L head-related transfer functions H (x i , ⁇ ).
  • D '(omega) is the input signal D' represents a vector of n m ( ⁇ ), the number of input signal D 'n m bins of the same time-frequency omega (omega)
  • vector D '( ⁇ ) is K ⁇ 1.
  • Y (x) represents a matrix consisting of spherical harmonics Y n m ( ⁇ i , ⁇ i ) of each degree, and the matrix Y (x) is a matrix of L ⁇ K.
  • the matrix (vector) S obtained from the matrix operation of the L ⁇ K matrix Y (x) and the K ⁇ 1 vector D'( ⁇ ) is obtained, and further, the matrix S and 1 ⁇ A matrix operation with the vector (matrix) H ( ⁇ ) of L is performed, and one drive signal P ( ⁇ ) is obtained.
  • the drive signal P l of the left headphone of the headphones HD 11 g j , ⁇ is shown in the following equation (11).
  • the rotation matrix g j is a three-dimensional rotation matrix represented by ⁇ , ⁇ , and ⁇ , which are rotation angles of Euler angles, that is, 3 ⁇ 3.
  • the drive signal P l (g j , ⁇ ) indicates the drive signal P l described above, and here, the drive signal is used to clarify the position, that is, the direction g j and the time frequency ⁇ . It is written as P l (g j , ⁇ ).
  • the rotation direction of the listener's head that is, the direction g j of the listener's head is acquired by some sensor, and among the plurality of head-related transfer functions, each virtual speaker SP11 viewed from the listener's head
  • the left and right drive signals of the headphones HD11 may be calculated using the head-related transfer function in the relative direction g j -1 x i .
  • the sound image position as seen by the listener can be fixed in space even when the sound is reproduced by the headphones HD11 as in the case of using the actual speaker.
  • the convolution of the head-related transfer function which was performed in the time frequency region in the first method, may be performed in the spherical harmonic region.
  • the amount of calculation and the amount of memory required can be reduced as compared with the first method, and the sound can be reproduced more efficiently.
  • the method of convolving the head-related transfer function in such a spherical harmonic region is also referred to as a second method, and the second method will be described below.
  • Y (x) represents a matrix composed of the spherical harmonics Y n m (x i ) of each order and the position x i of each virtual speaker, which is represented by the following equation (13). ..
  • i 1,2, ..., L
  • the maximum value (maximum order) of the order n is N.
  • D'( ⁇ ) represents a vector (matrix) consisting of sound input signals D' n m ( ⁇ ) corresponding to each order, which is represented by the following equation (14).
  • Each input signal D' n m ( ⁇ ) is a sound signal in the spherical harmonic region.
  • H ( ⁇ ) is each virtual speaker viewed from the listener's head when the direction of the listener's head is the direction g j, which is represented by the following equation (15).
  • the head-related transfer function H (g j -1 x i , ⁇ ) of each virtual speaker is prepared for each of the total M directions of the directions g 1 to the direction g M.
  • the listener's head in the head-related transfer function matrix H ( ⁇ ) Select the line corresponding to the direction g j , which is the direction of the part, that is, the line consisting of the head-related transfer function H (g j -1 x i , ⁇ ) for that direction g j , and perform the calculation of equation (12). Just do it.
  • the vector D'( ⁇ ) is K ⁇ 1, that is, a matrix of K rows and 1 column.
  • the matrix Y (x) of the spherical harmonics is L ⁇ K
  • the matrix H ( ⁇ ) is M ⁇ L. Therefore, in the calculation of Eq. (12), the vector P l ( ⁇ ) is M ⁇ 1.
  • the drive signal P l (g j ) if the vector S ( ⁇ ) is obtained by first performing the matrix operation (product-sum operation) of the matrix Y (x) and the vector D'( ⁇ ), the drive signal P l (g j).
  • the row corresponding to the direction g j of the listener's head can be selected from the matrix H ( ⁇ ) as shown by the arrow A12, and the amount of calculation can be reduced.
  • the shaded portion of the matrix H ( ⁇ ) represents the row corresponding to the direction g j , and the row and the vector S ( ⁇ ) are calculated to obtain the desired left headphone.
  • the drive signal P l (g j , ⁇ ) is calculated.
  • the head-related transfer function by spherical harmonic conversion using the spherical harmonics is the head-related transfer function in the spherical harmonics region. It is converted into a matrix H'( ⁇ ) consisting of.
  • the speaker drive signal and the head-related transfer function are convoluted in the spherical harmonic region.
  • the product-sum calculation of the head-related transfer function and the input signal is performed in the spherical harmonic region.
  • the matrix H'( ⁇ ) can be calculated and stored in advance.
  • Eq. (17) may be calculated by selecting the line corresponding to the direction g j of the listener's head.
  • the calculation of the formula (17) is the calculation shown in the following formula (18).
  • the amount of calculation and the amount of required memory can be significantly reduced.
  • H'n m (g j , ⁇ ) is one element of the matrix H'( ⁇ ), that is, the component (element) corresponding to the head direction g j in the matrix H'( ⁇ ).
  • the head related transfer function of the spherical harmonic region is shown.
  • HRTF H 'n m (g j, ⁇ ) n in and m show the order n and of order m of the spherical harmonics.
  • the amount of calculation is reduced as shown in FIG. That is, the calculation shown in the equation (12) is as shown by the arrow A21 in FIG. 4, the M ⁇ L matrix H ( ⁇ ), the L ⁇ K matrix Y (x), and the K ⁇ 1 vector D'(. It is a calculation to find the product of ⁇ ).
  • H ( ⁇ ) Y (x) is the matrix H'( ⁇ ) as defined in the equation (16)
  • the calculation shown by the arrow A21 will eventually be shown by the arrow A22.
  • the calculation for finding the matrix H'( ⁇ ) can be performed offline, that is, in advance, so if the matrix H'( ⁇ ) is obtained and held in advance, the amount of headphones can be calculated online. It is possible to reduce the amount of calculation when obtaining the drive signal.
  • the row corresponding to the direction g j of the listener's head is selected, and the selected row and the input input signal D' n are selected.
  • the drive signal P l (g j , ⁇ ) for the left headphone is calculated by matrix operation with the vector D'( ⁇ ) consisting of m ( ⁇ ).
  • the shaded portion of the matrix H'( ⁇ ) represents the row corresponding to the direction g j , and the elements constituting this row are the head-related transfer function H shown in equation (18).
  • the head-related transfer function matrix H'( ⁇ ) is used as the head of all listeners. It is necessary to keep the rows corresponding to the rotation directions of, that is, each direction g j in the memory.
  • H S ( ⁇ ) H'(g j ) be the matrix (row vector) consisting of the head transfer functions of the spherical harmonic region for one direction g j , and let one direction g of the matrix H'( ⁇ ).
  • a rotation matrix R'(g j ) that holds only the row vector H S ( ⁇ ), which is the row corresponding to j , and performs rotation corresponding to the listener's head rotation in the spherical harmonic region is set in multiple directions. It may be held as many as g j .
  • a third method will be referred to as a third method.
  • the rotation matrix R'(g j ) in each direction g j has no time-frequency dependence. Therefore, in the third method, the amount of memory can be significantly reduced as compared with the case where the matrix H'( ⁇ ) has a component in the direction g j of the rotation of the head.
  • the matrix Y (g j x) of the spherical harmonics is the product of the matrix Y (x) and the rotation matrix R'(g j -1 ), and is shown in the following equation (21).
  • the rotation matrix R'(g j -1 ) is a matrix that rotates the coordinates by g j in the spherical harmonic region.
  • the spherical harmonics Y n m (g j x), which is an element of the matrix Y (g j x), is the (n 2 + n + 1 + k) rows (n 2 +) of the rotation matrix R'(g j ). It can be expressed by the following equation (23) using the elements R' (n) k, m (g j ) of the n + 1 + m) column.
  • Equation (24) i indicates a pure imaginary number, ⁇ , ⁇ , and ⁇ indicate the rotation angles of Euler angles of the rotation matrix, and r (n) k, m ( ⁇ ) is the following equation ( It is as shown in 25).
  • the binaural reproduction signal that reflects the rotation of the listener's head using the rotation matrix R'(g j -1 ), for example, the drive signal P l (g j , ⁇ ) of the left headphone is as follows. It will be obtained by calculating equation (26). If the left and right head-related transfer functions can be regarded as symmetric, the input signal matrix D'( ⁇ ) or the row vector H S ( ⁇ ) of the left head-related transfer function is used as the preprocessing of equation (26). By inverting using a matrix R ref that inverts either one left and right, the right headphone drive signal can be obtained by holding only the row vector H S ( ⁇ ) of the left head related transfer function. However, in the following, we will basically describe the case where separate head-related transfer functions are required for the left and right.
  • the drive signal P l (g j , ⁇ ) is obtained by synthesizing the row vector H S ( ⁇ ), the rotation matrix R'(g j -1 ), and the vector D'( ⁇ ). Has been done.
  • the above calculation is, for example, the calculation shown in FIG. That is, the vector P l ( ⁇ ) consisting of the drive signal P l (g j , ⁇ ) of the left headphone is the matrix H ( ⁇ ) of M ⁇ L and the L ⁇ K as shown by the arrow A41 in FIG. It is obtained by the product of the matrix Y (x) and the vector D'( ⁇ ) of K ⁇ 1. This matrix operation is as shown in the above equation (12).
  • This operation can be expressed using the matrix Y (g j x) of the spherical harmonics prepared for each of the M directions g j , as shown by arrow A42. That is, the vector P l ( ⁇ ) consisting of the drive signals P l (g j , ⁇ ) corresponding to each of the M directions g j is a predetermined matrix H ( ⁇ ) from the relationship shown in Eq. (20). It is obtained by the product of the row H (x, ⁇ ), the matrix Y (g j x), and the vector D'( ⁇ ).
  • the vector row H (x, ⁇ ) is 1 ⁇ L
  • the matrix Y (g j x) is L ⁇ K
  • the vector D'( ⁇ ) is K ⁇ 1.
  • the rotation matrix R 'hatched portion (g j -1) is the rotation matrix R' represents the non-zero elements (g j -1).
  • a row vector H S ( ⁇ ) of 1 ⁇ K is prepared for each time frequency bin ⁇ , and a rotation matrix R ′ (g j -1 ) of K ⁇ K for M directions g j is prepared. ) Is prepared, and the vector D'( ⁇ ) is K ⁇ 1. Further, it is assumed that the number of time frequency bins ⁇ is W and the maximum value of the order n of the spherical harmonics, that is, the maximum order is J.
  • the amount of memory required can be significantly reduced as compared with the second method.
  • the rotation matrix R'(g j -1 ) is held for the rotation of the three axes of the listener's head, that is, for any M arbitrary directions g j. There is a need. Holding such a rotation matrix R'(g j -1 ) requires a certain amount of memory, even if it is less than holding a time-frequency-dependent matrix H'( ⁇ ). ..
  • the rotation matrix R'(g j -1 ) that rotates in the spherical harmonic region with the listener's head as the center of rotation may be obtained sequentially at the time of calculation.
  • a fourth method such a method will also be referred to as a fourth method.
  • the rotation matrix R'(g) can be expressed as the following equation (29).
  • g in the equation (29) is a rotation matrix, and is represented by the product of the matrix u ( ⁇ ), the matrix a ( ⁇ ), and the matrix u ( ⁇ ) as shown in the following equation (30).
  • a ( ⁇ ) and u ( ⁇ ) are rotation matrices that rotate the coordinates by angles ⁇ and ⁇ with the coordinate axes of the coordinate system where the position of the listener's head is the origin as the rotation axis.
  • u ( ⁇ ) is a rotation matrix that rotates the coordinates by the angle ⁇ with the same coordinate axis as the rotation axis, only the rotation angle is different from u ( ⁇ ).
  • the rotation angles of the matrices u ( ⁇ ), the matrix a ( ⁇ ), and the matrix u ( ⁇ ), that is, the angles ⁇ , the angles ⁇ , and the angles ⁇ are Euler angles.
  • the positive direction of the x-axis is the direction directly in front of the listener when the listener is facing directly in front
  • the z-axis is the vertical axis when viewed from the listener facing directly in front, that is, the vertical axis.
  • the angles ⁇ , ⁇ , and ⁇ are rotation angles in each rotation direction based on the state in which the listener is facing directly in front of the listener, that is, in the positive direction of the x-axis.
  • the angle ⁇ is the elevation angle when the listener moves the head in the vertical direction with the y-axis as the rotation axis while the listener is looking straight ahead. Further, when the listener is facing directly in front of the listener and the z-axis is the rotation axis and the head is moved in the horizontal direction when viewed from the listener, the rotation angle of the head is the horizontal angle ⁇ .
  • the matrix a ( ⁇ ) is a rotation matrix that rotates the coordinates (coordinate system) by the angle ⁇ with the y-axis as the rotation axis
  • the matrix u ( ⁇ ) is the coordinates (coordinate system) by the angle ⁇ with the z-axis as the rotation axis. It is a rotation matrix to rotate.
  • these matrices a ( ⁇ ) and matrix u ( ⁇ ) are as shown in the following equations (31) and (32), respectively.
  • the rotation matrix R'(g) R'(u ( ⁇ ) a ( ⁇ ) u ( ⁇ )) is the angle ⁇ after rotating the coordinate system by the angle ⁇ in the horizontal angular direction in the spherical harmony region. Rotation of the coordinate system after rotation of is rotated by an angle ⁇ in the elevation angle direction when viewed from the coordinate system, and further, the coordinate system after rotation of the angle ⁇ is rotated by an angle ⁇ in the horizontal angle direction when viewed from the coordinate system. It is a matrix.
  • R'(u ( ⁇ )), R'(a ( ⁇ )), and R'(u ( ⁇ )) are of the matrix u ( ⁇ ), the matrix a ( ⁇ ), and the matrix u ( ⁇ ).
  • the rotation matrix R'(g) when the coordinates are rotated by the amount rotated by each is shown.
  • the rotation matrix R'(u ( ⁇ )) is a rotation matrix that rotates the coordinates by an angle ⁇ in the horizontal angular direction in the spherical harmonic region
  • the rotation matrix R'(a ( ⁇ )) is a spherical harmonic. It is a rotation matrix that rotates the coordinates in the elevation direction by an angle ⁇ in the region.
  • the rotation matrix R'(u ( ⁇ )) is a rotation matrix that rotates the coordinates in the horizontal angular direction by an angle ⁇ in the spherical harmonic region.
  • a rotation matrix R'(g) R'(u ( ⁇ ) a ( ⁇ ) that rotates the coordinates 3 degrees with the angles ⁇ , ⁇ , and angle ⁇ as rotation angles.
  • u ( ⁇ )) can be represented by the product of three rotation matrices R'(u ( ⁇ )), rotation matrix R'(a ( ⁇ )), and rotation matrix R'(u ( ⁇ )). ..
  • the rotation matrix R'(u ( ⁇ )) for each value of each rotation angle ⁇ , ⁇ , and ⁇ , and the rotation matrix R'(a) ( ⁇ )) and the rotation matrix R'(u ( ⁇ )) should be stored in the memory in the table. If the same head-related transfer function can be used on the left and right, the row vector H S ( ⁇ ) is held for only one ear, and the above-mentioned matrix R ref that inverts the left and right is also held in advance and generated. By finding the product with the rotation matrix, the rotation matrix for the opposite ear can be obtained.
  • one rotation matrix R'(g j -1 ) is calculated by calculating the product of each rotation matrix read from the table. Then, as shown by the arrow A52, for each time frequency bin ⁇ , a 1 ⁇ K row vector H S ( ⁇ ) and a K ⁇ K rotation matrix R'(g j -1 ) common to all time frequency bins ⁇ . And the product of the vector D'( ⁇ ) of K ⁇ 1 is calculated, and the vector P l ( ⁇ ) is obtained.
  • the rotation matrix R'(u ( ⁇ )) and the rotation matrix R'(u ( ⁇ )) are diagonal matrices, so only the diagonal components need to be retained.
  • the rotation matrix R'(u ( ⁇ )) and the rotation matrix R'(u ( ⁇ )) are both rotation matrices that rotate in the horizontal angular direction, they are called the rotation matrix R'(u ( ⁇ )).
  • the rotation matrix R'(u ( ⁇ )) can be obtained from the same common table. That is, the table of the rotation matrix R'(u ( ⁇ )) and the table of the rotation matrix R'(u ( ⁇ )) can be the same.
  • each rotation matrix represents a non-zero element.
  • the rotation matrix R'(u ( ⁇ )), the rotation matrix R'(a ( ⁇ )), and the rotation matrix R'(u ( ⁇ )) are ⁇ , ⁇ , and ⁇ , respectively.
  • the rotation matrix R'(a ( ⁇ )) is held by the accuracy of the angle ⁇ , that is, only ⁇ , so that the rotation matrix R'(a ( ⁇ )) is held.
  • the amount of memory required to hold the 1 ⁇ K row vector H S ( ⁇ ) for each time frequency bin ⁇ for each time frequency bin ⁇ is 2. It becomes ⁇ K ⁇ W.
  • Such a fourth method can significantly reduce the amount of memory required with the same amount of calculation as the third method.
  • the fourth method is more practical when the head tracking function is realized, for example, when the accuracy of the angle ⁇ , the angle ⁇ , and the angle ⁇ is set to 1 degree (1 °). It is effective.
  • the rotation with respect to the three axes is held, for example, by having the rotation in increments of 1 degree, that is, by setting the accuracy of the angle ⁇ , the angle ⁇ , and the angle ⁇ to 1 degree (1 °).
  • the maximum order J of the order n of the spherical harmonics can be reduced to the order of the third power.
  • the rotation matrix R'(a ( ⁇ )) for following the rotation of the listener (user)'s head is, for example, a block diagonal matrix as shown in FIG. ..
  • the horizontal axis shows the components of the column of the rotation matrix R'(a ( ⁇ )), and the vertical axis shows the components of the row of the rotation matrix R'(a ( ⁇ )). Further, in FIG. 8, the shading at each position of the rotation matrix R'(a ( ⁇ )) indicates the level (dB) of the element of the rotation matrix R'(a ( ⁇ )) corresponding to those positions. ..
  • FIG. 8 shows the rotation matrix R'(a ( ⁇ )) when the rotation angle ⁇ is 1 degree.
  • the part consisting of the elements with such values is (2n + 1) with respect to the degree n. ) ⁇ (2n + 1) size block.
  • the square part indicated by the arrow A71 is a part of one block of the block diagonal matrix, and the width (thickness) W11 of the block is 2n + 1. That is, in the square portion indicated by the arrow A71, (2n + 1) elements are arranged in the row direction, and (2n + 1) elements are arranged in the column direction as well.
  • the fifth method attention is paid to the feature of the rotation matrix with respect to the minute rotation, and the calculation amount is calculated with respect to the order J by following the rotation of the head of the listener (user) by accumulating the minute rotations.
  • the order of multiplication can be reduced.
  • the three-axis rotation of the listener's head that is, the block of the rotation matrix R'(u ( ⁇ )), the rotation matrix R'(a ( ⁇ )), and the rotation matrix R'(u ( ⁇ )). Only the rotation matrix R'(a ( ⁇ )) is diagonal, and the other rotation matrix R'(u ( ⁇ )) and rotation matrix R'(u ( ⁇ )) are perfect pairs. It is a rotation matrix.
  • two or more rotation matrices may be block diagonal matrices.
  • the rotation axis in which two or more rotation matrices are block diagonal matrices is not used, but the present technology is applied even when two or more rotation matrices are block diagonal matrices. It is possible to do.
  • the rotation matrix R'(a ( ⁇ )) is a block diagonal matrix, and each block portion of the block diagonal matrix has one side (for each degree n). It can be seen that it is a square consisting of 2n + 1) elements. At the same time, it is a composition of the rotation matrix R'(a ( ⁇ )), the diagonal matrix R'(u ( ⁇ )), and the diagonal matrix R'(u ( ⁇ )).
  • the rotation matrix R'(g) is also a block diagonal matrix.
  • the direction g j may be a discrete value or a continuous value, g j will be simply referred to as g in the following.
  • Equation (35) k indicates the order before rotation, and m indicates the order after rotation. Also shows an element of order n and of order k in H 'n k row vector H S ( ⁇ ).
  • the rotation matrix R'(a ( ⁇ )) shown in FIG. 9 is the same as the rotation matrix R'(a ( ⁇ )) shown in FIG. 8, and the rotation matrix R'when the angle ⁇ is 1 degree. (a ( ⁇ )) is shown.
  • the horizontal axis shows the components of the column of the rotation matrix R'(a ( ⁇ )), and the vertical axis shows the components of the row of the rotation matrix R'(a ( ⁇ )). Further, the shading at each position of the rotation matrix R'(a ( ⁇ )) indicates the level (dB) of the element of the rotation matrix R'(a ( ⁇ )) corresponding to those positions.
  • each element of the rotation matrix R'(a ( ⁇ )) is from -400 dB to 0 dB, whereas in FIG. 9, each of the rotation matrix R'(a ( ⁇ )) The element level range is limited to -100dB to 0dB.
  • the elements having a valid value in the rotation matrix R'(a ( ⁇ )) are paired. It can be seen that it exists only around the horn component.
  • the number of elements having a valid value in each order n is only on the order of the square of J, which is almost the maximum value of the order n even if the order n increases.
  • an element with a value within a predetermined level range such as an element with a level from -100 dB to 0 dB of the rotation matrix R'(a ( ⁇ ))
  • spherical harmonics are used only with the effective element.
  • the amount of calculation can be reduced by performing the calculation of rotating the head-related transfer function in the region.
  • the element of the value within the range of the predetermined level of the rotation matrix R'(g) is regarded as a valid element, and the operation of rotating the head related transfer function in the spherical harmonic region is performed using only the valid element. By doing so, the amount of calculation can be reduced.
  • the effective element width of the rotation matrix R'(g) is the same as the effective element width of the rotation matrix R'(a ( ⁇ )).
  • Equation (36) min (a, b) indicates a function that selects the smaller of a and b. Further, in equation (36), max (a, b) indicates a function that selects the larger of a and b.
  • Equation (35) (2n + 1) elements R' (n) k, m (g) whose order k is from -n to n were used for each degree n, but equation (36) In the calculation of), only (2C + 1) elements R' (n) k, m (g) whose order k is in the range from mC to m + C centered on m are used. The amount of reduction has been realized. If k is larger than n or k is smaller than -n, the operation is performed with k up to n and k up to -n, respectively, so as not to exceed the range of the matrix. In this way, the amount of calculation can be reduced by limiting the order k and performing the operation, that is, by performing the operation only on the element whose order k is a value within the range determined by C.
  • C that determines the effective element width 2C + 1 is not limited to a constant, and a function C (n) of degree n (where C (n) ⁇ n) can be used as C, or a function C of degree n and order k. (n, k) may be used as C.
  • the function C (n) and the function C (n, k) may be natural numbers smaller than the degree n. In other words, the operation is performed with as few elements as possible compared to the operation using the elements of the entire block of the rotation matrix R'(a ( ⁇ )), that is, the rotation matrix R'(g), which is a block diagonal matrix. You can do it like this.
  • the element used for the calculation in the rotation matrix R'(a ( ⁇ )) may be the element itself of the rotation matrix R'(a ( ⁇ )), or the rotation matrix R'(a ( ⁇ )). )) It may be an approximate value of the element.
  • R'(a ( ⁇ )) A 1 + A 2 + A 3 + ... by combining a plurality of matrices.
  • n for an approximate rotation matrix Rs'(a ( ⁇ )) represented by the sum of some of those matrices that make up the rotation matrix R'(a ( ⁇ )), n
  • the operation may be performed using fewer elements than the elements of (2n + 1) ⁇ (2n + 1).
  • the nth-order block diagonal matrix R' (n) (a ( ⁇ )) can be expressed by the following equation (37).
  • the matrix V y (n ) in the equation (37) is expressed as the following equation (38). If you want to use this matrix V y (n) to make the thickness of the approximate rotation matrix Rs'(a ( ⁇ )) C, then up to the C power of the matrix polynomial shown in equation (37). You can limit it to calculations.
  • the rotation matrix R'(u ( ⁇ )), the rotation matrix Rs'(a ( ⁇ )), and the rotation matrix R'(u ( ⁇ )) are combined to form the rotation matrix R'(.
  • a matrix operation with a limited number of orders will be performed.
  • the rotation matrix R'(a ( ⁇ )) is as shown in FIG.
  • the horizontal axis shows the components of the column of the rotation matrix R'(a ( ⁇ ))
  • the vertical axis shows the components of the row of the rotation matrix R'(a ( ⁇ )).
  • the shading at each position of the rotation matrix R'(a ( ⁇ )) indicates the level (dB) of the element of the rotation matrix R'(a ( ⁇ )) corresponding to those positions.
  • the level range of each element of the rotation matrix R'(a ( ⁇ )) is from -100 dB to 0 dB, as in the case of FIG.
  • the larger the order n the thicker (larger) the effective element width of the block for the order n. That is, even if the components of -100 dB or less are truncated, the rotation matrix R'(a ( ⁇ )) becomes a block diagonal matrix with a large effective element width.
  • the effective element width is narrow when the rotation angle ⁇ is small, and the amount of calculation can be reduced as described with reference to FIG. As the angle ⁇ becomes larger, the effective element width becomes larger and the calculation amount reduction effect becomes smaller.
  • the constant C that determines the effective element width 2C + 1 must be increased as the rotation of the head in the elevation direction of the listener increases.
  • the accumulation of minute rotations may be used.
  • the direction of the head of the listener (user) at a predetermined time is expressed as ( ⁇ , ⁇ , ⁇ ) using Euler angles.
  • the angle ⁇ , the angle ⁇ , and the angle ⁇ correspond to the above-mentioned rotation angle ⁇ , rotation angle ⁇ , and rotation angle ⁇ , respectively.
  • the direction g which is the direction of rotation of the listener's head, is represented by using Euler angles, but other methods such as quaternion may be used. In the following, unless otherwise specified, the direction g will be described using Euler angles.
  • the angle ⁇ and the angle ⁇ are the horizontal angles seen by the listener, and the angle ⁇ is the elevation angle seen by the listener.
  • the angle ⁇ at time t will be referred to as the angle ⁇ t .
  • the angle ⁇ and the angle ⁇ at the time t will be referred to as the angle ⁇ t and the angle ⁇ t , respectively.
  • the angle g t indicating the direction g at time t, the immediately preceding time (t-1), the angle g t-1 in other words than the time t before the time (t-1)
  • the rotation matrix R'(g t) ) Should be updated. That is, the product of the rotation matrix R'(g t-1 ) at the time (t-1) obtained last time and the rotation matrix R'( ⁇ g t ) corresponding to the difference ⁇ g t is the rotation matrix R at the time t.
  • '(g t ) can be used.
  • the effective element width narrow rotation matrix Rs' (a ( ⁇ t) ) for the differential [Delta] [alpha] t of the difference Delta] g t the rotation matrix is a diagonal matrix R 'and (u ( ⁇ t))
  • FIG. 11 is a diagram showing a configuration example of an embodiment of an audio processing device to which the present technology is applied.
  • the audio processing device 11 shown in FIG. 11 is built in, for example, a headphone or the like, and receives an input signal D' n m ( ⁇ ) in the spherical harmony region, which is an acoustic signal of the sound to be reproduced, as an input, and has two channels in the time region. It is a signal processing device that outputs a sound drive signal.
  • D' n m ( ⁇ ) in the spherical harmony region
  • the voice processing device 11 may be built in a device different from the headphones, or may be another device different from the headphones or the like. You may.
  • the voice processing device 11 includes a head rotation sensor unit 21, a previous direction holding unit 22, a rotation matrix calculation unit 23, a rotation calculation unit 24, a rotation coefficient holding unit 25, a head related transfer function holding unit 26, and a head related transfer function synthesis unit. It has 27 and a time-frequency inverse conversion unit 28.
  • the head rotation sensor unit 21 includes, for example, an acceleration sensor or an image sensor attached to the listener's (user's) head as needed, detects the rotation (movement) of the listener's head, and detects the rotation (movement) of the listener's head. The detection result is supplied to the rotation matrix calculation unit 23.
  • the listener referred to here is a user wearing headphones, that is, a user who listens to the sound reproduced by the headphones based on the drive signals of the left and right headphones obtained by the time-frequency inverse conversion unit 28.
  • the head rotation sensor unit 21 detects the rotation of the listener's head, that is, the direction in which the listener's head is facing, as a result of detecting the angle ⁇ t , the angle ⁇ t , and the angle ⁇ at the current time t . t is obtained.
  • head rotation information the information indicating the direction (rotation) of the listener's head, which is composed of the angle ⁇ t , the angle ⁇ t , and the angle ⁇ t , will be referred to as head rotation information.
  • the direction of a certain time t indicated by the head rotation information is an angle g t corresponding to the above-mentioned direction g, and is angle information indicating the direction of the head when, for example, the x-axis direction is used as a reference.
  • the previous direction holding unit 22 holds the angle of each time supplied from the rotation matrix calculation unit 23 as the previous direction information, and supplies the previous direction information held at the next time to the rotation matrix calculation unit 23. .. Therefore, for example, when the head rotation information at time t is supplied from the head rotation sensor unit 21 to the rotation matrix calculation unit 23, the time (previous direction information) is used as the previous direction information from the previous direction holding unit 22 to the rotation matrix calculation unit 23.
  • the angle g t-1 of t-1) is supplied.
  • the rotation matrix calculation unit 23 holds a table showing the rotation matrix R'(u ( ⁇ )) at each angle ⁇ and a table showing the rotation matrix R'(a ( ⁇ )) at each angle ⁇ .
  • the table showing the rotation matrix R'(u ( ⁇ )) is also used when obtaining the rotation matrix R'(u ( ⁇ )). That is, the tables of the rotation matrix R'(u ( ⁇ )) and the rotation matrix R'(u ( ⁇ )) are commonly used.
  • the rotation matrix calculation unit 23 is based on the table held, the head rotation information supplied from the head rotation sensor unit 21, and the previous direction information supplied from the previous direction holding unit 22, and the rotation matrix R '(u ( ⁇ t )), rotation matrix R'(a ( ⁇ t )), and rotation matrix R'(u ( ⁇ t )) are obtained and output.
  • the rotation matrix calculation unit 23 supplies the rotation matrix R'(u ( ⁇ t )), the rotation matrix R'(a ( ⁇ t )), and the rotation matrix R'(u ( ⁇ t )) to the rotation calculation unit 24. To do.
  • Rotation matrix R '(u ( ⁇ t) ), the rotation matrix R' (a ( ⁇ t) ), and rotation matrix R '(u ( ⁇ t) ) rotation matrix R is the synthesis of' ( ⁇ g t) is It is a rotation matrix that rotates by the angle (difference ⁇ g t ) of the difference between the rotation g t of the listener's head at time t and the rotation g t -1 of the listener's head at time (t-1). ..
  • the calculation unit 23 calculates the rotation matrix R'(u ( ⁇ t )), the rotation matrix R'(a ( ⁇ t )), and the rotation matrix R based on the difference ⁇ t , the difference ⁇ t , and the difference ⁇ t. '(u ( ⁇ t )) may be obtained.
  • rotation matrix R 'table (a ( ⁇ t)) is the rotation matrix R' (a ( ⁇ t)) approximation at a rotation matrix Rs of '(a ( ⁇ t)) may show a
  • the rotation matrix Rs'(a ( ⁇ t )) may be obtained by calculation instead of from the table.
  • the rotation matrix calculation unit 23 supplies and holds the head rotation information g t supplied from the head rotation sensor unit 21 to the previous direction holding unit 22 as the previous direction information.
  • the rotation calculation unit 24 calculates the row vector H'(g t -1 , ⁇ ) and supplies it to the rotation coefficient holding unit 25 and the head-related transfer function synthesis unit 27.
  • the row vector H'(g t -1 , ⁇ ) angles the head-related transfer function of the spherical harmonic region, that is, the row vector H S ( ⁇ ), based on the rotation matrix R'(g t ) at time t. It is a row vector obtained by performing a rotation operation that rotates by g t .
  • the rotation calculation unit 24 has the rotation matrix R'( ⁇ g t ) supplied from the rotation matrix calculation unit 23 and the row vector H'(at the time (t-1) supplied from the rotation coefficient holding unit 25).
  • the row vector H'(g t -1 , ⁇ ) at time t is calculated based on g t-1 -1 , ⁇ ).
  • Such an operation is the result of the rotation operation at time (t-1), that is, the head-related transfer function after rotation obtained by the rotation operation that rotates the row vector H S ( ⁇ ) by the angle g t-1.
  • it is a rotation operation that further rotates by the angle indicated by the difference ⁇ g t .
  • rotation matrix R 'rotation operation based on (Delta] g t) is the rotation matrix R' to devices having the position number k in the range defined by the predetermined value C in (Delta] g t) only calculations are performed, i.e. of order It is a matrix operation in which the operation limited by k is performed. Therefore, the rotation matrix R'( ⁇ g t ) is such that only the elements having an order k within the range determined by the predetermined value C are the elements having a valid non-zero value, that is, the rotation limited by the order k. It can be said that it is a matrix.
  • the rotation calculation unit 24 has a row of the head-related transfer function supplied from the head-related transfer function holding unit 26 at the start of processing, that is, in a state where there is no row vector H'(g t-1 -1 , ⁇ ).
  • the row vector H'(g t -1 , ⁇ ) is calculated based on the vector H S ( ⁇ ) and the rotation matrix R'( ⁇ g t ) supplied from the rotation matrix calculation unit 23. In this case, since the angle g t-1 is 0 degrees, the rotation matrix R'( ⁇ g t ) is equivalent to the rotation matrix R'(g t ).
  • the rotation coefficient holding unit 25 holds the row vector H'(g t -1 , ⁇ ) at the time t supplied from the rotation calculation unit 24, and holds the row vector H at the next time (t + 1). '(g t -1 , ⁇ ) is supplied to the rotation calculation unit 24.
  • HRTF holding unit 26 a predetermined row vector H S (omega), or holds the supplied row vector H S (omega) from the outside, row vector holds H S (omega ) Is supplied to the rotation calculation unit 24.
  • the row vector H S (omega) is the listener may be provided for each (user), row vector common to a plurality of persons of listeners constituting all listener or a group H S ( ⁇ ) may be prepared.
  • the row vector H'(g -1 , ⁇ ) is obtained by rotating the row vector H S ( ⁇ ) consisting of head-related transfer functions in the spherical harmony region by the rotation matrix R'(g -1 ).
  • the matrix that is, the matrix consisting of the head-related transfer functions after rotation.
  • the row vector H'(g -1 , ⁇ ) has an angle ⁇ in the horizontal direction, an angle ⁇ in the elevation angle direction, and an angle ⁇ in the horizontal direction by an angle determined by the direction of the listener's head in the spherical harmonic region. It is a matrix (vector) whose elements are head-related transfer functions that are rotated only by.
  • the row vector H'(g t-1 -1 , ⁇ ), which is the calculation result at the time (t-1), is used to set the time t.
  • An example of rotating the head-related transfer function by the difference in rotation at time (t-1) has been described.
  • the time is the difference between the time t and the time (t-1) in the direction (rotation direction) of at least one of the angle ⁇ , the angle ⁇ , and the angle ⁇ .
  • the result of the rotation calculation of the head-related transfer function in (t-1) may be further rotated.
  • the head-related transfer function synthesis unit 27 is supplied from the input signal D' n m ( ⁇ ) for each time frequency bin ⁇ , which is a sound signal in the spherical harmonic region, and the rotation calculation unit 24.
  • the row vector H'(g t -1 , ⁇ ) is combined to generate the drive signals for the left and right headphones.
  • the head-related transfer function synthesizer 27 consists of a row vector H'(g t -1 , ⁇ ) for each of the left and right headphones and an input signal D' n m ( ⁇ ) which is a sound signal in the spherical harmony region.
  • D'( ⁇ ) the drive signal P l (g, ⁇ ) and the drive signal Pr (g, ⁇ ) of the left and right headphones are calculated and supplied to the time-frequency inverse conversion unit 28. ..
  • the drive signal P l (g, ⁇ ) is a driving signal of the left headphone of the time-frequency domain (binaural signal)
  • the drive signal P r (g, ⁇ ) is the drive signal of the right headphone of the time-frequency domain (binaural Signal).
  • the synthesis of the head-related transfer function for the input signal and the spherical harmonic inverse conversion for the input signal are performed at the same time.
  • the time-frequency inverse conversion unit 28 drives the left headphone in the time domain by performing time-frequency inverse conversion on the drive signal in the time-frequency region supplied from the head transmission function synthesis unit 27 for each of the left and right headphones.
  • the signal p l (g, t) and the drive signal p r (g, t) of the right headphone in the time domain are obtained, and those drive signals are output to the subsequent stage.
  • a playback device that reproduces sound in two or more channels, such as headphones in the subsequent stage, more specifically headphones including earphones, and speakers using transoral technology, it is based on the drive signal output from the time-frequency inverse conversion unit 28. Sound is played.
  • a time-frequency conversion unit is provided in front of the signal input portion, that is, for example, the head-related transfer function synthesis unit 27, or the head-related transfer function synthesis unit 27. At 27, the convolution operation in the time domain will be performed.
  • the rotation matrix calculation unit 23 a difference [Delta] [beta] t from the difference Delta] g t, the difference [Delta] [alpha] t, and calculates the difference [Delta] [gamma] t, the held rotation matrix R '(a ( ⁇ )), and rotation matrix R' (u ( From the table of ⁇ )), the rotation matrix R'(a ( ⁇ )) when the angle ⁇ is the difference ⁇ t , and the rotation matrix R'(u ( ⁇ )) when the angle ⁇ is the difference ⁇ t and the difference ⁇ t. )) Is read out and used as the rotation matrix R'(a ( ⁇ t )), the rotation matrix R'(u ( ⁇ t )), and the rotation matrix R'(u ( ⁇ t )).
  • the rotation matrix calculation unit 23 performs the same calculation as the above-mentioned equation (29), and the rotation matrix R'(u ( ⁇ t )) and the rotation matrix R'(a ( ⁇ )) thus obtained are obtained. t ))) and the rotation matrix R'(u ( ⁇ t )) are combined to obtain the rotation matrix R'( ⁇ g t ).
  • the difference [Delta] [beta] t is as shown in FIG.
  • the vertical axis represents the angle ⁇ (elevation angle ⁇ ) at each time
  • the horizontal axis represents the time.
  • the curve L11 shows the angle ⁇ at each time, and when the portion of the region RZ11 in the curve L11 is enlarged, it is shown at the lower side in the figure.
  • the period from the time (t-1) to the time t is the period of one frame. Therefore, the difference between the angle ⁇ t, which is the angle ⁇ at the time t, and the angle ⁇ t -1, which is the angle ⁇ at the time (t-1), is ⁇ t .
  • the rotation matrix R'( ⁇ g t ) obtained based on the difference ⁇ g t is supplied to the rotation calculation unit 24, and the angle g t at the time t is supplied to the previous direction holding unit 22.
  • the previous direction information is updated. That is, the newly supplied angle g t of the time t is retained as the updated previous direction information.
  • the row vector H'(at time t) is based on the rotation matrix R'( ⁇ g t ) and the row vector H'(g t-1 -1 , ⁇ ) at the time (t-1). g t -1 , ⁇ ) is calculated.
  • the row vector H'(g) is obtained by finding the product of the row vector H'(g t-1 -1 , ⁇ ) and the rotation matrix R'( ⁇ g t ). It can be seen that t -1 , ⁇ ) can be obtained.
  • the rotation calculation unit 24 obtains the row vector H'(g t -1 , ⁇ ) by calculating the equation (41).
  • the operation of the equation (41) is performed only for (2C + 1) elements whose order k is in the range from mC to m + C centered on m, as in the above equation (36). ing. However, it is limited to the range of -n ⁇ k ⁇ n. That is, the operation is performed only for the elements whose order k is a value within the range determined by C, and the rotation operation is limited to the order k, and the amount of calculation is reduced.
  • the rotation matrix calculation unit 23 may sequentially obtain the rotation matrix R'(a ( ⁇ t )) by calculation, or the rotation matrix R'from one or a plurality of candidates prepared in advance. You may choose (a ( ⁇ t )).
  • the angle at which the head-related transfer function is rotated may be adjusted so as to follow the rotation angle ⁇ t of the actual listener's head while changing the frequency of using each method of.
  • step S11 the head rotation sensor unit 21 detects the rotation of the head of the user who is the listener, and supplies the head rotation information obtained as the detection result to the rotation matrix calculation unit 23.
  • step S12 the rotation matrix calculation unit 23 has the angle g t of the head rotation information supplied from the head rotation sensor unit 21 and the time (t-1) held as the previous direction information in the previous direction holding unit 22. ) Is the difference ⁇ g t from the angle g t-1 .
  • the rotation matrix calculation unit 23 supplies the angle g t of the head rotation information obtained in step S11 to the previous direction holding unit 22 to update the previous direction information.
  • the previous direction holding unit 22 updates the previous direction information so that the angle g t supplied from the rotation matrix calculation unit 23 becomes the new previous direction information, and holds the update result.
  • step S13 the rotation matrix calculation unit 23, based on the difference Delta] g t obtained in step S12, the rotation matrix R of elevation corresponding to the difference [Delta] [beta] t of the difference ⁇ g t '(a ( ⁇ t ) ).
  • step S13 the rotation matrix calculation unit 23 applies the rotation matrix Rs'(a ( ⁇ t )) corresponding to the difference ⁇ t corresponding to the rotation matrix Rs'(a ( ⁇ )) described above to the rotation matrix R'(. It may be calculated as a ( ⁇ t )).
  • step S14 the rotation matrix calculation unit 23 is based on the difference ⁇ t and the difference ⁇ t of the head rotation obtained from the difference ⁇ g t obtained in step S12, and the rotation matrix R in the horizontal direction corresponding to the difference. Find the'(u ( ⁇ t )) and rotation matrix R'(u ( ⁇ t )).
  • step S15 the rotation matrix calculation unit 23 uses the rotation matrix R'(a ( ⁇ t )) in the elevation angle direction obtained in step S13 and the rotation matrix R'(u ( ⁇ )) in the horizontal direction obtained in step S14.
  • the rotation matrix R'( ⁇ g t ) that rotates by the difference in the rotation of the entire head is obtained, and the rotation calculation unit 24 Supply to.
  • the rotation calculation unit 24 includes the rotation matrix R'( ⁇ g t ) supplied from the rotation matrix calculation unit 23 and the row vector H'(g t-1 -1 ) held by the rotation coefficient holding unit 25. The rotation calculation is performed based on, ⁇ ).
  • step S16 the above-mentioned equation (41) is calculated as a rotation operation based on the effective element width 2C + 1 determined by the constant C, and the row vector H'(g t -1 , ⁇ ) is calculated.
  • the rotation calculation unit 24 supplies the obtained row vector H'(g t -1 , ⁇ ) to the rotation coefficient holding unit 25 and holds the row vector H'(g t -1 , ⁇ ) at the head. It is also supplied to the transfer function synthesis unit 27.
  • step S17 the head-related transfer function synthesizer 27 receives the supplied input signal D' n m ( ⁇ ) and the row vector H'(g t -1 , g t -1 ,) of the head-related transfer function supplied from the rotation calculation unit 24. Combine with ⁇ ) to generate drive signals for the left and right headphones.
  • step S17 the product of the row vector H'(g t -1 , ⁇ ) and the matrix D'( ⁇ ) is obtained for each of the left and right headphones, and the drive signals P l (g, ⁇ ) of the left and right headphones are obtained. And the drive signal Pr (g, ⁇ ) is calculated.
  • the head-related transfer function synthesis unit 27 supplies the obtained drive signal P l (g, ⁇ ) and drive signal P r (g, ⁇ ) to the time-frequency inverse conversion unit 28.
  • step S18 the time-frequency inverse conversion unit 28 performs time-frequency inverse conversion with respect to the drive signal P l (g, ⁇ ) and the drive signal Pr (g, ⁇ ) supplied from the head-related transfer function synthesis unit 27. Then, the drive signal p l (g, t) and the drive signal p r (g, t) obtained as a result are output to the subsequent stage, and the drive signal generation process is completed.
  • the speech processing apparatus 11 obtains the rotation matrix R'( ⁇ g t ) based on the difference ⁇ g t , and the rotation matrix R'( ⁇ g t ) and the previous row vector H'(g t-1). Based on -1 , ⁇ ), find the current row vector H'(g t -1 , ⁇ ).
  • the drive signal can be obtained with the same amount of memory as the fourth method and with a smaller amount of calculation than the fourth method.
  • the error will be accumulated and the row vector H'(g t -1 , ⁇ ) will be a value different from the original value. That is, the error of the row vector H'(g t -1 , ⁇ ) becomes large.
  • the operation to obtain the accurate rotation matrix R'(g t -1 ) is performed at a predetermined timing, and the value of the rotation matrix R'(g t -1 ), that is, the row vector H'(g t -1 , ⁇ ) May be prevented from accumulating errors by resetting (hereinafter, simply referred to as reset).
  • reset resetting
  • the method of resetting at a predetermined timing will also be referred to as the sixth method.
  • the sixth method it is necessary to calculate the amount of calculation in the order of the cube of the order n in order to obtain the row vector H'(g t -1 , ⁇ ) at the time of reset, but reset should not be performed frequently. By setting this, the amount of calculation can be reduced as a whole.
  • the voice processing device 11 is configured as shown in FIG. In FIG. 14, the same reference numerals are given to the portions corresponding to the cases in FIG. 11, and the description thereof will be omitted as appropriate.
  • the voice processing device 11 shown in FIG. 14 includes a head rotation sensor unit 21, a previous direction holding unit 22, a rotation matrix calculation unit 23, a rotation calculation unit 24, a rotation coefficient holding unit 25, a head related transfer function holding unit 26, and a head. It has a transfer function synthesis unit 27 and a time-frequency inverse conversion unit 28.
  • the speech processing device 11 shown in FIG. 14 is the same as the speech processing device 11 in FIG. 11 in that it has a head rotation sensor unit 21 to a time frequency inverse conversion unit 28, but the rotation matrix calculation unit 23 and rotation It differs from the voice processing device 11 of FIG. 11 in that a reset trigger, which is a signal indicating the timing of resetting, is supplied to the calculation unit 24.
  • the rotation matrix calculation unit 23 rotates based on the angle g t of the head rotation information and the angle g t-1 as the previous direction information when the reset trigger is not supplied, that is, when the reset trigger is off.
  • the matrix R'( ⁇ g t ) is obtained and supplied to the rotation calculation unit 24.
  • the rotation matrix calculation unit 23 obtains the rotation matrix R'(g t ) based on the angle g t of the head rotation information. It is supplied to the rotation calculation unit 24. That is, a reset is performed to obtain an accurate rotation matrix R'(g t ). In other words, the absolute rotation matrix R'(g t ) is obtained, not the difference such as the rotation matrix R'( ⁇ g t ).
  • the rotation calculation unit 24 uses the rotation matrix R'( ⁇ g t ) supplied from the rotation matrix calculation unit 23 and the row vector H'(holding in the rotation coefficient holding unit 25) ( Calculate the row vector H'(g t -1 , ⁇ ) based on g t-1 -1 , ⁇ ).
  • the rotation calculation unit 24 rotation matrix rotation matrix supplied from the computing unit 23 R 'and (g t), it is held in the head-related transfer function storage unit 26
  • the row vector H'(g t -1 , ⁇ ) is calculated based on the row vector H S ( ⁇ ) of the head related transfer function.
  • the rotation calculation unit 24 performs the same calculation as the above-mentioned equation (35) or equation (36) to calculate the row vector H'(g t -1 , ⁇ ). That is, the product of the rotation matrix R'(g t ) and the row vector H S ( ⁇ ) is obtained, and the row vector H'(g t -1 , ⁇ ) is calculated.
  • the required memory amount and calculation amount are obtained by resetting according to the input of the reset trigger and obtaining the accurate rotation matrix R'(g t ) and row vector H'(g t -1 , ⁇ ). It becomes possible to obtain a drive signal with a small error while keeping the value low.
  • the reset trigger may always be turned on. That is, the rotation matrix R'(g t ) may always be calculated.
  • the timing at which the reset trigger is turned on may be any time.
  • the timing at which the reset trigger is turned on may be a predetermined periodic (periodic) timing such as a predetermined time interval, or a timing at which the difference ⁇ t becomes equal to or higher than the threshold value.
  • the timing may be such that the angle ⁇ t becomes equal to or greater than a predetermined value.
  • step S51 Since the process of step S51 is the same as the process of step S11 of FIG. 13, the description thereof will be omitted.
  • step S52 the rotation matrix calculation unit 23 determines whether or not to perform a reset based on a reset trigger supplied from the outside. For example, when the reset trigger is turned on, it is determined that the reset is performed.
  • step S52 If it is determined in step S52 that the reset is not performed, the process proceeds to step S53, and the processes of steps S53 to S57 are performed.
  • steps S53 to S57 is the same as the processing of steps S12 to S16 of FIG. 13, so the description thereof will be omitted.
  • step S57 the rotation calculation unit 24 supplies the obtained row vector H'(g t -1 , ⁇ ) to the head-related transfer function synthesis unit 27 and the rotation coefficient holding unit 25, and then processes. Proceeds to step S60.
  • step S58 the rotation matrix calculation unit 23 increases the elevation angle direction based on the angle g t of the head rotation information supplied from the head rotation sensor unit 21.
  • the rotation matrix R'(a ( ⁇ t )) and the rotation matrix R'(u ( ⁇ t )) and the rotation matrix R'(u ( ⁇ t )) in the horizontal direction are obtained.
  • the rotation matrix calculation unit 23 synthesizes these rotation matrices R'(a ( ⁇ t )), rotation matrix R'(u ( ⁇ t )), and rotation matrix R'(u ( ⁇ t )).
  • the rotation matrix R'(g t ) is obtained and supplied to the rotation calculation unit 24.
  • the rotation matrix R'(a ( ⁇ t )) may be obtained from the table based on the angle ⁇ t , or the rotation matrix R'(a ( ⁇ t )) may be calculated based on the angle ⁇ t. You may try to get t )).
  • the rotation matrix R'(u ( ⁇ t )) and the rotation matrix R'(u ( ⁇ t )) may be obtained by calculation based on the angle ⁇ t and the angle ⁇ t , or the angle ⁇ may be obtained.
  • the rotation matrix R'(u ( ⁇ t )) and the rotation matrix R'(u ( ⁇ t )) may be obtained from the table based on t and the angle ⁇ t .
  • the rotation calculating unit 24 includes a rotation matrix rotation matrix supplied from the computing unit 23 R '(g t), the row vector H S HRTF stored in the head-related transfer function storage unit 26 The rotation operation is performed based on ( ⁇ ), and the row vector H'(g t -1 , ⁇ ) is calculated. For example, in step S59, the same calculation as in the above equation (35) or equation (36) is performed to calculate the row vector H'(g t -1 , ⁇ ).
  • the rotation calculation unit 24 holds the obtained row vector H'(g t -1 , ⁇ ) with the head-related transfer function synthesizer 27 and the rotation coefficient. It is supplied to the unit 25, and then the process proceeds to step S60.
  • step S57 or step S59 When the process of step S57 or step S59 is performed, the processes of step S60 and step S61 are performed thereafter to end the drive signal generation process, but these processes are the same as the processes of steps S17 and S18 of FIG. Therefore, the description thereof will be omitted.
  • the voice processing device 11 obtains an accurate rotation matrix R'(g t ) and a row vector H'(g t -1 , ⁇ ) and generates a drive signal. By doing so, it is possible to obtain a drive signal with a small error while keeping the required memory amount and calculation amount low.
  • the difference ⁇ t does not depend on the actual value of the difference ⁇ t.
  • the value of t may be limited to a value of 1 degree or less so that the rotation matrix calculation unit 23 obtains the rotation matrix R'(a ( ⁇ t )).
  • the rotation matrix calculation unit 23 sets C, which determines the effective element width 2C + 1, as a predetermined value, and with respect to the C.
  • the rotation matrix R'(a ( ⁇ t )) may be obtained only for the elements in the block having the effective element width of 2C + 1, that is, the valid elements.
  • the rotation calculation unit 24 calculates the equation (36) only for the valid elements determined for C, and obtains the row vector H'(g t -1 , ⁇ ).
  • the computation amount increases in order to use the rotation matrix R '(g t), since requires the computation of only valid elements determined by C defining the effective element width 2C + 1, of the listener's head
  • the amount of calculation can be kept low to some extent while following the rotation.
  • Such processing can also be performed independently of the on / off of the reset trigger.
  • the rotation matrix R '(a ( ⁇ t) ) of the determined the rotation matrix R' (a ( ⁇ t) ) rotation matrix R obtained by '(Delta] g t) and the row vector H' (g t-1 -1 , ⁇ ) from the row vector H '(g t -1, ⁇ ) the determined but rotation operation when the
  • the part 24 may temporarily set C, which determines the effective element width 2C + 1, to be larger than usual.
  • the value of C may be a constant, or may be determined by an order n, a difference ⁇ t, or the like.
  • the reset may be performed when the angle ⁇ t of the head rotation information reaches a predetermined value (hereinafter, also referred to as a reset point).
  • the rotation matrix calculation unit 23 holds a rotation matrix R'(a ( ⁇ )) obtained in advance for the angle ⁇ , which is a reset point, for each one or a plurality of reset points.
  • the rotation matrix R'(a ( ⁇ 1 )) is held in advance for the angle ⁇ 1 defined as the reset point.
  • the rotation matrix calculation unit 23 uses the holding rotation matrix R'(a ( ⁇ 1 )) as the rotation matrix R'(a ( ⁇ t )).
  • the rotation matrix R'(g t ) is obtained and supplied to the rotation calculation unit 24.
  • a memory for holding the rotation matrix R'(a ( ⁇ )) is required for each reset point, but it is not necessary to perform the operation of the rotation matrix R'(a ( ⁇ t )). Since there is no such thing, the amount of calculation can be kept low while resetting so that the rotation matrix R'(a ( ⁇ t )) is accurate.
  • ⁇ Modification 1 of the second embodiment> ⁇ About reset control in multiple devices> Further, for example, there are a plurality of listeners in the space, and as shown in FIG. 16, a control system in which each of the plurality of audio processing devices outputs a drive signal to each of the headphones or the like worn by each listener. Suppose there was.
  • the control system shown in FIG. 16 has a voice processing device 71-1 to a voice processing device 71-4 and a switch 72.
  • each of the voice processing device 71-1 to the voice processing device 71-4 has the same configuration as the voice processing device 11 shown in FIG.
  • the voice processing device 71 when it is not necessary to distinguish between the voice processing device 71-1 and the voice processing device 71-4, it is also simply referred to as the voice processing device 71.
  • Each voice processing device 71 receives the input signal D 'n m ( ⁇ ), and performs the same processing as the drive signal generation processing described with reference to FIG. 15, the left and right headphone driving signal p l (g , t) and the drive signal pr (g, t) are output.
  • each audio processing device 71 may be an independent device, or the audio processing devices 71 may be provided in one device, but here, each audio processing device 71 is in the center. It is assumed that it is provided in one computer system (device).
  • the switch 72 resets the voice processing device 71 so that the reset trigger is supplied to the voice processing device 71 of any one of the voice processing device 71-1 to the voice processing device 71-4 at an arbitrary timing. Control the supply of triggers.
  • each of the plurality of listeners wears headphones, and each of these headphones reproduces sound based on drive signals supplied from each of different audio processing devices 71. ..
  • each voice processing device 71 detects the movement (rotation) of the head headphones to which the drive signal is output, that is, the head of the listener wearing the headphones, by the head rotation sensor unit 21, and the head of the listener.
  • the head-related transfer function is rotated according to the movement of the headphone to generate a drive signal.
  • the switch 72 supplies reset triggers to each of the four voice processing devices 71 at different timings, the plurality of voice processing devices 71 are not reset at the same time. Therefore, it is possible to prevent the calculation load from suddenly increasing in the entire control system. That is, it is possible to prevent the amount of calculation from being temporarily increased.
  • the vertical axis shows the amount of calculation in the entire control system
  • the horizontal axis shows the time.
  • resetting is performed simultaneously by the four voice processing devices 71 at a predetermined cycle.
  • the reset is performed at time t11, and the amount of calculation is large (large) at this time t11, but the amount of calculation is kept low at other times when the reset is not performed.
  • the plurality of voice processing devices 71 are not reset at the same time, but each voice processing device 71 is reset at different timings.
  • the frequency of increase in the amount of calculation increases, the amount of calculation at each time does not increase so much. That is, although the amount of calculation increases at the time of reset, the increase in the amount of calculation at that time is sufficient for the reset amount in one voice processing device 71, so that the calculation load is not as large as when resetting is performed simultaneously in a plurality of voice processing devices 71. ..
  • one voice processing device 71 resets, but the amount of calculation is kept low compared to time t11 in the example shown by arrow Q11.
  • all the voice processing devices 71 may be divided into a plurality of groups including one or a plurality of voice processing devices 71, and reset may be performed for each group.
  • ⁇ Modification 2 of the second embodiment> ⁇ Reset by order or order>
  • the reset is performed every nth order or m. It may be done every time. By doing so, it is possible to suppress an increase in the calculation load at the time of reset.
  • only the components of a predetermined order may be reset for the order n.
  • the components of each order may be reset at different timings, or several components of the order may be reset at the same time.
  • Equation (41) is calculated to generate the matrix H 1 ( ⁇ ), the matrix H 2 ( ⁇ ), and the matrix H 3 ( ⁇ ).
  • the processing of steps S58 and S59 of FIG. 15 is performed for the 0th-order component and the matrix.
  • H 0 ( ⁇ ) is generated.
  • the processing of steps S53 to S57 is performed, and the matrix H 1 ( ⁇ ), the matrix H 2 ( ⁇ ), and the matrix H 3 ( ⁇ ) are processed. Is generated.
  • the row vector H'(g t -1 , ⁇ ) is generated from the matrix H 0 ( ⁇ ), the matrix H 1 ( ⁇ ), the matrix H 2 ( ⁇ ), and the matrix H 3 ( ⁇ ).
  • some groups may be provided, for example, a group consisting of 0th and 1st orders of order n, and reset may be performed for each of those groups.
  • the secondary components may be reset at the same time.
  • the reset timing of the 0th, 1st, and 2nd order components of the order n and the reset timing of the 3rd order component of the order n are different timings.
  • ⁇ Modification 3 of the second embodiment> ⁇ Reset for each time frequency> Further, the reset is performed for each time frequency ⁇ regardless of the example of the voice processing device 11 shown in FIG. 14 or the example of the control system shown in FIG. 16, that is, regardless of whether the listener is one or more. It may be. By doing so, it is possible to suppress an increase in the calculation load at the time of reset.
  • the row vector H'(g t -1 , ⁇ ) is obtained for W time frequencies ⁇ 1 to time frequency ⁇ W. That is, it is assumed that the row vector H'(g t -1 , ⁇ 1 ) to the row vector H'(g t -1 , ⁇ W ) can be obtained.
  • the reset may be performed only for the predetermined time frequency ⁇ . At that time, it may be reset at different timings for each time frequency ⁇ , or it may be reset at several time frequencies ⁇ at the same time.
  • some groups consisting of one or a plurality of time frequencies ⁇ may be provided and reset may be performed for each of those groups.
  • a central device (master) to which the slave is connected may perform a part or all of the reset operation.
  • control system is configured as shown in FIG. 20, for example.
  • the control system shown in FIG. 20 has a master device 101 and slaves 102-1 to 102-9.
  • the master device 101 and each of the slaves 102-1 to 102-9 are connected to each other via a wired or wireless network.
  • a wired or wireless network it is also simply referred to as the slave 102.
  • the master device 101 performs a part of the calculation (processing) originally performed by the slave 102 on behalf of the slave 102, and supplies the calculation result to the slave 102.
  • the slave 102 is composed of, for example, headphones or a smartphone, and corresponds to the voice processing device 11 shown in FIG.
  • the slave 102 performs the drive signal generation process described with reference to FIG. 15 according to the rotation of the listener's head and outputs the drive signal, but is a part of the drive signal generation process such as the calculation at the time of reset. Is requested to the master device 101 for the calculation of.
  • the master device 101 can perform the calculation at the time of reset.
  • the slave 102 transmits an arithmetic request requesting the calculation of the row vector H'(g t -1 , ⁇ ) to the master device 101 together with the angle g t or the rotation matrix R'(g t ).
  • the master device 101 that receives the calculation request from the slave 102 and the angle g t or the rotation matrix R'(g t ) performs the calculation of the following equation (42) in response to the calculation request, and obtains the result.
  • the row vector H'(g t -1 , ⁇ ) is transmitted to the slave 102.
  • the row vector H S ( ⁇ ) used in the calculation of the equation (42) may be acquired from the slave 102 in advance by the master device 101, or may be held in advance by the master device 101. May be good.
  • the slave 102 uses the row vector H'(g t -1 , ⁇ ) received from the master device 101 to obtain a drive signal of the sound to be presented to the listener with a small amount of calculation. be able to.
  • the reset may be performed for each listener, every order n, every order m, every time frequency ⁇ , etc., and the calculation in the master device 101 is performed by appropriately determining the reset timing.
  • the load can be reduced. For example, if the resets for each slave 102 are performed at different timings, the calculation load on the master device 101 can be reduced.
  • the slave 102 may perform the calculation at the time of reset.
  • the master device 101 sequentially receives the angle g t , the rotation matrix R'( ⁇ g t ), etc. from the slave 102, performs the operation shown in the following equation (43), and performs the operation shown in the following equation (43), and the row vector H'(g t) -1 , ⁇ ) is calculated.
  • the master device 101 may perform operations until the row vector H'(g t -1 , ⁇ ) is calculated, and the slave 102 may perform the remaining operations until the drive signal is obtained. , The master device 101 may calculate the drive signal using the row vector H'(g t -1 , ⁇ ) and supply it to the slave 102.
  • the operation of the above equation (42) is performed on the slave 102 side, and the row vector H'(g t -1 , ⁇ ) obtained as a result is transmitted from the slave 102 to the master device 101.
  • the master device 101 can hold the row vector H'(g t -1 , ⁇ ) received from the slave 102 and use it for the next calculation of the equation (43).
  • the master device 101 By performing the reset operation on the slave 102 side in this way, the master device 101 normally changes the row vector H'(g t -1 , ⁇ ) calculated based on the difference to a more accurate row vector.
  • the error can be reset by updating to H'(g t -1 , ⁇ ).
  • the row vector H S ( ⁇ ) required for the calculation at the time of reset may be acquired from the master device 101 in advance by the slave 102, or may be held in advance by the slave 102. However, it may be held in advance in both the master device 101 and the slave 102.
  • the one device when only one of the master device 101 and the slave 102 holds the row vector H S ( ⁇ ) and the like, the one device is set at an arbitrary timing such as at the time of connection or at the time of initialization.
  • the held row vector H S ( ⁇ ) or the like may be transmitted to the other device.
  • the reset may be performed for each listener, every order n, every order m, every time frequency ⁇ , etc., and the reset timing may be appropriately determined. it can.
  • the reset timing does not need to be dispersed because the reset operation for a plurality of listeners is not performed simultaneously in one slave 102.
  • the master device 101 and the slave 102 may share the drive signal generation process described with reference to FIGS. 13 and 15. That is, since the master device 101 is responsible for a part of the functions for performing the drive signal generation processing, it is possible to flexibly respond even when the number of listeners increases dynamically.
  • the limitable order is automatically determined by setting the error tolerance (A2)
  • the maximum error can be obtained by setting the upper limit of the calculation load (A3)
  • the number that limits the calculation is spherical It is automatically determined for each harmony order n (A4)
  • the order that limits the operation is automatically determined for each time frequency ⁇ (A5)
  • the upper limit of the cumulative error is found (A6) Cumulative error Reset trigger is triggered when the upper limit of is exceeded a certain value
  • the nth-order block diagonal matrix R' (n) (a ( ⁇ )) can be expressed as in the above equation (37).
  • the thickness of the diagonal component of the matrix changes according to the order l of the Taylor expansion.
  • the matrix of the truncation error between the actual block diagonal matrix R' (n) (a ( ⁇ )) and the nth-order component R l0 (n) (a ( ⁇ )) obtained by Taylor expansion is the error matrix E. It shall be written as R (n) .
  • the spectral norm is used to evaluate the matrix E R (n) of the truncation error.
  • the spectral norm of the predetermined matrix A is defined as shown in the following equation (44), and this spectral norm is equivalent to the maximum value of the eigenvalue. This means giving an upper bound on the ratio of the norm of the error vector to the norm of the vector of the head related transfer function (HRTF) in the spherical harmonic region.
  • the Frobenius norm or the like may be used to analytically give a guideline for the error, but only the spectral norm will be described in this specification.
  • equation (46) is the absolute value of the remainder term of the Taylor expansion in the complex exponential function, and the right side of equation (46) indicates the upper limit.
  • equation (46) is the absolute value of the remainder term of the Taylor expansion in the complex exponential function, and the right side of equation (46) indicates the upper limit.
  • Bobkov, S. G. Asymptotic Expansions for Products of Characteristic Functions Under Moment Assumptions of Non-integer Orders, "in Convexity and Concentration, pp.297-357, Springer New York, etc. It is described in.
  • the spectral norm can be obtained from the maximum absolute value (upper limit ) of the eigenvalues of the error matrix E R (n) as shown in the following equation (47).
  • the truncation error that is, the calculation amount for rotation is the smallest among the tolerance ⁇ 0 .
  • the tolerance ⁇ 0 in equation (48) is the ratio of the norm of the error vector to the norm of the vector after rotation, that is, the row vector H'(g t -1 , ⁇ ) or the vector D'( ⁇ ) of the input signal. Is.
  • n in Eq. (47) has a different value for each degree n of the spherical harmonics, that is, for each degree n of the spherical harmonics region.
  • the tolerance ⁇ 0 is determined first, a different order l 0 is obtained for each degree n.
  • the tolerance ⁇ 0 has a different upper limit for each order n, and the larger the order n, the greater the tolerance ⁇ 0. Becomes larger. It can also be seen that the larger the rotation angle ⁇ , the larger the tolerance ⁇ 0 .
  • these parameters may be specified with different values for each time frequency ⁇ .
  • the tolerance ⁇ 0 can be specified as a function ⁇ 0 ( ⁇ ) of the time frequency ⁇ .
  • a method of stacking minute rotations (hereinafter, also referred to as a minute rotation accumulation method) or a row vector of a head-related transfer function of a spherical harmonic region before rotation without stacking rotations. It was explained that the row vector H'(g t -1 , ⁇ ) is calculated by any of the methods of rotating H S ( ⁇ ) (hereinafter, also referred to as non-cumulative rotation method).
  • the above equation (41) is calculated to calculate the row vector H'(g t -1 , ⁇ )
  • the above equation (35) or equation (36) is calculated. Is calculated and the row vector H'(g t -1 , ⁇ ) is calculated.
  • the row vector H'(g t -1 , ⁇ ) is calculated by the minute rotation accumulation method.
  • the value of order n in equation (48) is the same as the order n of each spherical harmonic. Substitute a value or a higher value.
  • the maximum order N of the order n can be set.
  • a different value may be specified for each time frequency ⁇ as the tolerance ⁇ 0 , or whether or not to limit the order k itself may be specified for each time frequency ⁇ . .. Further, the tolerance ⁇ 0 may be specified as a different value for each degree n.
  • the approximate rotation matrix obtained by limiting the order of the rotation matrix R'(g t ) may be obtained by the Taylor expansion with the order l 0 truncated, or the original rotation. It may be obtained by using the values of the elements of the matrix R'(g t ) or the elements obtained by some method.
  • this proposed method is applicable not only to the case of rotating the row vector H S ( ⁇ ) in the non-cumulative rotation method, but also to the case of rotating the vector D'( ⁇ ) of the input signal.
  • the proposed method the rotation matrix R' rotation matrix R approximate obtained by performing restriction of order k for (g j -1)
  • the calculation of Eq. (26) may be performed using a rotation matrix.
  • the vector D'( ⁇ ) is rotated by the rotation operation based on the approximate rotation matrix.
  • the calculation load can be kept constant regardless of the angle ⁇ .
  • the upper limit ⁇ t of the error has various values depending on the angle ⁇ t , but by calculating the equation (47), the system, the user, the operator (engineer) who introduces the system, etc. sequentially sets the value of the upper limit ⁇ t. You can know.
  • the value of the upper limit ⁇ t which is the maximum error, and its graph are displayed on the GUI (Graphical User Interface) and presented to the user, etc., or the rotation angle ⁇ t > ⁇ max that exceeds a certain error is input.
  • the rotation calculation may be performed by setting the rotation angle to an angle ⁇ max or ⁇ max or less at the expense of localization.
  • angle ⁇ max may be specified as a function ⁇ max ( ⁇ ) of the time frequency ⁇ , which is different for each time frequency ⁇ .
  • the approximate rotation matrix obtained by limiting the order of the rotation matrix R'(g t ) is of order. It may be obtained by Taylor expansion with l 0 truncation, or it may be obtained by using the values of the elements of the original rotation matrix R'(g t ) or the elements obtained by some method. There may be.
  • the voice processing device 11 is configured as shown in FIG. 21, for example.
  • the same reference numerals are given to the parts corresponding to the cases in FIG. 11, and the description thereof will be omitted as appropriate.
  • the voice processing device 11 shown in FIG. 21 includes a head rotation sensor unit 21, a digit determination unit 201, a rotation matrix calculation unit 23, a rotation calculation unit 24, a head related transfer function holding unit 26, and a head related transfer function synthesis unit 27. It also has a time-frequency inverse conversion unit 28.
  • the voice shown in FIG. 11 is provided in that the direction holding unit 22 and the rotation coefficient holding unit 25 are not provided last time, and the order determination unit 201 is newly provided.
  • the configuration is different from that of the processing device 11, and is otherwise the same as that of the voice processing device 11 of FIG.
  • Designated information indicating a tolerance ⁇ 0 specified by a user or the like, a calculation load, or the like is supplied to the order determination unit 201, and head rotation information is supplied from the head rotation sensor unit 21. It can be said that the tolerance ⁇ 0 is the tolerance between the rotation matrix R'(g t ) and the approximate rotation matrix obtained by limiting the order of the rotation matrix R'(g t ).
  • the order determination unit 201 determines the order k for limiting the rotation calculation based on the specified information supplied and the head rotation information supplied from the head rotation sensor unit 21, and rotates the determination result. It is supplied to the matrix calculation unit 23.
  • Rotation matrix calculation unit 23 a head rotation information supplied from the head rotation sensor 21, rotation matrix R based on the determination result of order k supplied from the position number determining section 201 '(g t) The approximate rotation matrix of is obtained and supplied to the rotation calculation unit 24.
  • step S91 is the same as the process of step S11 of FIG. 13, so the description thereof will be omitted.
  • step S92 the order determination unit 201 determines the order k for limiting the rotation calculation based on the designated information supplied and the head rotation information supplied from the head rotation sensor unit 21, and determines the order k. The result is supplied to the rotation matrix calculation unit 23.
  • the order determining unit 201 formulates an equation for each order n based on the tolerance ⁇ 0 and the rotation angle ⁇ t indicated by the head rotation information.
  • the minimum order l 0 that satisfies (48) is calculated.
  • degree l 0 as described above may also be obtained from the previously prepared table or the like, the degree l 0 may be a common value for all orders n.
  • the order determination unit 201 determines the order k by setting the tolerance ⁇ 0 based on the designated information. Setting the tolerance ⁇ 0 in this way is the tolerance of the error of the rotation operation by the approximate rotation matrix of the rotation matrix R'(g t ) with respect to the rotation operation by the rotation matrix R'(g t ), that is, the tolerance. It can also be said that the tolerance value of the rotation calculation error corresponding to the error ⁇ 0 is set.
  • Such of order k which is determined in the is for limiting the operation amount of the rotation operation about the rotation matrix R corresponding to the rotation of the listener's head '(g t).
  • order k which is determined in the is for limiting the operation amount of the rotation operation about the rotation matrix R corresponding to the rotation of the listener's head '(g t).
  • the order determination unit 201 sets the order l 0 determined for the calculation load as the value of the constant C. In other words, the order determination unit 201 determines the order k by setting the calculation load, that is, the upper limit of the calculation amount of the rotation operation by the approximate rotation matrix, based on the designated information.
  • Rotation matrix calculator 23 in step S93 the head rotation information supplied from the head rotation sensor section 21, of order determination unit 201 rotation matrix based on the of order k supplied from R '(g t)
  • the approximate rotation matrix of is obtained, and the obtained approximate rotation matrix is supplied to the rotation calculation unit 24.
  • the rotation matrix calculation unit 23 obtains the rotation matrix R'(g t ) based on the head rotation information, extracts some elements of the rotation matrix R'(g t ), and extracts the rotation matrix R'(. Let it be an approximate rotation matrix of g t ).
  • the rotation matrix calculation unit 23 uses the extracted elements as they are as the corresponding elements of the approximate rotation matrix, and sets the values of the other elements to 0 to approximate the rotation matrix R'(g t ). Rotation matrix is generated.
  • a value obtained from the extracted element and another value may be used as an approximate rotation matrix element.
  • the rotation matrix calculation unit 23 actually performs Taylor expansion to the order l 0 of the block diagonal matrix (nth-order component) of each degree n constituting the rotation matrix R'(g t ), thereby performing the rotation matrix. You may want to find an approximate rotation matrix of R'(g t ).
  • the rotation matrix R'(g t ) is represented by the sum of the matrices corresponding to the terms of each order l of the Taylor expansion, and these multiple matrices.
  • the sum of the matrices of each order from order 0 to order l 0 is the approximate rotation matrix of the rotation matrix R'(g t ).
  • the rotation matrix R'(u ( ⁇ t )) may be combined.
  • steps S94 to S96 are then performed to end the drive signal generation process, but these processes are the processes of steps S16 to S18 of FIG. Since it is the same as the above, the description thereof will be omitted.
  • step S94 the approximate rotation matrix obtained in step S93 is used to perform the same calculation as in Eq. (36) for the row vector H S ( ⁇ ), and head-related transfer is performed in the spherical harmonic region.
  • the function is rotated.
  • the rotation operation limited by the order k by the rotation matrix R'(g t ) is realized.
  • the rotation operation may be performed using only the elements in the range of -n to n. By doing so, it is possible to realize the rotation operation limited by the order k.
  • the speech processing apparatus 11 generates an approximate rotation matrix of the rotation matrix R'(g t ), and after rotation based on the approximate rotation matrix and the row vector H S ( ⁇ ). Find the row vector H'(g t -1 , ⁇ ) of. By doing so, in the proposed method, the error included in the row vector H'(g t -1 , ⁇ ) can be suppressed within the permissible range, and the sound can be reproduced with sufficient quality and more efficiently. Can be done.
  • the row vector H It is also applicable when calculating the row vector H'(g t -1 , ⁇ ) based on S ( ⁇ ) and the rotation matrix R'(g t ).
  • microspheroidal cumulative method when emphasizing real-time follow-up property, specify the tolerance epsilon 0, as determined by calculation the appropriate degree l 0 from equation (48) with respect to the difference [Delta] [beta] t of the rotational angle can do.
  • a difference [Delta] [beta] t and the order l 0 is prepared in advance a table that is associated, may be obtained the degree l 0 which is associated from the table to the difference [Delta] [beta] t.
  • the order l 0 may be obtained for each degree n of the spherical harmonics, or the common order l 0 may be obtained for all the orders n.
  • a value equal to or larger than the order n of each spherical harmonic function may be substituted as the value of the order n in the equation (48). ..
  • the maximum order N of the order n can be set.
  • the tolerance ⁇ 0 may be specified differently for each time frequency ⁇ , or whether or not to limit the order k itself may be specified for each time frequency ⁇ . Good.
  • the approximate rotation matrix obtained by limiting the rotation matrix R'( ⁇ g t ) by the order k may be obtained by the Taylor expansion with the order l 0 truncated, or the original. It may be obtained by using the values of the elements of the rotation matrix R'( ⁇ g t ) or the elements obtained by some method.
  • the upper limit ⁇ of the cumulative error at the time of the t-th rotation in the minute rotation accumulation method can be obtained by calculating the above equation (52).
  • the reset trigger is turned on when the upper limit sup ⁇ of the cumulative error ⁇ obtained by the calculation of the equation (52) exceeds a predetermined tolerance ⁇ max. You may do so.
  • the tolerance ⁇ max may be a different value for each time frequency ⁇ , or may be a constant value regardless of the time frequency ⁇ .
  • FIG. 23 shows the temporal transition of the cumulative error ⁇ .
  • the vertical axis represents the spectral norm of the error matrix (error matrix), and the horizontal axis represents time.
  • the curve L51 shows the upper limit sup ⁇ of the cumulative error ⁇ shown in equation (52) at each time
  • the curve L52 shows the actual cumulative error at each time
  • the straight line L53 It shows the set tolerance ⁇ max .
  • the actual cumulative error shown by the curve L52 does not exceed the upper limit of the cumulative error ⁇ , but the cumulative error increases with each minute rotation. Therefore, in this example, the reset trigger is turned on at the timing t51 when the upper limit sup ⁇ of the cumulative error ⁇ exceeds the tolerance ⁇ max .
  • a constant that determines the tolerance ⁇ 0 and the thickness (effective element width) of the diagonal component of the rotation matrix R'( ⁇ g t ). Specifying the upper limit of C l 0 , the smaller of the maximum angle ⁇ satisfying equation (48) and the difference ⁇ t of the rotation angles is used for the rotation matrix R'( ⁇ g t ). You may try to do it.
  • the value of the constant C actually used is within the tolerance ⁇ 0 , that is, the equation (48) is satisfied.
  • the value may be made smaller within the range.
  • the row vector H'(g t -1 , ⁇ ) obtained by the rotation operation is the head of the actual listener (user). It is in a state where the rotation is not fully followed and the rotation is delayed.
  • the angle used for the rotation matrix R'( ⁇ g t ), that is, the difference ⁇ t may be determined so that the rotation delay is eliminated.
  • the thickness (width) of the diagonal component of the rotation matrix R'( ⁇ g t ) becomes less than a certain value, so that the rotation calculation by the rotation calculation unit 24, etc.
  • the value of the error in Eq. (47) increases as the order n increases. Therefore, even when the upper limit is set for the constant C, a value equal to or larger than the order n of each spherical harmonic function may be substituted as the value of the order n of the equation (48).
  • the upper limit is set for the constant C
  • a different value may be specified for the tolerance ⁇ 0 for each time frequency ⁇ , and whether or not the order k is restricted is the time frequency ⁇ . It may be specified for each.
  • the approximate rotation matrix obtained by limiting the rotation matrix R'( ⁇ g t ) by the order k may be obtained by the Taylor expansion with the order l 0 truncated. It may be obtained by using the values of the elements of the rotation matrix R'( ⁇ g t ) and the elements obtained by some method.
  • the upper limit sup ⁇ of the cumulative error at the time of the t-th rotation can be obtained by calculating the above equation (52), and therefore the cumulative error obtained by the calculation of the equation (52).
  • upper sup ⁇ may also be reset trigger is turned on when it exceeds the predetermined tolerance epsilon max. Even in such a case, the upper limit of the cumulative error sup ⁇ and the actual cumulative error will change as shown in FIG. 23. Even in this case, the tolerance ⁇ max may be a different value for each time frequency ⁇ , or may be a constant value regardless of the time frequency ⁇ .
  • the order l 0 or the constant C may be made constant regardless of the rotation angle, that is, the difference ⁇ t .
  • the upper limit ⁇ t of the error generated by one rotation has various values depending on the difference ⁇ t , but the system, the user, the operator, etc. know the value of the upper limit ⁇ t sequentially by calculating the equation (47). Can be done. Further, for example, the upper limit of the cumulative error sup ⁇ can be known by calculating the equation (53).
  • the value of the upper limit ⁇ t of the error and the upper limit sup ⁇ of the cumulative error are displayed on the GUI and presented to the user, etc., or when the upper limit sup ⁇ of the cumulative error exceeds the predetermined tolerance ⁇ max , the reset trigger Can also be turned on.
  • the value of the tolerance ⁇ max a different value ⁇ max ( ⁇ ) may be specified for each time frequency ⁇ .
  • FIG. 24 shows the temporal transition of the upper limit ⁇ t of the cumulative error.
  • the vertical axis represents the spectral norm of the error matrix (error matrix), and the horizontal axis represents time.
  • the curve L61 shows the upper limit sup ⁇ of the cumulative error shown in equation (53) at each time, the curve L62 shows the actual cumulative error at each time, and the straight line L63 is set. It shows the tolerance ⁇ max .
  • the upper limit sup ⁇ of the cumulative error shown in the curve L61 and the actual cumulative error shown in the curve L62 increase with time, but they are actually The cumulative error does not exceed the upper limit of the cumulative error sup ⁇ .
  • the upper limit ⁇ t of the error changes depending on the magnitude of the difference ⁇ t at each time. Therefore, although the values shown in the curve L61 and the curve L62 rise irregularly, the upper limit sup ⁇ of the cumulative error can be obtained by the equation (53), so that the reset can be performed appropriately. Also in the example shown in FIG. 24, the reset trigger is turned on at the timing t61 when the upper limit sup ⁇ of the cumulative error exceeds the tolerance ⁇ max .
  • the voice processing device 11 is configured as shown in FIG. 25, for example.
  • the same reference numerals are given to the portions corresponding to the cases in FIGS. 11 or 21, and the description thereof will be omitted as appropriate.
  • the voice processing device 11 shown in FIG. 25 includes a head rotation sensor unit 21, a digit determination unit 201, a previous direction holding unit 22, a rotation matrix calculation unit 23, a rotation calculation unit 24, a rotation coefficient holding unit 25, and a head related transfer function. It has a holding unit 26, a head-related transfer function synthesis unit 27, and a time-frequency inverse conversion unit 28.
  • the configuration of the voice processing device 11 shown in FIG. 25 is different from the configuration of the voice processing device 11 shown in FIG. 11 in that a digit determination unit 201 is newly provided, and the voice of FIG. 11 is otherwise provided. It has the same configuration as the processing device 11.
  • the order determination unit 201 determines the order k for limiting the rotation operation based on the specified information supplied and the difference ⁇ t supplied from the rotation matrix calculation unit 23, and the determination result is calculated by the rotation matrix calculation. It is supplied to the unit 23.
  • the rotation matrix calculation unit 23 determines the head rotation information supplied from the head rotation sensor unit 21, the previous direction information supplied from the previous direction holding unit 22, and the order k supplied from the order determination unit 201. Based on the result, an approximate rotation matrix of the rotation matrix R'( ⁇ g t ) is obtained and supplied to the rotation calculation unit 24.
  • steps S131 and S132 is the same as the processing of steps S11 and S12 of FIG. 13, so the description thereof will be omitted.
  • step S132 the difference [Delta] [beta] t of the obtained difference Delta] g t is supplied from the rotation matrix calculation unit 23 to the position number determination unit 201.
  • step S133 the order determination unit 201 determines the order k for limiting the rotation operation based on the specified information supplied and the difference ⁇ t supplied from the rotation matrix calculation unit 23, and determines the determination result. It is supplied to the rotation matrix calculation unit 23.
  • the order determination unit 201 is the minimum order that satisfies Eq. (48) for each degree n based on the tolerance ⁇ 0 and the difference ⁇ t. l 0 is calculated. At this time, the difference ⁇ t is used as the angle ⁇ in the equation (48) to determine the order l 0 .
  • degree l 0 as described above may also be obtained from the previously prepared table or the like, the degree l 0 may be a common value for all orders n.
  • the order k thus determined is the rotation with respect to the rotation matrix R'(a ( ⁇ t )) corresponding to the rotation of the listener's head in the elevation angle direction, as in the third embodiment. This is to limit the amount of calculation.
  • the order determination unit 201 refers to the value of the order l 0 or the constant C.
  • the order determined by is determined as the order k that limits the rotation operation.
  • step S134 the rotation matrix calculation unit 23 uses the difference ⁇ g t obtained in step S132 and the order k supplied from the order determination unit 201 to obtain a rotation matrix in the elevation angle direction according to the difference ⁇ t. Find the approximate rotation matrix Rs'(a ( ⁇ t )) of R'(a ( ⁇ t )).
  • the rotation matrix calculation unit 23 obtains the rotation matrix R'(a ( ⁇ t )) based on the table held in advance and the difference ⁇ t, and obtains the rotation matrix R'(a ( ⁇ t )).
  • the rotation matrix calculation unit 23 uses the extracted elements as they are as the corresponding elements of the approximate rotation matrix Rs'(a ( ⁇ t )), and sets the values of the other elements to 0, which is approximate. Find the rotation matrix Rs'(a ( ⁇ t )). Instead of using the extracted element as it is, the value obtained from the extracted element and other values may be used as an element of the approximate rotation matrix Rs'(a ( ⁇ t )). ..
  • the rotation matrix calculation unit 23 actually performs Taylor expansion to the order l 0 of the block diagonal matrix (nth order component) of each degree n constituting the rotation matrix R'(a ( ⁇ t )). , The approximate rotation matrix Rs'(a ( ⁇ t )) may be obtained.
  • the rotation matrix R'(a ( ⁇ t )) is represented by the sum of the matrices corresponding to the terms of each degree l in the Taylor expansion.
  • the sum of the matrices of each degree from order 0 to order l 0 of a plurality of matrices is an approximate rotation matrix Rs'(a ( ⁇ t )).
  • the rotation matrix calculation unit 23 uses the difference ⁇ t to approximate the rotation matrix Rs'(. Find a ( ⁇ t )).
  • step S136 the approximate rotation matrix Rs'(a ( ⁇ t )) obtained in step S134, and the rotation matrix R'(u ( ⁇ t )) and rotation matrix R'obtained in step S135. (u ( ⁇ t )) is combined to obtain the rotation matrix R'( ⁇ g t ).
  • the rotation operation that is, the amount of operation is limited by the order k.
  • the voice processing apparatus 11 obtains the rotation matrix R'( ⁇ g t ) using the approximate rotation matrix Rs'(a ( ⁇ t )), and obtains the rotation matrix R'( ⁇ g t ) and Find the current row vector H'(g t -1 , ⁇ ) based on the previous row vector H'(g t -1 , ⁇ ).
  • the error included in the row vector H'(g t -1 , ⁇ ) can be suppressed within the permissible range, and the sound can be reproduced with sufficient quality and more efficiently. Can be done.
  • the configuration of the voice processing device 11 is not limited to the configuration shown in FIG. 25, but may be the configuration shown in FIG. 27.
  • the same reference numerals are given to the portions corresponding to the cases in FIGS. 14 or 25, and the description thereof will be omitted as appropriate.
  • the voice processing device 11 shown in FIG. 27 includes a head rotation sensor unit 21, a digit determination unit 201, a previous direction holding unit 22, a rotation matrix calculation unit 23, a rotation calculation unit 24, a rotation coefficient holding unit 25, and a head related transfer function. It has a holding unit 26, a head-related transfer function synthesis unit 27, and a time-frequency inverse conversion unit 28.
  • the voice processing device 11 shown in FIG. 27 is provided with a new order determination unit 201, and the voice of FIG. 14 is supplied with a reset trigger from the order determination unit 201 to the rotation matrix calculation unit 23 and the rotation calculation unit 24. Unlike the processing device 11, it has the same configuration as the voice processing device 11 of FIG. 14 in other respects.
  • the order determination unit 201 uses the difference ⁇ t supplied from the rotation matrix calculation unit 23 or the head rotation information supplied from the head rotation sensor unit 21 and the supplied designated information. Based on this, the order k for limiting the rotation calculation is determined, and the determination result is supplied to the rotation matrix calculation unit 23. Further, the order determination unit 201 appropriately generates a reset trigger and supplies it to the rotation matrix calculation unit 23 and the rotation calculation unit 24.
  • step S161 Since the process of step S161 is the same as the process of step S131 of FIG. 26, the description thereof will be omitted. However, in step S161, the head rotation information obtained by the head rotation sensor unit 21 is supplied not only to the rotation matrix calculation unit 23 but also to the order determination unit 201.
  • step S162 the order determination unit 201 determines whether or not to perform reset based on the tolerance ⁇ 0 and the like indicated by the supplied designated information and the predetermined tolerance ⁇ max .
  • the digit determination unit 201 calculates equation (52) or equation (53) based on the tolerance ⁇ 0 or the like, and calculates the upper limit of the cumulative error sup ⁇ , in other words, the rotation calculation corresponding to the tolerance ⁇ 0 or the like.
  • the upper limit of the cumulative error tolerance is obtained, and if the upper limit of the calculated cumulative error sup ⁇ is larger than the tolerance ⁇ max , it is determined that the reset is performed. Note that this reset may be performed every order n, every order m, or every time frequency ⁇ , and when a drive signal is generated for each of a plurality of listeners, the reset is performed for each listener. It may be done.
  • step S162 When it is determined in step S162 that the reset is not performed, the order determination unit 201 turns off the reset trigger supplied to the rotation matrix calculation unit 23 and the rotation calculation unit 24, and then the processes of steps S163 to S168 are performed. ..
  • steps S163 to S168 are the same as the processes of steps S132 to S137 of FIG. 26, the description thereof will be omitted.
  • step S162 when it is determined in step S162 that the reset is to be performed, the order determination unit 201 turns on the reset trigger supplied to the rotation matrix calculation unit 23 and the rotation calculation unit 24, and then the processes of steps S169 and S170 are performed. Will be.
  • steps S169 and S170 are the same as the processes of steps S58 and S59 of FIG. 15, the description thereof will be omitted.
  • steps S92 to S94 of FIG. 22 may be performed instead of the processes of steps S169 and S170.
  • step S168 or step S170 the processing of step S171 and step S172 is performed thereafter to end the drive signal generation processing, but these processing are the processing of step S138 and step S139 of FIG. Since it is the same as the above, the description thereof will be omitted.
  • the speech processing device 11 obtains the row vector H'(g t -1 , ⁇ ) using the approximate rotation matrix Rs'(a ( ⁇ t )) while the cumulative error is small.
  • the reset trigger is turned on, the correct rotation matrix R'(g t ) and row vector H'(g t -1 , ⁇ ) are obtained and a drive signal is generated.
  • the error included in the row vector H'(g t -1 , ⁇ ) can be suppressed within an allowable range, and the sound can be reproduced with sufficient quality and more efficiently.
  • the tolerance ⁇ 0 and the tolerance ⁇ max may be determined for each time frequency ⁇ . That is, the order k may be determined for each time frequency ⁇ .
  • the row vector H'(g t -1 , ⁇ ) is obtained for W time frequencies ⁇ 1 to time frequency ⁇ W. That is, it is assumed that the row vector H'(g t -1 , ⁇ 1 ) to the row vector H'(g t -1 , ⁇ W ) can be obtained.
  • a small tolerance ⁇ 0 is set for a band (time frequency ⁇ ) that is important for sound image localization above and below, and conversely, it is relatively important.
  • a large tolerance ⁇ 0 can be set for non-bands (time frequency ⁇ ).
  • a small tolerance ⁇ 0 is set for the time frequency ⁇ corresponding to the band of 5 kHz to 13 kHz, and a large tolerance ⁇ 0 is set for the time frequency ⁇ corresponding to the band of 16 kHz or more. And so on. By doing so, it is possible to generate a drive signal that is audibly better even with the same amount of calculation.
  • each time frequency ⁇ is derived from the matrix H ( ⁇ ) consisting of the head-related transfer functions in the time-frequency domain and the matrix H'( ⁇ ) consisting of the head-related transfer functions in the spherical harmonic region.
  • the tolerance ⁇ 0 ( ⁇ ) for may be set.
  • the norm of the matrix H'( ⁇ ), that is, the row vector H'(g t -1 , ⁇ ) is calculated in advance, and the value of the obtained norm is large for a small time frequency ⁇ . set the error epsilon 0, it is conceivable to set a small tolerance epsilon 0 against the norm is greater temporal frequency ⁇ reversed.
  • the error shown in the equation (47) can be reduced in the band (time frequency ⁇ ) where the signal is larger, and the error in the entire signal can be expected to be reduced. This is useful, for example, when head-related transfer functions (HRTFs) are optimized and applied to individuals.
  • HRTFs head-related transfer functions
  • the tolerance ⁇ 0 and the tolerance ⁇ max are set according to the importance of the band with respect to the sound image localization above and below and before and after.
  • the method may be combined with a method of setting a tolerance ⁇ 0 or a tolerance ⁇ max according to the norm of the row vector H'(g t -1 , ⁇ ).
  • the tolerance ⁇ 0 (hereinafter, also referred to as the tolerance ⁇ n ) may be determined for each degree n of the spherical harmonics.
  • the head-related transfer function in the spherical harmonic region tends to have a smaller coefficient as the order increases. Accordingly, utilizing such tendencies, higher, and set the words greater degree n in greater tolerance epsilon n, lower order, by setting the allowable error epsilon n words in smaller degree n small, the overall signal error May be made smaller.
  • the tendency of the head-related transfer function in the spherical harmonic region is calculated in advance from the matrix H'( ⁇ ), that is, the row vector H'(g t -1 , ⁇ ), and is based on the calculation result. it may be set the tolerance epsilon n of each order n Te.
  • the norms can be obtained for the matrix H 0 ( ⁇ ) to the matrix H 3 ( ⁇ ) consisting of elements of each degree n, and the tolerance ⁇ 0 to the tolerance ⁇ 3 can be set based on those norms. Good.
  • the tolerance ⁇ 0 may be determined for each time frequency ⁇ for each degree n.
  • the headphone reproduction signal is wirelessly transmitted from the computer 1 or the like. If so, there may be a delay.
  • the amount of calculation by the computer 1 is not limited, it is considered that the correct rotation calculation is performed and the computer 2 mounted on the headphones performs the rotation ⁇ g for the delay.
  • the rotation calculation of the rotation ⁇ g for the delay can be performed by limiting the order.
  • the input signal vector D'(g, ⁇ ) whose rotation calculation has been performed by the computer 1 is transmitted to the headphones, and the rotation calculation in which the digits of the rotation ⁇ g are restricted by the computer 2 and the input signal D' (G, ⁇ ) and the head-related transfer function vector H'( ⁇ ) in the spherical harmonic region are combined to generate drive signals for the left and right headphones.
  • the series of processes described above can be executed by hardware or software.
  • the programs that make up the software are installed on the computer.
  • the computer includes a computer embedded in dedicated hardware and, for example, a general-purpose computer capable of executing various functions by installing various programs.
  • FIG. 31 is a block diagram showing a configuration example of computer hardware that executes the above-mentioned series of processes programmatically.
  • the CPU Central Processing Unit
  • the ROM ReadOnly Memory
  • the RAM RandomAccessMemory
  • An input / output interface 505 is further connected to the bus 504.
  • An input unit 506, an output unit 507, a recording unit 508, a communication unit 509, and a drive 510 are connected to the input / output interface 505.
  • the input unit 506 includes a keyboard, a mouse, a microphone, an image sensor, and the like.
  • the output unit 507 includes a display, a speaker array, and the like.
  • the recording unit 508 includes a hard disk, a non-volatile memory, and the like.
  • the communication unit 509 includes a network interface and the like.
  • the drive 510 drives a removable recording medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 501 loads the program recorded in the recording unit 508 into the RAM 503 via the input / output interface 505 and the bus 504 and executes the above-described series. Is processed.
  • the program executed by the computer (CPU 501) can be recorded and provided on a removable recording medium 511 as a package medium or the like, for example. Programs can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
  • the program can be installed in the recording unit 508 via the input / output interface 505 by mounting the removable recording medium 511 in the drive 510. Further, the program can be received by the communication unit 509 and installed in the recording unit 508 via a wired or wireless transmission medium. In addition, the program can be installed in advance in the ROM 502 or the recording unit 508.
  • the program executed by the computer may be a program that is processed in chronological order according to the order described in this specification, or may be a program that is processed in parallel or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • the embodiment of the present technology is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present technology.
  • this technology can have a cloud computing configuration in which one function is shared by a plurality of devices via a network and processed jointly.
  • each step described in the above flowchart can be executed by one device or can be shared and executed by a plurality of devices.
  • one step includes a plurality of processes
  • the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.
  • this technology can also have the following configurations.
  • a digit determination unit that determines the order for limiting the amount of operations related to the rotation matrix corresponding to the listener's head rotation, and A rotation calculation unit that rotates the head-related transfer function in the spherical harmonic region by the calculation in which the rotation matrix is restricted by the order.
  • a signal processing device including a compositing unit that generates a headphone drive signal by synthesizing the head-related transfer function after rotation obtained by the calculation and a sound signal in a spherical harmonic region.
  • the order determination unit obtains the order of Taylor expansion in which the cutoff error when the rotation matrix is Taylor-expanded is equal to or less than the tolerance corresponding to the tolerance, and determines the order based on the order of the Taylor expansion.
  • the rotation calculation unit performs an operation of rotating the head-related transfer function by the rotation matrix only for the elements of the order in a predetermined range as the calculation in which the rotation matrix is limited by the order (2) to (2).
  • the signal processing device uses the calculation result of the rotation calculation in the rotation direction at another time before the predetermined time to perform the rotation calculation at the predetermined time.
  • the signal processing device according to any one of (2) to (5), which obtains the head-related transfer function after the rotation at the predetermined time by performing a rotation calculation.
  • the rotation calculation unit rotates according to the difference between the rotation angle of the listener's head in the rotation direction at the predetermined time and the rotation angle of the listener's head in the rotation direction at the other time.
  • the signal processing apparatus which performs the rotation calculation in the rotation direction at a predetermined time based on the calculation result of the rotation calculation in the rotation direction at the matrix and the other time.
  • the signal processing device wherein the rotation calculation unit performs the rotation calculation only for the elements of the order in a predetermined range as the calculation in which the rotation matrix is limited by the order.
  • the rotation calculation unit performs the rotation calculation in the rotation direction at the predetermined time by using the calculation result of the rotation calculation in the rotation direction at the other time in the elevation angle direction as the rotation direction (8).
  • the signal processing apparatus which performs the rotation calculation in the rotation direction at a predetermined time based on the calculation result of the rotation calculation in the rotation direction at the matrix and the other time.
  • the rotation calculation unit When the rotation matrix is not reset, the rotation calculation in the rotation direction at the predetermined time is performed using the calculation result of the rotation calculation in the rotation direction at the other time.
  • the rotation matrix in the rotation direction of the listener's head at the predetermined time and the head transmission function according to the rotation angle of the listener's head at the predetermined time are used.
  • the signal processing device according to any one of (8) to (10), which performs a rotation calculation.
  • (12) The signal processing device according to (11), wherein the order determination unit performs the reset based on the upper limit of accumulation of the allowable value at each time.
  • (13) The signal processing apparatus according to (11) or (12), wherein the reset is performed every order, every order, or every time frequency.
  • the signal processing device according to any one of (11) to (13), wherein when the headphone drive signal is generated for each of a plurality of the listeners, the reset is performed for each of the listeners.
  • the rotation calculation unit limits the rotation matrix by the order.
  • the calculation for rotating the head transfer function is performed by using the sum of some of the above-mentioned matrices among the plurality of the above-mentioned matrices as a rotation matrix for rotating in the predetermined rotation direction (1) to.
  • the signal processing apparatus according to any one of (14).
  • the signal processing device Determine the order to limit the amount of calculation for the rotation matrix corresponding to the listener's head rotation, The head-related transfer function of the spherical harmonic region is rotated by the calculation in which the rotation matrix is restricted by the order.
  • (17) Determine the order to limit the amount of calculation for the rotation matrix corresponding to the listener's head rotation, The head-related transfer function of the spherical harmonic region is rotated by the calculation in which the rotation matrix is restricted by the order.
  • a program that causes a computer to execute a process including a step of generating a headphone drive signal by synthesizing the head-related transfer function after rotation obtained by the calculation and a sound signal in a spherical harmonic region.
  • 11 voice processing device 21 head rotation sensor unit, 22 previous direction holding unit, 23 rotation matrix calculation unit, 24 rotation calculation unit, 25 rotation coefficient holding unit, 26 head related transfer function holding unit, 27 head related transfer function synthesis unit , 28 time frequency inverse conversion unit, 201 digit determination unit

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Stereophonic System (AREA)

Abstract

本技術は、より効率よく音を再生することができるようにする信号処理装置および方法、並びにプログラムに関する。 信号処理装置は、聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定する位数決定部と、回転行列を位数で制限した演算により球面調和領域の頭部伝達関数を回転させる回転演算部と、その演算により得られた回転後の頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する合成部とを備える。本技術は音声処理装置に適用することができる。

Description

信号処理装置および方法、並びにプログラム
 本技術は、信号処理装置および方法、並びにプログラムに関し、特に、より効率よく音を再生することができるようにした信号処理装置および方法、並びにプログラムに関する。
 近年、音声の分野において全周囲からの空間情報を収録、伝送、および再生する系の開発や普及が進んできている。例えばスーパーハイビジョンにおいては22.2チャネルの3次元マルチチャネル音響での放送が計画されている。
 また、バーチャルリアリティの分野においても全周囲を取り囲む映像に加え、音声においても全周囲を取り囲む信号を再生するものが世の中に出回りつつある。
 その中でアンビソニックスと呼ばれる、任意の収録再生系に柔軟に対応可能な3次元音声情報の表現手法が存在し、注目されている。特に次数が2次以上となるアンビソニックスは高次アンビソニックス(HOA(Higher Order Ambisonics))と呼ばれている(例えば、非特許文献1参照)。
 3次元のマルチチャネル音響においては、音の情報は時間軸に加えて空間軸に広がっており、アンビソニックスでは3次元極座標の角度方向に関して周波数変換、すなわち球面調和関数変換を行って情報を保持している。球面調和関数変換は、音声信号の時間軸に対する時間周波数変換に相当するものと考えることができる。
 この方法の利点としては、マイクロホンの数やスピーカの数を限定せずに任意のマイクロホンアレイから任意のスピーカアレイに対して情報をエンコードおよびデコードすることができることにある。
 一方で、アンビソニックスの普及を妨げる要因としては、再生環境に大量のスピーカからなるスピーカアレイが必要とされることや、音空間が再現できる範囲(スイートスポット)が狭いことが挙げられる。
 例えば音の空間解像度を上げようとすると、より多くのスピーカからなるスピーカアレイが必要となるが、家庭などでそのようなシステムを作ることは非現実的である。また、映画館のような空間では音空間を再現できるエリアが狭く、全ての観客に対して所望の効果を与えることは困難である。
Jerome Daniel, Rozenn Nicol, Sebastien Moreau, "Further Investigations of High Order Ambisonics and Wavefield Synthesis for Holophonic Sound Imaging," AES 114th Convention, Amsterdam, Netherlands, 2003.
 そこで、アンビソニックスとバイノーラル再生技術とを組み合わせることが考えられる。バイノーラル再生技術は、一般に聴覚ディスプレイ(VAD(Virtual Auditory Display))と呼ばれており、頭部伝達関数(HRTF(Head-Related Transfer Function))が用いられて実現される。
 ここで、頭部伝達関数とは、人間の頭部を取り囲むあらゆる方向から両耳鼓膜までの音の伝わり方に関する情報を周波数と到来方向の関数として表現したものである。
 目的となる音声に対してある方向からの頭部伝達関数を合成したものをヘッドホンで提示した場合、聴取者にとってはヘッドホンからではなく、その用いた頭部伝達関数の方向から音が到来しているかのように知覚される。VADは、このような原理を利用したシステムである。
 VADを用いて仮想的なスピーカを複数再現すれば、現実には困難な多数のスピーカからなるスピーカアレイシステムでのアンビソニックスと同じ効果を、ヘッドホン提示で実現することが可能となる。
 しかしながら、このようなシステムでは、十分効率的に音を再生することができなかった。例えば、アンビソニックスとバイノーラル再生技術とを組み合わせた場合、頭部伝達関数の畳み込み演算等の演算量が多くなるだけでなく、演算等に用いるメモリの使用量も多くなってしまう。
 本技術は、このような状況に鑑みてなされたものであり、より効率よく音を再生することができるようにするものである。
 本技術の一側面の信号処理装置は、聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定する位数決定部と、前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させる回転演算部と、前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する合成部とを備える。
 本技術の一側面の信号処理方法またはプログラムは、聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定し、前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させ、前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成するステップを含む。
 本技術の一側面においては、聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数が決定され、前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数が回転され、前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とが合成されてヘッドホン駆動信号が生成される。
頭部伝達関数を用いた立体音響のシミュレートについて説明する図である。 第1の手法における駆動信号の算出について説明する図である。 ヘッドトラッキングを行う場合の駆動信号の算出について説明する図である。 第2の手法における駆動信号の算出について説明する図である。 第3の手法における駆動信号の算出について説明する図である。 演算量と必要メモリ量について説明する図である。 第4の手法における駆動信号の算出について説明する図である。 回転行列について説明する図である。 回転行列について説明する図である。 回転行列について説明する図である。 音声処理装置の構成例を示す図である。 仰角方向の差分について説明する図である。 駆動信号生成処理について説明するフローチャートである。 音声処理装置の構成例を示す図である。 駆動信号生成処理について説明するフローチャートである。 制御システムの構成例を示す図である。 リセットと演算量について説明する図である。 次数ごとのリセットについて説明する図である。 時間周波数ごとのリセットについて説明する図である。 制御システムの構成例を示す図である。 音声処理装置の構成例を示す図である。 駆動信号生成処理について説明するフローチャートである。 リセットのタイミングについて説明する図である。 リセットのタイミングについて説明する図である。 音声処理装置の構成例を示す図である。 駆動信号生成処理について説明するフローチャートである。 音声処理装置の構成例を示す図である。 駆動信号生成処理について説明するフローチャートである。 時間周波数ごとの許容誤差の設定について説明する図である。 次数に応じた許容誤差の設定について説明する図である。 コンピュータの構成例を示す図である。
 以下、図面を参照して、本技術を適用した実施の形態について説明する。
〈第1の実施の形態〉
〈第1の手法について〉
 本技術は、微小な回転の積み重ねを利用して、頭部の回転に応じた球面調和領域における頭部伝達関数を求め、球面調和領域で頭部伝達関数と再生する音の入力信号とを合成することで、演算量やメモリ使用量においてより効率のよい再生系を実現するものである。
 例えば、球座標上での関数f(θ,φ)に対しての球面調和関数変換は、次式(1)で表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)においてθおよびφは、それぞれ球座標における仰角および水平角を示しており、Yn m(θ,φ)は球面調和関数を示している。また、球面調和関数Yn m(θ,φ)上部に「-」が記されているものは、球面調和関数Yn m(θ,φ)の複素共役を表している。
 ここで球面調和関数Yn m(θ,φ)は、次式(2)により表される。
Figure JPOXMLDOC01-appb-M000002
 式(2)においてnおよびmは球面調和関数Yn m(θ,φ)の次数および位数を示しており、-n≦m≦nである。位数mはorderやperiodなどとも呼ばれており、以下では、nおよびmを特に区別する必要のないときには、次数nと位数mをあわせて次数とも称することとする。
 また、式(2)においてiは純虚数を示しており、Pn m(x)はルジャンドル陪関数である。
 このルジャンドル陪関数Pn m(x)は、n≧0および0≦m≦nであるときには、以下の式(3)または式(4)により表される。なお、式(3)はm=0における場合である。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 また、-n≦m≦0である場合、ルジャンドル陪関数Pn m(x)は以下の式(5)により表される。
Figure JPOXMLDOC01-appb-M000005
 さらに、球面調和関数変換された関数Fn mから球座標上の関数f(θ,φ)への逆変換は次式(6)に示すようになる。
Figure JPOXMLDOC01-appb-M000006
 以上のことから球面調和領域で保持される、半径方向の補正を行った後の音の入力信号D’n m(ω)から、半径Rの球面上に配置されたL個の各スピーカのスピーカ駆動信号S(xi,ω)への変換は、次式(7)に示すようになる。
Figure JPOXMLDOC01-appb-M000007
 なお、式(7)においてxiはスピーカの位置を示しており、ωは音の信号の時間周波数を示している。入力信号D’n m(ω)は、所定の時間周波数ωについての球面調和関数の各次数nおよび位数mに対応する音の信号である。
 また、xi=(Rsinθicosφi,Rsinθisinφi,Rcosθi)であり、iはスピーカを特定するスピーカインデックスを示している。ここで、i=1,2,…,Lであり、θiおよびφiはそれぞれi番目のスピーカの位置を示す仰角および水平角を表している。
 このような式(7)により示される変換は、式(6)に対応する球面調和逆変換である。また、式(7)によりスピーカ駆動信号S(xi,ω)を求める場合、再現スピーカの数であるスピーカ数Lと、球面調和関数の次数N、つまり次数nの最大値Nとは次式(8)に示す関係を満たす必要がある。
Figure JPOXMLDOC01-appb-M000008
 ところで、ヘッドホン提示により耳元で立体音響をシミュレートする手法として一般的なものは、例えば図1に示すように頭部伝達関数を用いた方法である。
 図1に示す例では、入力されたアンビソニックス信号がデコードされて、複数の仮想的なスピーカである仮想スピーカSP11-1乃至仮想スピーカSP11-8のそれぞれのスピーカ駆動信号が生成される。このときデコードされる信号は、例えば上述した入力信号D’n m(ω)に対応する。
 ここでは、各仮想スピーカSP11-1乃至仮想スピーカSP11-8が環状に並べられて仮想的に配置されており、各仮想スピーカのスピーカ駆動信号は、上述した式(7)の計算により求められる。なお、以下、仮想スピーカSP11-1乃至仮想スピーカSP11-8を特に区別する必要のない場合、単に仮想スピーカSP11とも称することとする。
 このようにして各仮想スピーカSP11のスピーカ駆動信号が得られると、それらの仮想スピーカSP11ごとに、実際に音を再生するヘッドホンHD11の左右の駆動信号(バイノーラル信号)が頭部伝達関数を用いた畳み込み演算により生成される。そして、仮想スピーカSP11ごとに得られたヘッドホンHD11の各駆動信号の和が最終的な駆動信号とされる。
 なお、このような手法は、例えば「ADVANCED SYSTEM OPTIONS FOR BINAURAL RENDERING OF AMBISONIC FORMAT(Gerald Enzner et. al. ICASSP 2013)」などに詳細に記載されている。
 ヘッドホンHD11の左右の駆動信号の生成に用いられる頭部伝達関数H(x,ω)は、自由空間内において聴取者であるユーザの頭部が存在する状態での音源位置xから、ユーザの鼓膜位置までの伝達特性H1(x,ω)を、頭部が存在しない状態での音源位置xから頭部中心Oまでの伝達特性H0(x,ω)で正規化したものである。すなわち、音源位置xについての頭部伝達関数H(x,ω)は、次式(9)により得られるものである。
Figure JPOXMLDOC01-appb-M000009
 ここで、頭部伝達関数H(x,ω)を任意の音声信号に畳み込み、ヘッドホンなどにより提示することで、聴取者に対してあたかも畳み込んだ頭部伝達関数H(x,ω)の方向、つまり音源位置xの方向から音が聞こえてくるかのような錯覚を与えることができる。
 図1に示した例では、このような原理が用いられてヘッドホンHD11の左右の駆動信号が生成される。
 具体的には各仮想スピーカSP11の位置を位置xiとし、それらの仮想スピーカSP11のスピーカ駆動信号をS(xi,ω)とする。
 また、仮想スピーカSP11の数をL(ここではL=8)とし、ヘッドホンHD11の最終的な左右の駆動信号を、それぞれPlおよびPrとする。
 この場合、スピーカ駆動信号S(xi,ω)をヘッドホンHD11提示でシミュレートすると、ヘッドホンHD11の左右の駆動信号Plおよび駆動信号Prは、次式(10)を計算することにより求めることができる。
Figure JPOXMLDOC01-appb-M000010
 なお、式(10)において、Hl(xi,ω)およびHr(xi,ω)は、それぞれ仮想スピーカSP11の位置xiから聴取者の左右の鼓膜位置までの正規化された頭部伝達関数を示している。
 このような演算により、球面調和領域の入力信号D’n m(ω)を、最終的にヘッドホン提示で再生することが可能となる。すなわち、アンビソニックスと同じ効果をヘッドホン提示で実現することが可能となる。
 なお、以下では、時間周波数ωについての駆動信号Plおよび駆動信号Prを特に区別する必要のない場合、単に駆動信号P(ω)とも称する。また、以下、頭部伝達関数Hl(xi,ω)および頭部伝達関数Hr(xi,ω)を特に区別する必要のない場合、単に頭部伝達関数H(xi,ω)とも称することとする。
 さらに、以下では、以上において説明したアンビソニックスとバイノーラル再生技術とを組み合わせる手法を第1の手法とも称することとする。
 第1の手法では、1×1、つまり1行1列の駆動信号P(ω)を得るために、例えば図2に示す演算が行われる。
 図2では、H(ω)は、L個の頭部伝達関数H(xi,ω)からなる1×Lのベクトル(行列)を表している。また、D’(ω)は入力信号D’n m(ω)からなるベクトルを表しており、同じ時間周波数ωのビンの入力信号D’n m(ω)の数をKとすると、ベクトルD’(ω)はK×1となる。さらにY(x)は、各次数の球面調和関数Yn mii)からなる行列を表しており、行列Y(x)はL×Kの行列となる。
 したがって、第1の手法では、L×Kの行列Y(x)とK×1のベクトルD’(ω)との行列演算から得られる行列(ベクトル)Sが求められ、さらに行列Sと1×Lのベクトル(行列)H(ω)との行列演算が行われて、1つの駆動信号P(ω)が得られることになる。
 また、ヘッドホンHD11を装着した聴取者の頭部が回転行列gjにより表される所定方向(以下、方向gjとも称する)へと回転した場合、例えばヘッドホンHD11の左ヘッドホンの駆動信号Pl(gj,ω)は、次式(11)に示すようになる。
Figure JPOXMLDOC01-appb-M000011
 なお、回転行列gjは、オイラー角の回転角であるα、β、およびγにより表される3次元、すなわち3×3の回転行列である。また、式(11)において、駆動信号Pl(gj,ω)は上述した駆動信号Plを示しており、ここでは位置、つまり方向gjと時間周波数ωを明確にするために駆動信号Pl(gj,ω)と記されている。
 この場合、何らかのセンサにより聴取者の頭部の回転方向、つまり聴取者の頭部の方向gjを取得し、複数の頭部伝達関数のうち、聴取者の頭部からみた各仮想スピーカSP11の相対的な方向gj -1xiの頭部伝達関数を用いてヘッドホンHD11の左右の駆動信号を算出すればよい。これにより、実スピーカを用いた場合と同様に、ヘッドホンHD11により音を再生する場合においても、聴取者から見た音像位置を空間内で固定することができる。
〈第2の手法について〉
 また、第1の手法においては時間周波数領域にて行われていた頭部伝達関数の畳み込みを、球面調和領域において行うようにしてもよい。このようにすることで、第1の手法よりも演算量や必要なメモリ量を低減させ、より効率よく音を再生することができるようになる。このような球面調和領域において頭部伝達関数の畳み込みを行う手法を第2の手法とも称し、以下、この第2の手法について説明する。
 例えば左ヘッドホンに注目すると、聴取者であるユーザ(リスナ)の頭部の全回転方向に対する左ヘッドホンの各駆動信号Pl(gj,ω)からなるベクトルPl(ω)は、次式(12)に示すように表される。
Figure JPOXMLDOC01-appb-M000012
 なお、式(12)において、S(ω)はスピーカ駆動信号S(xi,ω)からなるベクトルであり、S(ω)=Y(x)D’(ω)である。また、式(12)においてY(x)は以下の式(13)により示される、各次数および各仮想スピーカの位置xiの球面調和関数Yn m(xi)からなる行列を表している。ここで、i=1,2,…,Lであり、次数nの最大値(最大次数)はNである。
 D’(ω)は以下の式(14)により示される、各次数に対応する音の入力信号D’n m(ω)からなるベクトル(行列)を表している。各入力信号D’n m(ω)は球面調和領域の音の信号である。
 さらに、式(12)において、H(ω)は、以下の式(15)により示される、聴取者の頭部の方向が方向gjである場合における、聴取者の頭部からみた各仮想スピーカの相対的な方向gj -1xiの頭部伝達関数H(gj -1xi,ω)からなる行列を表している。この例では、方向g1乃至方向gMの合計M個の各方向について、各仮想スピーカの頭部伝達関数H(gj -1xi,ω)が用意されている。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
 聴取者の頭部が方向gjを向いているときの左ヘッドホンの駆動信号Pl(gj,ω)の算出にあたっては、頭部伝達関数の行列H(ω)のうち、聴取者の頭部の向きである方向gjに対応する行、つまりその方向gjについての頭部伝達関数H(gj -1xi,ω)からなる行を選択して式(12)の計算を行なえばよい。
 この場合、例えば図3に示すように必要な行のみ計算が行われる。
 この例では、M個の各方向について頭部伝達関数が用意されているので、式(12)に示した行列計算は、矢印A11に示すようになる。
 すなわち、時間周波数ωの入力信号D’n m(ω)の数をKとすると、ベクトルD’(ω)はK×1、つまりK行1列の行列となる。また、球面調和関数の行列Y(x)はL×Kとなり、行列H(ω)はM×Lとなる。したがって、式(12)の計算では、ベクトルPl(ω)はM×1となる。
 ここで、オンラインでの演算で、まず行列Y(x)とベクトルD’(ω)との行列演算(積和演算)を行ってベクトルS(ω)を求めれば、駆動信号Pl(gj,ω)の算出時には、矢印A12に示すように行列H(ω)のうち、聴取者の頭部の方向gjに対応する行を選択し、演算量を削減することができる。図3では、行列H(ω)における斜線の施された部分が、方向gjに対応する行を表しており、この行とベクトルS(ω)との演算が行われ、左ヘッドホンの所望の駆動信号Pl(gj,ω)が算出される。
 ここで、次式(16)に示すように行列H’(ω)を定義すると、式(12)に示したベクトルPl(ω)は以下の式(17)で表すことができる。
Figure JPOXMLDOC01-appb-M000016
Figure JPOXMLDOC01-appb-M000017
 式(16)では、球面調和関数を用いた球面調和関数変換によって頭部伝達関数、より詳細には時間周波数領域の頭部伝達関数からなる行列H(ω)が球面調和領域の頭部伝達関数からなる行列H’(ω)へと変換されている。
 したがって、式(17)の計算では、球面調和領域においてスピーカ駆動信号と頭部伝達関数の畳み込みが行われることになる。換言すれば、球面調和領域において頭部伝達関数と入力信号の積和演算が行われることになる。なお、行列H’(ω)は事前に計算して保持しておくことが可能である。
 この場合、聴取者の頭部が方向gjを向いているときの左ヘッドホンの駆動信号Pl(gj,ω)の算出にあたっては、予め保持されている行列H’(ω)のうち、聴取者の頭部の方向gjに対応する行を選択して式(17)の計算を行なえばよいことになる。
 このような場合、式(17)の計算は、次式(18)に示す計算となる。これにより、大幅に演算量および必要メモリ量を削減することができる。
Figure JPOXMLDOC01-appb-M000018
 式(18)において、H’n m(gj,ω)は行列H’(ω)の1つの要素、つまり行列H’(ω)における頭部の方向gjに対応する成分(要素)となる球面調和領域の頭部伝達関数を示している。頭部伝達関数H’n m(gj,ω)におけるnおよびmは、球面調和関数の次数nおよび位数mを示している。
 このような式(18)に示す演算では、図4に示すように演算量が削減されている。すなわち、式(12)に示した計算は、図4の矢印A21に示すようにM×Lの行列H(ω)、L×Kの行列Y(x)、およびK×1のベクトルD’(ω)の積を求める計算となっている。
 ここで、式(16)で定義したようにH(ω)Y(x)が行列H’(ω)であるから、矢印A21に示した計算は、結局、矢印A22に示すようになる。特に、行列H’(ω)を求める計算は、オフラインで、つまり事前に行うことが可能であるので、行列H’(ω)を予め求めて保持しておけば、その分だけオンラインでヘッドホンの駆動信号を求めるときの演算量を削減することが可能である。
 このように予め行列H’(ω)が求められると、実際にヘッドホンの駆動信号を求めるときには、矢印A22に示す計算、つまり上述した式(18)の計算が行われることになる。
 すなわち、矢印A22に示すように行列H’(ω)のうち、聴取者の頭部の方向gjに対応する行が選択されて、その選択された行と、入力された入力信号D’n m(ω)からなるベクトルD’(ω)との行列演算により、左ヘッドホンの駆動信号Pl(gj,ω)が算出される。図4では、行列H’(ω)における斜線の施された部分が、方向gjに対応する行を表しており、この行を構成する要素が式(18)に示した頭部伝達関数H’n m(gj,ω)となる。
〈第3の手法について〉
 ところで、以上において説明した第2の手法では、演算量や必要となるメモリ量を大幅に削減可能である一方で、頭部伝達関数の行列H’(ω)として、聴取者の全ての頭部の回転方向、つまり各方向gjに対応する行をメモリ上に保持しておく必要がある。
 そこで、1つの方向gjについての球面調和領域の頭部伝達関数からなる行列(行ベクトル)をHS(ω)=H’(gj)として、行列H’(ω)の1つの方向gjに対応する行である行ベクトルHS(ω)のみを保持するようにし、球面調和領域において聴取者の頭部回転に対応する回転を行う回転行列R’(gj)を複数の各方向gjの数だけ保持するようにしてもよい。以下では、そのような手法を第3の手法と称することとする。
 各方向gjの回転行列R’(gj)は、行列H’(ω)とは異なり、時間周波数依存性がない。そのため、第3の手法では、頭部の回転の方向gjの成分を行列H’(ω)に持たせるよりも大幅にメモリ量を削減することができる。
 まず、次式(19)に示すように、行列H(ω)の所定の方向gjに対応する行H(gj -1x,ω)と、球面調和関数の行列Y(x)との積H’(gj -1,ω)を考える。
Figure JPOXMLDOC01-appb-M000019
 上述した第2の手法では、聴取者の頭部の回転の方向gjに対して使用する頭部伝達関数の座標をxからgj -1xに回転させていたが、頭部伝達関数の位置xの座標は変更せずに、球面調和関数の座標をxからgjxに回転しても同じ結果が得られる。すなわち、以下の式(20)が成立する。
Figure JPOXMLDOC01-appb-M000020
 さらに、球面調和関数の行列Y(gjx)は行列Y(x)と回転行列R’(gj -1)の積であり、次式(21)に示すようになる。なお、回転行列R’(gj -1)は、球面調和領域において座標をgjだけ回転させる行列である。
Figure JPOXMLDOC01-appb-M000021
 ここで、以下の式(22)に示す集合Qについて、回転行列R’(gj)のうちの(n2+n+1+k), (n2+n+1+m)∈Qとなる(n2+n+1+k)行(n2+n+1+m)列にある要素以外の要素はゼロとなる。
Figure JPOXMLDOC01-appb-M000022
 したがって、行列Y(gjx)の要素となる球面調和関数Yn m(gjx)は、回転行列R’(gj)の(n2+n+1+k)行(n2+n+1+m)列の要素R’(n) k,m(gj)を用いて次式(23)のように表すことができる。
Figure JPOXMLDOC01-appb-M000023
 ここで、要素R’(n) k,m(gj)は、次式(24)により表されるものである。
Figure JPOXMLDOC01-appb-M000024
 なお、式(24)においてiは純虚数を示しており、β、α、およびγは回転行列のオイラー角の回転角を示しており、r(n) k,m(β)は次式(25)に示されるものである。
Figure JPOXMLDOC01-appb-M000025
 以上のことから、回転行列R’(gj -1)を用いて聴取者の頭部の回転を反映させたバイノーラル再生信号、例えば左ヘッドホンの駆動信号Pl(gj,ω)は、次式(26)を計算することにより得られることになる。また、左右の頭部伝達関数を対称とみなしてよい場合は、式(26)の前処理として入力信号の行列D’(ω)または左の頭部伝達関数の行ベクトルHS(ω)の何れかを左右反転させるような行列Rrefを用いて反転させることで、左の頭部伝達関数の行ベクトルHS(ω)のみを保持するだけで右のヘッドホン駆動信号を得ることができる。ただし、以下では基本的には左右別々の頭部伝達関数が必要な場合について述べることとする。
Figure JPOXMLDOC01-appb-M000026
 式(26)では、行ベクトルHS(ω)、回転行列R’(gj -1)、およびベクトルD’(ω)を合成することで、駆動信号Pl(gj,ω)が求められている。
 以上のような計算は、例えば図5に示す計算となる。すなわち、左ヘッドホンの駆動信号Pl(gj,ω)からなるベクトルPl(ω)は、図5の矢印A41に示すように、M×Lの行列H(ω)と、L×Kの行列Y(x)と、K×1のベクトルD’(ω)との積により求まる。この行列演算は、上述した式(12)に示した通りである。
 この演算をM個の各方向gjについて用意した球面調和関数の行列Y(gjx)を用いて表すと、矢印A42に示すようになる。つまり、M個の各方向gjに対応する駆動信号Pl(gj,ω)からなるベクトルPl(ω)は、式(20)に示した関係から、行列H(ω)の所定の行H(x,ω)と、行列Y(gjx)と、ベクトルD’(ω)との積により求まる。
 ここで、ベクトルである行H(x,ω)は1×Lであり、行列Y(gjx)はL×Kであり、ベクトルD’(ω)はK×1である。これを、さらに式(17)および式(21)に示した関係を利用して変形すると、矢印A43に示すようになる。すなわち、式(26)に示したように、ベクトルPl(ω)は、1×Kの行ベクトルHS(ω)と、M個の各方向gjのK×Kの回転行列R’(gj -1)と、K×1のベクトルD’(ω)との積により求まる。
 なお、図5では、回転行列R’(gj -1)の斜線が施された部分が回転行列R’(gj -1)のゼロでない要素を表している。
 また、このような第3の手法における演算量と必要なメモリ量は図6に示すようになる。
 すなわち、図6に示すように各時間周波数ビンωごとに1×Kの行ベクトルHS(ω)が用意され、M個の方向gjについてK×Kの回転行列R’(gj -1)が用意され、ベクトルD’(ω)がK×1であるとする。また、時間周波数ビンωの数がWであり、球面調和関数の次数nの最大値、つまり最大の次数がJであるとする。
 このとき、回転行列R’(gj -1)のゼロでない要素の数は(J+1)(2J+1)(2J+3)/3であるから、第3の手法における各時間周波数ビンω当たりの積和演算回数の合計calc/Wは、次式(27)に示すようになる。
Figure JPOXMLDOC01-appb-M000027
 また、第3の手法による演算には、各時間周波数ビンωについての1×Kの行ベクトルHS(ω)を左右の耳について保持しておく必要があり、さらにM個の各方向の分だけ回転行列R’(gj -1)のゼロでない要素を保持しておく必要がある。したがって、第3の手法による演算に必要となるメモリ量memoryは次式(28)に示すようになる。
Figure JPOXMLDOC01-appb-M000028
 第3の手法では、回転行列R’(gj -1)のゼロでない要素の数を保持しておくことで、第2の手法よりも必要なメモリ量を大幅に削減することができる。
〈第4の手法について〉
 なお、第3の手法では、聴取者の頭部の3軸の回転の分だけ、つまり任意のM個の各方向gjの分だけ回転行列R’(gj -1)を保持しておく必要がある。このような回転行列R’(gj -1)を保持することは、時間周波数依存性のある行列H’(ω)を保持しておくよりは少ないにせよ、それなりにメモリ量が必要となる。
 そこで、演算時に逐次、聴取者の頭部を回転中心として球面調和領域での回転を行う回転行列R’(gj -1)を求めるようにしてもよい。以下、このような手法を第4の手法とも称することとする。
 ここで、回転行列R’(g)は以下の式(29)のように表すことができる。また、式(29)におけるgは回転行列であり、以下の式(30)に示すように行列u(α)、行列a(β)、および行列u(γ)の積により表される。
Figure JPOXMLDOC01-appb-M000029
Figure JPOXMLDOC01-appb-M000030
 なお、式(29)において、a(β)およびu(α)は、聴取者の頭部の位置が原点である座標系の座標軸を回転軸として座標を角度βおよび角度αだけ回転させる回転行列である。また、u(γ)はu(α)と回転角度が異なるだけで、同じ座標軸を回転軸として座標を角度γだけ回転させる回転行列である。なお、各行列u(α)、行列a(β)、および行列u(γ)の回転角度、つまり角度α、角度β、および角度γは、オイラー角である。
 例えば聴取者の頭部の位置を原点とし、互いに直交するx軸、y軸、およびz軸を各軸とする直交座標系があるとする。ここで、x軸の正の方向は聴取者が真正面を向いている状態における、その真正面の方向であり、z軸は真正面を向いている聴取者から見て上下方向、つまり鉛直方向の軸である。角度α、角度β、および角度γは、聴取者が真正面、つまりx軸の正の方向を向いている状態を基準とした各回転方向への回転角度である。
 具体的には、聴取者が真正面を見ている状態で、y軸を回転軸として上下方向に頭部を動かしたときの頭部の回転角度が仰角である角度βである。さらに、聴取者が真正面を向いている状態で、z軸を回転軸として、聴取者から見て頭部を水平方向に動かしたときの頭部の回転角度が水平角である角度αである。
 行列a(β)は、y軸を回転軸として角度βだけ座標(座標系)を回転させる回転行列であり、行列u(α)はz軸を回転軸として角度αだけ座標(座標系)を回転させる回転行列である。具体的には、これらの行列a(β)および行列u(α)は、それぞれ以下の式(31)および式(32)に示す通りである。
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000032
 したがって、例えば聴取者の頭部の位置を原点とする座標系における任意の位置v=(vx,vy,vzTに対して行列a(β)を作用させると、位置vに対してy軸を回転軸とした回転を与えることができ、位置vの回転後の位置v2は以下の式(33)により表される。
 同様に、位置vに対して行列u(α)を作用させると、位置vに対してz軸を回転軸とした回転を与えることができ、位置vの回転後の位置v3は、以下の式(34)により表される。
Figure JPOXMLDOC01-appb-M000033
Figure JPOXMLDOC01-appb-M000034
 したがって、回転行列R’(g)=R’(u(α)a(β)u(γ))は、球面調和領域において、座標系を水平角方向に角度αだけ回転させた後、角度αの回転後の座標系を、その座標系から見て仰角方向に角度βだけ回転させ、さらに角度βの回転後の座標系を、その座標系から見て水平角方向に角度γだけ回転させる回転行列である。
 また、R’(u(α))、R’(a(β))、およびR’(u(γ))は、行列u(α)、行列a(β)、および行列u(γ)のそれぞれにより回転される分だけ、座標を回転させるときの回転行列R’(g)を示している。
 換言すれば、回転行列R’(u(α))は、球面調和領域において座標を水平角方向に角度αだけ回転させる回転行列であり、回転行列R’(a(β))は、球面調和領域において座標を仰角方向に角度βだけ回転させる回転行列である。また、回転行列R’(u(γ))は、球面調和領域において座標を水平角方向に角度γだけ回転させる回転行列である。
 したがって、例えば図7の矢印A51に示すように角度α、角度β、および角度γを回転角度として座標を3度回転させる回転行列R’(g)=R’(u(α)a(β)u(γ))は、3個の回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))の積で表すことができる。
 この場合、回転行列R’(gj -1)を得るためのデータとして、各回転角度α、β、およびγの値ごとの回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))のそれぞれをテーブルでメモリに保持しておけばよいことになる。また、左右で同じ頭部伝達関数を用いてよい場合、行ベクトルHS(ω)を片耳分のみ保持し、前述の左右を反転させる行列Rrefに関しても事前に保持して、これと生成された回転行列との積を求めることで逆の耳に対する回転行列を得ることができる。
 また、実際にベクトルPl(ω)を算出する際には、テーブルから読み出された各回転行列の積を計算することで1つの回転行列R’(gj -1)が算出される。そして、矢印A52に示すように時間周波数ビンωごとに、1×Kの行ベクトルHS(ω)と、全時間周波数ビンωで共通するK×Kの回転行列R’(gj -1)と、K×1のベクトルD’(ω)との積が計算されて、ベクトルPl(ω)が求められる。
 ここで、例えば各回転角度の回転行列R’(gj -1)そのものをテーブルに保持しておく場合、各回転の角度α、角度β、および角度γの精度を1度(1°)とすると、3603=46656000個の回転行列R’(gj -1)を保持しておく必要がある。
 これに対して、各回転の角度α、角度β、および角度γの精度を1度(1°)として、各回転角度の回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))をテーブルに保持しておく場合、360×3=1080個の回転行列を保持しておくだけでよい。
 したがって、回転行列R’(gj -1)そのものを保持しておくときにはO(n3)のオーダーのデータを保持しておく必要があったのに対して、回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))を保持しておくときにはO(n)のオーダーのデータで済み、大幅にメモリ量を削減することができる。
 しかも矢印A51に示すように回転行列R’(u(α))および回転行列R’(u(γ))は対角行列であるから、対角成分のみ保持しておけばよい。
 また、回転行列R’(u(α))および回転行列R’(u(γ))はともに水平角方向への回転を行う回転行列であるから、回転行列R’(u(α))と回転行列R’(u(γ))は共通の同じテーブルから得ることができる。つまり、回転行列R’(u(α))のテーブルと回転行列R’(u(γ))のテーブルは同じものとすることができる。
 なお、図7では、各回転行列のハッチが施された部分がゼロでない要素を表している。
 さらに、上述した式(22)に示す集合Qに(n2+n+1+k)と(n2+n+1+m)が属すときのkとmについて、回転行列R’(a(β))の要素のうちの(n2+n+1+k)行(n2+n+1+m)列以外の要素はゼロとなるため、回転行列R’(a(β))としてゼロ以外の要素のみを保持しておけばよく、メモリ量を削減することができる。
 以上のことから、回転行列R’(gj -1)を得るためのデータを保持するのに必要となるメモリ量をさらに削減することができる。
 具体的には、例えば回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))を、それぞれΦ個、Θ個、およびΨ個だけ保持するとすると、頭部の回転の方向gjの数Mは、M=Φ×Θ×Ψとなる。
 第4の手法では回転行列R’(a(β))については角度βの精度の分だけ、つまりΘ個だけ回転行列を保持しておくので、回転行列R’(a(β))の保持に必要なメモリ量はmemory(a)=Θ×(J+1)(2J+1)(2J+3)/3となる。
 また、回転行列R’(u(α))および回転行列R’(u(γ))については、共通のテーブルを用いることができ、角度αと角度γの精度が同じであるとすると、角度αの分だけ、つまりΦ個だけ回転行列を保持しておくけばよく、またそれらの回転行列の対角成分のみ保持しておけばよい。したがって、ベクトルD’(ω)の長さをKとすると、回転行列R’(u(α))および回転行列R’(u(γ))の保持に必要なメモリ量はmemory(b)=Φ×Kとなる。
 さらに、各時間周波数ビンωの個数をWとすると、左右の耳について1×Kの行ベクトルHS(ω)を各時間周波数ビンωの分だけ保持しておくのに必要なメモリ量は2×K×Wとなる。
 したがって、これらを合計すると、第4の手法で必要なメモリ量は、memory=memory(a)+memory(b)+2KWとなる。
 このような第4の手法は、第3の手法と同程度の演算量で大幅に必要なメモリ量を削減可能である。特に第4の手法は、ヘッドトラッキング機能を実現する場合に、より実用に耐え得るように、例えば角度α、角度β、および角度γの精度を1度(1°)などとしたときに、より効果を発揮する。
〈第5の手法について〉
 ところで、第4の手法では3軸に対する回転を例えば1度刻みごとに持つことで、つまり角度α、角度β、および角度γの精度を1度(1°)とすることで、保持しておく回転行列の数を1080個にまで減らすことができた。
 しかし、第4の手法では、演算量の面では球面調和関数の次数nの最大の次数Jに関して3乗のオーダーまでしか減らすことができない。
 その理由は、聴取者(ユーザ)の頭部の回転に対する追従を行うための回転行列R’(a(β))が、例えば図8に示すようにブロック対角行列になっているからである。
 なお、図8において横軸は回転行列R’(a(β))の列の成分を示しており、縦軸は回転行列R’(a(β))の行の成分を示している。また、図8において、回転行列R’(a(β))の各位置における濃淡は、それらの位置に対応する回転行列R’(a(β))の要素のレベル(dB)を示している。
 図8は、回転角度βが1度であるときの回転行列R’(a(β))を示している。この例では、回転行列R’(a(β))のうち、例えば-400dB以上の値を持つ要素に注目すると、そのような値を持つ要素からなる部分が次数nに対して(2n+1)×(2n+1)の大きさのブロックとなっている。例えば矢印A71に示す正方形の部分が、ブロック対角行列の1つのブロックの部分となっており、そのブロックの幅(太さ)W11は2n+1となっている。つまり、矢印A71に示す正方形の部分では、行方向に(2n+1)個の要素が並んでおり、列方向にも(2n+1)個の要素が並んでいる。
 このようなブロック対角行列である回転行列R’(a(β))を用いると、ある程度は演算量を低減させることができるが、さらに演算量を低減することができれば、より迅速に効率よく駆動信号を得ることができる。
 そこで、第5の手法では、微小な回転に対する回転行列の特徴に注目し、その微小な回転の累積によって聴取者(ユーザ)の頭部の回転に対する追従を行うことで演算量を次数Jに関して2乗のオーダーまで低減させることができるようにした。
 以下、第5の手法について具体的に説明する。
 聴取者の頭部の3軸の回転、すなわち、回転行列R’(u(α))、回転行列R’(a(β))、および回転行列R’(u(γ))のうち、ブロック対角行列となっているものは回転行列R’(a(β))のみであり、他の回転行列R’(u(α))と回転行列R’(u(γ))は完全な対角行列である。
 但し、回転軸の選び方によっては、2つ以上の回転行列がブロック対角行列となる場合もある。本明細書の例においては、2つ以上の回転行列がブロック対角行列となるような回転軸は用いないが、2つ以上の回転行列がブロック対角行列となる場合においても本技術を適用することが可能である。
 聴取者が上下方向(鉛直方向)、つまり仰角方向において正面の方向を向いているときの角度βを0度であるとする。
 角度βが0度である状態から、聴取者が上方向(z軸の正の方向)に+1度だけ頭部を動かしたとき、つまりy軸を回転軸としてz軸の正の方向に+1度だけ頭部を回転させたとき、角度βは1度となる。
 このように角度βが1度であるときの回転行列R’(a(β))は、上述したように図8に示したようになる。
 図8に示した例では、回転行列R’(a(β))はブロック対角行列となっており、そのブロック対角行列の各ブロックの部分は、各次数nに対して1辺が(2n+1)個の要素からなる正方形となっていることが分かる。同時に回転行列R’(a(β))と、対角行列である回転行列R’(u(α))と、対角行列である回転行列R’(u(γ))との合成である回転行列R’(g)も同様のブロック対角行列となる。ここで、方向gjは離散値であっても連続値であっても構わないため、以下ではgjを単にgとも記すこととする。
 いま、ブロック対角行列である回転行列R’(g)の1つのブロック、つまりある次数nに対して、球面調和領域の頭部伝達関数を回転させると、その回転後の頭部伝達関数H’n m(g-1)は、次式(35)に示すようになる。すなわち、回転行列R’(g)の次数nのブロックの部分を用いて、球面調和領域の頭部伝達関数を、方向gの角度分だけ回転させると、回転後の頭部伝達関数H’n m(g-1)は次式(35)に示すようになる。
Figure JPOXMLDOC01-appb-M000035
 なお、式(35)において、kは回転前の位数を示しており、mは回転後の位数を示している。また、H’n kは行ベクトルHS(ω)における次数nおよび位数kの要素を示している。
 このような式(35)の計算から、1つの回転後の位数mの要素を求めるために、(2n+1)個すべての要素R’(n) k,m(g)が使われていることが分かる。
 しかしながら、角度β=1度であるときなど、角度βが微小であるときの回転では、ブロック対角行列である回転行列R’(a(β))の各要素のうちの殆どの要素は微小な値となっている。したがって、回転行列R’(g)の各要素R’(n) k,m(g)のうちの殆どの要素も微小な値となっている。
 すなわち、例えば図9に示す回転行列R’(a(β))は、図8に示した回転行列R’(a(β))と同じ、角度βが1度であるときの回転行列R’(a(β))を示している。
 すなわち、図9において横軸は回転行列R’(a(β))の列の成分を示しており、縦軸は回転行列R’(a(β))の行の成分を示している。また、回転行列R’(a(β))の各位置における濃淡は、それらの位置に対応する回転行列R’(a(β))の要素のレベル(dB)を示している。
 但し、図8では回転行列R’(a(β))の各要素のレベルのレンジが-400dBから0dBまでであるのに対して、図9では回転行列R’(a(β))の各要素のレベルのレンジが-100dBから0dBまでに限定されている。
 図9に示す例のように、回転行列R’(a(β))における有効な値を持っている要素を、レベルが-100dBから0dBまでの要素とすると、有効な値を有する要素が対角成分の周辺にしか存在していないことが分かる。
 さらに、回転行列R’(a(β))の1つの行を見たときに有効な値を持つ要素の数、すなわち、図9中、横方向に連続して並ぶ、有効な値を有する要素の数(以下、有効要素幅とも称する)は、全ての次数nで殆ど同じであることが分かる。
 したがって、各次数nにおける有効な値を有する要素の数は、次数nが増えてもほぼ次数nの最大値であるJの2乗のオーダーでしかない。
 そこで、回転行列R’(a(β))の-100dBから0dBまでのレベルの要素など、所定のレベルの範囲内の値の要素を有効な要素とし、その有効な要素のみを用いて球面調和領域で頭部伝達関数を回転させる演算を行うようにすれば、演算量を削減することができる。換言すれば、回転行列R’(g)の所定のレベルの範囲内の値の要素を有効な要素とし、その有効な要素のみを用いて球面調和領域で頭部伝達関数を回転させる演算を行うようにすれば、演算量を削減することができる。回転行列R’(g)の有効要素幅は、回転行列R’(a(β))の有効要素幅と同じである。
 例えば有効要素幅が2C+1である場合、上述した式(35)の計算は、次式(36)に示すようになる。
Figure JPOXMLDOC01-appb-M000036
 但し、式(36)においてmin(a,b)はaとbのうちの小さい方を選択する関数を示している。また、式(36)においてmax(a,b)はaとbのうちの大きい方を選択する関数を示している。
 式(35)では、各次数nについて、位数kが-nからnまでの(2n+1)個の要素R’(n) k,m(g)が用いられていたが、式(36)の計算では位数kがmを中心としてm-Cからm+Cまでの範囲内にある(2C+1)個の要素R’(n) k,m(g)のみが用いられており、演算量の削減が実現されている。なお、kがnより大きい場合、またはkが-nより小さい場合には、行列の範囲を超えないように、それぞれnまでのk、-nまでのkで演算が行われる。このように、位数kを制限して演算を行うことにより、つまり位数kがCにより定まる範囲内の値である要素についてのみ演算を行うことで、演算量を削減することができる。
 この場合、全ての次数nにおいて有効要素幅2C+1が同じであるので、上述した第4の手法と比較したときに、次数Jが大きくなるほど、第5の手法が演算面でより有利になることが分かる。
 なお、式(36)では、全ての次数nについて、有効要素幅から定まる定数Cが適用されることになる。しかし、有効要素幅2C+1を定めるCは定数に限らず、次数nの関数C(n)(但し、C(n)<n)をCとして用いたり、次数nおよび位数kの関数C(n,k)をCとして用いたりしてもよい。ここで、関数C(n)や関数C(n,k)は次数nより小さい自然数であればよい。つまり、ブロック対角行列である回転行列R’(a(β))、すなわち回転行列R’(g)のブロック全体の要素を用いて演算を行うより、少しでも少ない要素数で演算が行われるようにすればよい。
 また、回転行列R’(a(β))のうちの演算に用いられる要素は、回転行列R’(a(β))の要素そのものであってもよいし、回転行列R’(a(β))の要素の近似的な値であってもよい。
 つまり、より一般的に言えば、回転行列R’(a(β))をある複数の行列の組み合わせにより、R’(a(β))=A1+A2+A3+…として表現できるとする。この場合、回転行列R’(a(β))を構成するそれらの行列のうちのいくつかを取り出したものの和で表される近似的な回転行列Rs’(a(β))について、それぞれn次のブロックにおいて(2n+1)×(2n+1)の要素より少ない要素を用いて演算が行われるようにすればよい。
 例えば回転行列R’(a(β))のうちn次のブロック対角行列R’(n)(a(β))は次式(37)のように表すことができる。
Figure JPOXMLDOC01-appb-M000037
 ここで、式(37)における行列Vy (n)は次式(38)のように表される。この行列Vy (n)を用いて、近似的な回転行列Rs’(a(β))の太さをCにしたい場合は、式(37)に示す行列の多項式のうちのC乗までの計算に限定してやればよい。
Figure JPOXMLDOC01-appb-M000038
 このようにすることで回転行列R’(a(β))として用いられる回転行列Rs’(a(β))では、ゼロでない値を有する要素がほぼ対角成分だけになる。したがって、回転行列Rs’(a(β))を用いて得られた回転行列R’(g)のゼロでない要素を用いて頭部伝達関数を回転させる回転演算、つまり回転行列R’(g)と行ベクトルHS(ω)との行列演算を行えば、結果的に回転行列R’(g)の位数が制限された演算が行われることになり、演算量を削減することができる。
 なお、この場合、例えば回転行列R’(u(α))と、回転行列Rs’(a(β))と、回転行列R’(u(γ))とを合成して回転行列R’(g)とし、位数が制限された行列演算が行われることになる。
 以上のような第5の手法により聴取者の頭部の回転に対する追従を行う場合、例えば聴取者が上方向、つまり仰角方向に30度だけ頭部を回転させてしまったとする。すなわち、聴取者の頭部の方向を示す仰角(角度β)が30度となってしまったとする。
 この場合、回転行列R’(a(β))は、図10に示すようになる。なお、図10において横軸は回転行列R’(a(β))の列の成分を示しており、縦軸は回転行列R’(a(β))の行の成分を示している。また、回転行列R’(a(β))の各位置における濃淡は、それらの位置に対応する回転行列R’(a(β))の要素のレベル(dB)を示している。
 図10では、図9における場合と同様に、回転行列R’(a(β))の各要素のレベルのレンジが-100dBから0dBまでとなっている。
 しかし、図10に示す例では次数nが大きくなるほど、その次数nについてのブロックの有効要素幅は太く(大きく)なっている。すなわち、-100dB以下の成分を切り捨てても、回転行列R’(a(β))は有効要素幅が太いブロック対角行列となってしまう。
 このように回転行列R’(a(β))では、回転角度βが小さいときには有効要素幅が細く、図9を参照して説明したように演算量を低減させることが可能であるが、回転角度βが大きくなるにしたがって有効要素幅が太くなり、演算量削減効果が小さくなる。
 また、このままでは聴取者の仰角方向に対する頭部の回転が大きくなるにしたがって有効要素幅2C+1を決定する定数Cを大きくしていかなければならなくなる。
 演算量を少なく保ったまま大きい仰角方向の回転角度βまで頭部の回転に対する追従を行うためには、微小回転の累積を用いればよい。
 すなわち、例えば所定の時刻における聴取者(ユーザ)の頭部の方向を、オイラー角を用いて(α,β,γ)と表すとする。ここで、角度α、角度β、および角度γは、それぞれ上述の回転角度α、回転角度β、および回転角度γに対応する。なお、ここでは聴取者の頭部の回転方向である方向gを、オイラー角を用いて表しているが、その他、例えばクオータニオンなどの別の方法で表すようにしてもよい。以下では、特にことわりのない限りは方向gはオイラー角が用いられて表されているものとして説明を続ける。
 特に、角度αおよび角度γは聴取者から見た水平角であり、角度βは聴取者から見た仰角である。以下では、特に時刻tにおける角度βを角度βtと記すこととする。同様に、以下、時刻tにおける角度αおよび角度γを、それぞれ角度αtおよび角度γtと記すこととする。
 微小回転の累積を利用する場合、時刻tにおける方向gを示す角度gtと、その直前の時刻(t-1)、つまり時刻tよりも前の時刻(t-1)における角度gt-1との差分Δgt=gtt-1 -1を求め、前回得られた回転行列R’(gt-1)を差分Δgtの分だけ回転させることで、回転行列R’(gt)を更新すればよい。すなわち、前回得られた時刻(t-1)における回転行列R’(gt-1)と、差分Δgtに対応する回転行列R’(Δgt)との積を、時刻tにおける回転行列R’(gt)とすればよい。
 これにより、微小な回転角である差分Δgtのうちの差分Δβtについての、有効要素幅が細い回転行列Rs’(a(Δβt))と、差分Δgtのうちの差分Δαtについての対角行列である回転行列R’(u(Δαt))と、差分Δgtのうちの差分Δγtについての対角行列である回転行列R’(u(Δγt))とを合成して得られる回転行列R’(Δgt)=R’(u(Δαt))Rs’(a(Δβt))R’(u(Δγt))を用いて、より少ない演算量で回転行列R’(gt)を得ることができる。
 なお、差分Δαt、差分Δβt、および差分Δγtは、Δgt=u(Δαt)a(Δβt)u(Δγt)となるようなオイラー角である。
〈音声処理装置の構成例〉
 ここで、以上において説明した本技術を適用した音声処理装置について説明する。図11は、本技術を適用した音声処理装置の一実施の形態の構成例を示す図である。
 図11に示す音声処理装置11は、例えばヘッドホン等に内蔵され、再生しようとする音の音響信号である球面調和領域の入力信号D’n m(ω)を入力とし、時間領域の2チャネルの音の駆動信号を出力する信号処理装置である。なお、ここでは、音声処理装置11がヘッドホンに内蔵される例について説明するが、音声処理装置11はヘッドホンとは異なる別の装置に内蔵されていたり、ヘッドホン等とは異なる他の装置とされたりしてもよい。
 音声処理装置11は、頭部回転センサ部21、前回方向保持部22、回転行列演算部23、回転演算部24、回転係数保持部25、頭部伝達関数保持部26、頭部伝達関数合成部27、および時間周波数逆変換部28を有している。
 頭部回転センサ部21は、例えば必要に応じて聴取者(ユーザ)の頭部に取り付けられた加速度センサや画像センサなどからなり、聴取者の頭部の回転(動き)を検出して、その検出結果を回転行列演算部23に供給する。
 なお、ここでいう聴取者とは、ヘッドホンを装着したユーザ、つまり時間周波数逆変換部28で得られる左右のヘッドホンの駆動信号に基づいてヘッドホンにより再生された音を聴取するユーザである。
 頭部回転センサ部21では、聴取者の頭部の回転、つまり聴取者の頭部が向いている方向の検出結果として、現時刻である時刻tにおける角度αt、角度βt、および角度γtが得られる。以下、角度αt、角度βt、および角度γtからなる聴取者の頭部の方向(回転)を示す情報を頭部回転情報とも称することとする。この頭部回転情報により示されるある時刻tの方向は上述した方向gに対応する角度gtであり、例えばx軸方向を基準としたときの頭部の方向を示す角度情報である。
 前回方向保持部22は、回転行列演算部23から供給された各時刻の角度を前回方向情報として保持するとともに、その次の時刻において保持している前回方向情報を回転行列演算部23に供給する。したがって、例えば頭部回転センサ部21から回転行列演算部23へと時刻tの頭部回転情報が供給されたときには、前回方向保持部22から回転行列演算部23には、前回方向情報として時刻(t-1)の角度gt-1が供給される。
 回転行列演算部23は、各角度αにおける回転行列R’(u(α))を示すテーブルと、各角度βにおける回転行列R’(a(β))を示すテーブルとを保持している。なお、回転行列R’(u(α))を示すテーブルは、回転行列R’(u(γ))を求めるときにも用いられる。つまり、回転行列R’(u(α))と回転行列R’(u(γ))のテーブルは共通で用いられる。
 回転行列演算部23は、保持しているテーブルと、頭部回転センサ部21から供給された頭部回転情報と、前回方向保持部22から供給された前回方向情報とに基づいて、回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))を求めて出力する。回転行列演算部23は、回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))を回転演算部24に供給する。
 回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))の合成である回転行列R’(Δgt)は、時刻tにおける聴取者の頭部の回転gtと、時刻(t-1)における聴取者の頭部の回転gt-1との差分の角度(差分Δgt)だけ回転を行う回転行列である。
 なお、回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))については、テーブルを用いるのではなく、回転行列演算部23が差分Δαt、差分Δβt、および差分Δγtに基づいて、演算により回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))を求めてもよい。また、回転行列R’(a(Δβt))のテーブルは、回転行列R’(a(Δβt))の近似である回転行列Rs’(a(Δβt))を示すものでもよいし、回転行列Rs’(a(Δβt))をテーブルからではなく演算により求めてもよい。
 また、回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報gtを前回方向情報として前回方向保持部22に供給して保持させる。
 回転演算部24は、行ベクトルH’(gt -1,ω)を算出し、回転係数保持部25および頭部伝達関数合成部27に供給する。
 ここで行ベクトルH’(gt -1,ω)は、時刻tにおける回転行列R’(gt)に基づいて、球面調和領域の頭部伝達関数、つまり行ベクトルHS(ω)を角度gtだけ回転させる回転演算を行うことで得られる行ベクトルである。
 実際には、回転演算部24は、回転行列演算部23から供給された回転行列R’(Δgt)と、回転係数保持部25から供給された時刻(t-1)における行ベクトルH’(gt-1 -1,ω)とに基づいて、時刻tにおける行ベクトルH’(gt -1,ω)を算出する。
 このような演算は、時刻(t-1)における回転演算の演算結果、つまり行ベクトルHS(ω)を角度gt-1だけ回転させる回転演算により得られた回転後の頭部伝達関数に対して、さらに差分Δgtにより示される角度だけ回転を行う回転演算である。
 しかも、回転行列R’(Δgt)に基づく回転演算は、回転行列R’(Δgt)における所定の値Cにより定まる範囲内の位数kを有する要素についてのみ計算が行われる、つまり位数kにより制限された演算が行われる行列演算である。したがって、回転行列R’(Δgt)は、所定の値Cにより定まる範囲内の位数kを有する要素のみがゼロでない有効な値を有する要素とされた、つまり位数kにより制限された回転行列であるといえる。
 なお、回転演算部24は、処理開始時、つまり行ベクトルH’(gt-1 -1,ω)がない状態においては、頭部伝達関数保持部26から供給された頭部伝達関数の行ベクトルHS(ω)と、回転行列演算部23から供給された回転行列R’(Δgt)とに基づいて行ベクトルH’(gt -1,ω)を算出する。この場合、角度gt-1は0度であるので回転行列R’(Δgt)は回転行列R’(gt)と等価である。
 回転係数保持部25は、回転演算部24から供給された時刻tにおける行ベクトルH’(gt -1,ω)を保持し、次の時刻(t+1)において保持している行ベクトルH’(gt -1,ω)を回転演算部24に供給する。
 頭部伝達関数保持部26は、予め定められた行ベクトルHS(ω)、または外部から供給された行ベクトルHS(ω)を保持しており、保持している行ベクトルHS(ω)を回転演算部24に供給する。なお、行ベクトルHS(ω)は聴取者(ユーザ)ごとに用意されていてもよいし、全聴取者や1つのグループを構成する複数人の聴取者に対して共通する行ベクトルHS(ω)が用意されてもよい。
 ここで、行ベクトルH’(g-1,ω)は、頭部伝達関数からなる行ベクトルHS(ω)を、回転行列R’(g-1)により球面調和領域で回転させることで得られた行列、つまり回転後の頭部伝達関数からなる行列である。換言すれば、行ベクトルH’(g-1,ω)は、球面調和領域において聴取者の頭部の方向により定まる角度だけ水平方向に角度α、仰角方向に角度β、および水平方向に角度γだけ回転させた頭部伝達関数を要素とする行列(ベクトル)である。
 なお、ここでは角度β、角度α、および角度γの方向全てにおいて、時刻(t-1)における演算結果である行ベクトルH’(gt-1 -1,ω)を用いて、時刻tと時刻(t-1)における回転の差分の分だけ頭部伝達関数を回転させる例について説明した。しかし、これに限らず、角度α、角度β、および角度γのうちの少なくとも何れか1つの角度の方向(回転方向)について時刻tと時刻(t-1)における角度の差分の分だけ、時刻(t-1)における頭部伝達関数の回転演算の結果をさらに回転さるようにしてもよい。
 頭部伝達関数合成部27は、外部から供給された、球面調和領域の音の信号である各時間周波数ビンωについての入力信号D’n m(ω)と、回転演算部24から供給された行ベクトルH’(gt -1,ω)とを合成し、左右のヘッドホンの駆動信号を生成する。
 すなわち、頭部伝達関数合成部27では、左右のヘッドホンごとに行ベクトルH’(gt -1,ω)と、球面調和領域の音の信号である入力信号D’n m(ω)からなる行列D’(ω)との積を求めることで、左右のヘッドホンの駆動信号Pl(g,ω)および駆動信号Pr(g,ω)を算出し、時間周波数逆変換部28に供給する。
 ここで、駆動信号Pl(g,ω)は時間周波数領域の左ヘッドホンの駆動信号(バイノーラル信号)であり、駆動信号Pr(g,ω)は時間周波数領域の右ヘッドホンの駆動信号(バイノーラル信号)である。
 頭部伝達関数合成部27では、入力信号に対する頭部伝達関数の合成と、入力信号に対する球面調和逆変換とが同時に行われることになる。
 時間周波数逆変換部28は、左右のヘッドホンごとに、頭部伝達関数合成部27から供給された時間周波数領域の駆動信号に対して時間周波数逆変換を行うことで、時間領域の左ヘッドホンの駆動信号pl(g,t)と、時間領域の右ヘッドホンの駆動信号pr(g,t)とを求め、それらの駆動信号を後段に出力する。後段のヘッドホン、より詳細にはイヤホンを含むヘッドホンやトランスオーラル技術を用いたスピーカなど、2チャネルまたは複数チャネルで音を再生する再生装置では、時間周波数逆変換部28から出力された駆動信号に基づいて音が再生される。なお、入力される信号が時間周波数変換されていない場合には、信号の入力部分、すなわち例えば頭部伝達関数合成部27の前段に時間周波数変換部が設けられるか、または頭部伝達関数合成部27で時間領域での畳み込み演算が行われることになる。
 ここで、音声処理装置11の各部における処理について具体的に説明する。
 例えば回転行列演算部23は、時刻tの頭部回転情報、つまり時刻tの角度gtと時刻(t-1)の角度gt-1との差分Δgt=gtgt-1 -1を求める。そして、回転行列演算部23は、差分Δgtから差分Δβt、差分Δαt、および差分Δγtを求め、保持している回転行列R’(a(β))および回転行列R’(u(α))のテーブルから、角度βが差分Δβtであるときの回転行列R’(a(β))、角度αが差分Δαtおよび差分Δγtであるときの回転行列R’(u(α))を読み出して回転行列R’(a(Δβt))、回転行列R’(u(Δαt))、および回転行列R’(u(Δγt))とする。
 さらに、回転行列演算部23は、上述した式(29)と同様の演算を行って、このようにして得られた回転行列R’(u(Δαt))、回転行列R’(a(Δβt))、および回転行列R’(u(Δγt))を合成し、回転行列R’(Δgt)とする。
 例えば入力信号D’n m(ω)のフレームごと、つまり1フレームごとに差分Δβtを求めると、差分Δβtは図12に示すようになる。なお、図12において縦軸は各時刻における角度β(仰角β)を示しており、横軸は時間を示している。
 図12に示す例では、曲線L11は各時刻における角度βを示しており、その曲線L11における領域RZ11の部分を拡大すると、図中、下側に示すようになる。
 ここでは、時刻(t-1)から時刻tまでの期間が1フレームの期間となっている。そのため、時刻tにおける角度βである角度βtと、時刻(t-1)における角度βである角度βt-1との差分がΔβtとなっている。
 回転行列演算部23では、差分Δgtに基づいて得られた回転行列R’(Δgt)が回転演算部24に供給されるとともに、時刻tの角度gtが前回方向保持部22に供給されて前回方向情報が更新される。つまり、新たに供給された時刻tの角度gtが更新後の前回方向情報として保持される。
 回転演算部24では、回転行列R’(Δgt)と、時刻(t-1)における行ベクトルH’(gt-1 -1,ω)とに基づいて、時刻tにおける行ベクトルH’(gt -1,ω)が算出される。
 例えば任意の回転行列g1および回転行列g2に対して、次式(39)が成立する。
Figure JPOXMLDOC01-appb-M000039
 このことから、次式(40)が成立し、行ベクトルH’(gt-1 -1,ω)と回転行列R’(Δgt)との積を求めることにより、行ベクトルH’(gt -1,ω)が求まることが分かる。
Figure JPOXMLDOC01-appb-M000040
 すなわち、行ベクトルH’(gt -1,ω)の次数nおよび位数mの要素をH’n m(gt -1,ω)とし、回転行列R’(Δgt)の次数nおよび位数mの要素をR’(n) k,m(Δgt)とし、回転行列R’(Δgt)の次数nにおける有効要素幅を定める定数をCとする。この場合、次式(41)が成立する。すなわち、次式(41)の演算により、行ベクトルH’(gt -1,ω)のゼロでない各要素を求めることができる。
Figure JPOXMLDOC01-appb-M000041
 回転演算部24は、式(41)を計算することで行ベクトルH’(gt -1,ω)を得る。式(41)の演算は、上述した式(36)と同様に位数kがmを中心とするm-Cからm+Cまでの範囲内にある(2C+1)個の要素のみ計算が行われている。但し、-n≦k≦nの範囲に限られる。つまり、位数kがCにより定まる範囲内の値である要素についてのみ演算が行われる、位数kを制限した回転演算となっており、演算量が削減されている。
 なお、回転行列演算部23では、回転行列R’(a(Δβt))を逐次、計算により求めるようにしてもよいし、事前に用意された1または複数の候補のなかから回転行列R’(a(Δβt))を選択するようにしてもよい。
 さらに、時刻によって回転行列R’(a(Δβt))を演算する方法と、1または複数の候補のなかから回転行列R’(a(Δβt))を選択する方法とを組み合わせて、それらの各方法を用いる頻度を変更しながら実際の聴取者の頭部の回転の角度βtに追従させて頭部伝達関数を回転させる角度の調整をするようにしてもよい。
〈駆動信号生成処理の説明〉
 次に、図13のフローチャートを参照して、音声処理装置11により行われる駆動信号生成処理について説明する。
 ステップS11において、頭部回転センサ部21は、聴取者であるユーザの頭部の回転を検出し、その検出結果として得られた頭部回転情報を回転行列演算部23に供給する。
 ステップS12において、回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報の角度gtと、前回方向保持部22に前回方向情報として保持されている時刻(t-1)の角度gt-1との差分Δgtを求める。
 また、回転行列演算部23は、差分Δgtが得られると、ステップS11で得られた頭部回転情報の角度gtを前回方向保持部22に供給し、前回方向情報を更新させる。前回方向保持部22は、回転行列演算部23から供給された角度gtが新たな前回方向情報となるように前回方向情報を更新し、その更新結果を保持する。
 ステップS13において、回転行列演算部23は、ステップS12で得られた差分Δgtに基づいて、その差分Δgtのうちの差分Δβtに応じた仰角方向の回転行列R’(a(Δβt))を求める。なお、ステップS13において回転行列演算部23が上述した回転行列Rs’(a(β))に対応する、差分Δβtに応じた回転行列Rs’(a(Δβt))を回転行列R’(a(Δβt))として求めるようにしてもよい。
 ステップS14において、回転行列演算部23は、ステップS12で得られた差分Δgtから求められる頭部回転の差分Δαtおよび差分Δγtに基づいて、それらの差分に応じた水平方向の回転行列R’(u(Δαt))および回転行列R’(u(Δγt))を求める。
 ステップS15において、回転行列演算部23は、ステップS13で得られた仰角方向の回転行列R’(a(Δβt))と、ステップS14で得られた水平方向の回転行列R’(u(Δαt))および回転行列R’(u(Δγt))とを合成して、頭部の全体の回転の差分の分だけ回転を行う回転行列R’(Δgt)を求め、回転演算部24に供給する。
 ステップS16において、回転演算部24は、回転行列演算部23から供給された回転行列R’(Δgt)と、回転係数保持部25に保持されている行ベクトルH’(gt-1 -1,ω)とに基づいて回転演算を行う。
 すなわち、例えばステップS16では定数Cにより定まる有効要素幅2C+1に基づいて、回転演算として上述した式(41)の計算が行われ、行ベクトルH’(gt -1,ω)が算出される。
 回転演算部24は、得られた行ベクトルH’(gt -1,ω)を回転係数保持部25に供給して保持させるとともに、行ベクトルH’(gt -1,ω)を頭部伝達関数合成部27にも供給する。
 ステップS17において、頭部伝達関数合成部27は、供給された入力信号D’n m(ω)と、回転演算部24から供給された頭部伝達関数の行ベクトルH’(gt -1,ω)とを合成し、左右のヘッドホンの駆動信号を生成する。
 例えばステップS17では、左右のヘッドホンごとに、行ベクトルH’(gt -1,ω)と行列D’(ω)との積が求められ、左右のヘッドホンの駆動信号Pl(g,ω)および駆動信号Pr(g,ω)が算出される。頭部伝達関数合成部27は、得られた駆動信号Pl(g,ω)および駆動信号Pr(g,ω)を時間周波数逆変換部28に供給する。
 ステップS18において、時間周波数逆変換部28は、頭部伝達関数合成部27から供給された駆動信号Pl(g,ω)および駆動信号Pr(g,ω)に対して時間周波数逆変換を行い、その結果得られた駆動信号pl(g,t)および駆動信号pr(g,t)を後段に出力し、駆動信号生成処理は終了する。
 以上のようにして音声処理装置11は、差分Δgtに基づいて回転行列R’(Δgt)を求め、その回転行列R’(Δgt)と、前回の行ベクトルH’(gt-1 -1,ω)とに基づいて、今回の行ベクトルH’(gt -1,ω)を求める。
 このように微小な回転角度である差分Δgt分ずつ回転を累積して行ベクトルH’(gt -1,ω)を求めることで、使用するメモリ量と演算量を低減させることができる。その結果、より効率よく音を再生することができる。特に、以上において説明した第5の手法によれば、第4の手法と同等のメモリ量で、かつ第4の手法よりも少ない演算量で駆動信号を得ることができる。
〈第2の実施の形態〉
〈音声処理装置の構成例〉
 ところで、上述した第5の手法では、定数Cにより定まる有効要素幅2C+1のブロック内の要素、つまり有効な要素のみが用いられて演算が行われるため、少なからず回転行列R’(gt)、つまり行ベクトルH’(gt -1,ω)に誤差が発生してしまう。
 また、そのような誤差が生じる演算をしばらく繰り返し行うと誤差が蓄積されていき、行ベクトルH’(gt -1,ω)が本来の値とは離れた値となってしまう。つまり、行ベクトルH’(gt -1,ω)の誤差が大きくなってしまう。
 そこで、所定のタイミングで正確な回転行列R’(gt -1)を求める演算を行い、回転行列R’(gt -1)の値、すなわち行ベクトルH’(gt -1,ω)をリセットする(以下、単にリセットと称する)ことで、誤差の蓄積を防止するようにしてもよい。以下、第5の手法において、さらに所定のタイミングでリセットを行う手法を第6の手法とも称することとする。
 第6の手法では、リセット時には行ベクトルH’(gt -1,ω)を求めるために次数nの3乗のオーダーの演算量の演算が必要となるが、リセットを頻繁には行わないようにすることで、全体として演算量を低減させることができる。
 このように適宜、リセットが行われる場合、音声処理装置11は図14に示すように構成される。なお、図14において図11における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図14に示す音声処理装置11は、頭部回転センサ部21、前回方向保持部22、回転行列演算部23、回転演算部24、回転係数保持部25、頭部伝達関数保持部26、頭部伝達関数合成部27、および時間周波数逆変換部28を有している。
 図14に示す音声処理装置11は、頭部回転センサ部21乃至時間周波数逆変換部28を有している点では図11の音声処理装置11と同じであるが、回転行列演算部23および回転演算部24にリセットを行うタイミングを示す信号であるリセットトリガが供給される点で図11の音声処理装置11と異なっている。
 回転行列演算部23は、リセットトリガが供給されていないとき、すなわちリセットトリガがオフであるときには、頭部回転情報の角度gtと、前回方向情報としての角度gt-1とに基づいて回転行列R’(Δgt)を求め、回転演算部24に供給する。
 これに対して、リセットトリガが供給されたとき、すなわちリセットトリガがオンであるときには、回転行列演算部23は頭部回転情報の角度gtに基づいて回転行列R’(gt)を求め、回転演算部24に供給する。つまり、リセットが行われて正確な回転行列R’(gt)が求められる。換言すれば、回転行列R’(Δgt)等の差分により求められたものではなく、絶対的な回転行列R’(gt)が求められる。
 また、リセットトリガがオフである場合、回転演算部24は、回転行列演算部23から供給された回転行列R’(Δgt)と、回転係数保持部25に保持されている行ベクトルH’(gt-1 -1,ω)とに基づいて行ベクトルH’(gt -1,ω)を算出する。
 これに対して、リセットトリガがオンである場合、回転演算部24は、回転行列演算部23から供給された回転行列R’(gt)と、頭部伝達関数保持部26に保持されている頭部伝達関数の行ベクトルHS(ω)とに基づいて行ベクトルH’(gt -1,ω)を算出する。
 この場合、回転演算部24では、上述した式(35)または式(36)と同様の計算が行われて行ベクトルH’(gt -1,ω)が算出される。つまり、回転行列R’(gt)と行ベクトルHS(ω)との積が求められて行ベクトルH’(gt -1,ω)が算出される。
 このようにリセットトリガの入力に応じて、リセットを行い、正確な回転行列R’(gt)や行ベクトルH’(gt -1,ω)を求めることで、必要なメモリ量や演算量を低く抑えつつ誤差の少ない駆動信号を得ることができるようになる。
 なお、ここでは任意のタイミングでリセットトリガがオン、オフされる例について説明するが、常にリセットトリガがオンされた状態とされてもよい。つまり、常に回転行列R’(gt)が算出されるようにしてもよい。
 また、リセットトリガがオンされるタイミングは、いつでもよい。例えばリセットトリガがオンされるタイミングは所定の時間間隔などの予め定められた定期的(周期的)なタイミングであってもよいし、差分Δβtが閾値以上となったタイミングなどであってもよいし、角度βtが所定値以上となったタイミングでもよい。
〈駆動信号生成処理の説明〉
 次に、図15のフローチャートを参照して、図14の音声処理装置11により行われる駆動信号生成処理について説明する。
 なお、ステップS51の処理は図13のステップS11の処理と同様であるので、その説明は省略する。
 ステップS52において、回転行列演算部23は外部から供給されたリセットトリガに基づいて、リセットを行うか否かを判定する。例えばリセットトリガがオンとされた場合、リセットを行うと判定される。
 ステップS52においてリセットを行わないと判定された場合、処理はステップS53へと進み、ステップS53乃至ステップS57の処理が行われる。
 なお、ステップS53乃至ステップS57の処理は、図13のステップS12乃至ステップS16の処理と同様であるので、その説明は省略する。
 ステップS57の処理が行われると、回転演算部24は得られた行ベクトルH’(gt -1,ω)を頭部伝達関数合成部27および回転係数保持部25に供給し、その後、処理はステップS60へと進む。
 これに対してステップS52においてリセットを行うと判定された場合、ステップS58において、回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報の角度gtに基づいて仰角方向の回転行列R’(a(βt))と、水平方向の回転行列R’(u(αt))および回転行列R’(u(γt))を求める。
 さらに回転行列演算部23は、これらの回転行列R’(a(βt))、回転行列R’(u(αt))、および回転行列R’(u(γt))を合成して回転行列R’(gt)を求め、回転演算部24に供給する。なお、ステップS58では、角度βtに基づいてテーブルから回転行列R’(a(βt))を得るようにしてもよいし、角度βtに基づいて演算により回転行列R’(a(βt))を得るようにしてもよい。同様に、角度αtおよび角度γtに基づいて演算により回転行列R’(u(αt))、および回転行列R’(u(γt))を求めるようにしてもよいし、角度αtおよび角度γtに基づいてテーブルから回転行列R’(u(αt))、および回転行列R’(u(γt))を得るようにしてもよい。
 ステップS59において、回転演算部24は、回転行列演算部23から供給された回転行列R’(gt)と、頭部伝達関数保持部26に保持されている頭部伝達関数の行ベクトルHS(ω)とに基づいて回転演算を行い、行ベクトルH’(gt -1,ω)を算出する。例えばステップS59では、上述した式(35)または式(36)と同様の計算が行われて行ベクトルH’(gt -1,ω)が算出される。
 行ベクトルH’(gt -1,ω)が得られると、回転演算部24は、得られた行ベクトルH’(gt -1,ω)を頭部伝達関数合成部27および回転係数保持部25に供給し、その後、処理はステップS60へと進む。
 ステップS57またはステップS59の処理が行われると、その後、ステップS60およびステップS61の処理が行われて駆動信号生成処理は終了するが、これらの処理は図13のステップS17およびステップS18の処理と同様であるので、その説明は省略する。
 以上のようにして音声処理装置11は、リセットトリガがオンされると正確な回転行列R’(gt)や行ベクトルH’(gt -1,ω)を求めて駆動信号を生成する。このようにすることで、必要なメモリ量や演算量を低く抑えつつ誤差の少ない駆動信号を得ることができる。
 なお、例えば聴取者の頭部が仰角方向に急激に大きく回転した場合、差分Δβtが急激に大きくなる。そのため、聴取者の頭部の回転に追従して行ベクトルH’(gt -1,ω)を求めようとしたときに、正確に行ベクトルH’(gt -1,ω)を求めようとすると演算量が多くなり、少ない演算量で行ベクトルH’(gt -1,ω)を求めようとすると誤差が大きくなる。
 このような場合に、例えば演算量を低く抑えたい場合には、実際の差分Δβtが、30度以上などの所定の閾値以上となったときには、実際の差分Δβtの値によらず差分Δβtの値を1度以下の値などに制限して回転行列演算部23が回転行列R’(a(Δβt))を求めるようにしてもよい。
 このようにすることで、実際の差分Δβtが閾値未満となるまでの間、追従しきれずに回転行列R’(a(Δβt))に誤差が生じてしまうが演算量を低く抑えることが可能となる。なお、このような処理はリセットトリガのオン、オフとは独立に行うようにすることができる。
 また、例えば実際の差分Δβtが、30度以上などの所定の閾値以上となった場合に、回転行列演算部23が有効要素幅2C+1を定めるCを所定の値として、そのCに対して定まる有効要素幅2C+1のブロック内の要素、つまり有効な要素についてのみ回転行列R’(a(βt))を求めるようにしてもよい。この場合、回転演算部24において、Cに対して定まる有効な要素についてのみ式(36)の計算が行われ、行ベクトルH’(gt -1,ω)が求められる。
 この例では、回転行列R’(gt)を用いるために演算量が増加するが、有効要素幅2C+1を定めるCによって定まる有効な要素のみの演算で済むので、聴取者の頭部の回転に追従しつつ演算量をある程度低く抑えることができる。このような処理もリセットトリガのオン、オフとは独立に行うようにすることができる。
 さらに、例えば実際の差分Δβtが、30度以上などの所定の閾値以上となった場合に、回転行列R’(a(Δβt))を求め、その回転行列R’(a(Δβt))により求められる回転行列R’(Δgt)と行ベクトルH’(gt-1 -1,ω)とから行ベクトルH’(gt -1,ω)を求めるが、その際に回転演算部24が一時的に有効要素幅2C+1を定めるCを通常時よりも大きくするようにしてもよい。ここで、Cの値は定数であってもよいし、次数nや差分Δβtなどにより定められるようにしてもよい。
 このようにすることで、行ベクトルH’(gt -1,ω)を求めるときの演算量は増加するものの聴取者の頭部の回転に対する追従を行うことが可能となる。この場合においてもCの値を変化させる処理はリセットトリガのオン、オフとは独立に行うようにすることができる。
 その他、例えば頭部回転情報の角度βtが予め定められた値(以下、リセットポイントとも称する)となったときに、リセットが行われるようにしてもよい。
 具体的には、例えば回転行列演算部23には、1または複数のリセットポイントごとに、リセットポイントである角度βについて予め求められた回転行列R’(a(β))が保持されている。例えばリセットポイントとして定められた角度β1に対して回転行列R’(a(β1))が予め保持されているものとする。
 この場合、例えば角度βtが角度β1であるとき、回転行列演算部23は、保持している回転行列R’(a(β1))を回転行列R’(a(βt))として回転行列R’(gt)を求め、回転演算部24に供給する。このようにすることで、リセットポイントごとに回転行列R’(a(β))を保持しておくメモリが必要となるが、回転行列R’(a(βt))の演算を行う必要はないので、正確な回転行列R’(a(βt))となるようにリセットを行いつつ演算量を低く抑えることができる。
〈第2の実施の形態の変形例1〉
〈複数の装置でのリセット制御について〉
 また、例えば空間上に複数の聴取者がおり、図16に示すように各聴取者が装着しているヘッドホン等のそれぞれに対して、複数の音声処理装置のそれぞれが駆動信号を出力する制御システムがあったとする。
 図16に示す制御システムは、音声処理装置71-1乃至音声処理装置71-4と、スイッチ72とを有している。
 ここで、音声処理装置71-1乃至音声処理装置71-4のそれぞれは、図14に示した音声処理装置11と同じ構成とされている。なお、以下、音声処理装置71-1乃至音声処理装置71-4を特に区別する必要のない場合、単に音声処理装置71とも称することとする。
 各音声処理装置71は、入力信号D’n m(ω)を入力とし、図15を参照して説明した駆動信号生成処理と同様の処理を行って、ヘッドホンの左右の駆動信号pl(g,t)および駆動信号pr(g,t)を出力する。
 なお、各音声処理装置71は独立した1つの装置であってもよいし、それらの音声処理装置71が1つの装置に設けられていてもよいが、ここでは各音声処理装置71が中央にある1つの計算機システム(装置)に設けられているものとする。
 スイッチ72は、任意のタイミングにおいて、音声処理装置71-1乃至音声処理装置71-4のうちの何れか1つの音声処理装置71にリセットトリガが供給されるように、音声処理装置71へのリセットトリガの供給を制御する。
 このような制御システムでは、複数の各聴取者は、それぞれヘッドホンを装着しており、それらのヘッドホンのそれぞれは、互いに異なる音声処理装置71のそれぞれから供給された駆動信号に基づいて音を再生する。
 そして、各音声処理装置71は、駆動信号の出力先となるヘッドホン、つまりヘッドホンが装着された聴取者の頭部の動き(回転)を頭部回転センサ部21で検出し、聴取者の頭部の動きに追従して頭部伝達関数を回転させ、駆動信号を生成する。
 制御システムでは、スイッチ72により4つの音声処理装置71のそれぞれに対して互いに異なるタイミングでリセットトリガが供給されるため、複数の音声処理装置71において同時にリセットが行われることがない。したがって、制御システム全体で、突発的に演算負荷が上昇してしまうことを抑制することができる。すなわち、演算量が一時的に多くなってしまうことを防止することができる。
 制御システムにおいて、4つの音声処理装置71で同時にリセットを行った場合、例えば図17の矢印Q11に示すように、制御システム全体における演算量は、リセットを行った時刻で一時的に多く(大きく)なる。
 なお、図17において縦軸は制御システム全体における演算量を示しており、横軸は時間を示している。
 例えば矢印Q11に示す例では、制御システムにおいて、所定の周期で4つの音声処理装置71で同時にリセットが行われている。例えば時刻t11でリセットが行われており、この時刻t11では演算量が多く(大きく)なっているが、リセットが行われていない他の時刻では演算量は低く抑えられている。
 この場合、演算量が多くなる頻度は少ないものの、リセット時には一時的に制御システムにおける演算負荷が大きくなってしまう。
 これに対して、例えば矢印Q12に示す例では、複数の音声処理装置71で同時にリセットが行われずに、各音声処理装置71で互いに異なるタイミングでリセットが行われている。この場合、演算量が増加する頻度は増えるものの、各時刻における演算量はそれほど多くはならない。すなわち、リセット時には演算量は上昇するものの、そのときの演算量の増加は1つの音声処理装置71におけるリセット分で済むため、複数の音声処理装置71で同時にリセットを行ったときほど演算負荷はかからない。
 例えば時刻t12では1つの音声処理装置71でリセットが行われているが、矢印Q11に示した例における時刻t11と比較すると演算量が低く抑えられている。
 なお、ここでは1つの音声処理装置71ずつリセットを行う例について説明したが、全音声処理装置71で同時にリセットが行われなければ、演算負荷を抑制することが可能である。例えば全ての音声処理装置71を、1または複数の音声処理装置71からなる複数のグループに分け、それらのグループごとにリセットを行うようにしてもよい。
 以上のように複数の音声処理装置71がある場合には、互いに異なるタイミングで各音声処理装置71でリセットを行うことで、一時的に演算量が多くなってしまうことを抑制することができる。
〈第2の実施の形態の変形例2〉
〈次数または位数ごとのリセットについて〉
 また、図14に示した音声処理装置11の例や図16に示した制御システムの例によらず、すなわち聴取者が1人か複数人かによらず、リセットを次数nごとや位数mごとに行うようにしてもよい。そのようにすることでもリセット時における演算負荷の上昇を抑制することができる。
 例えば、図18に示すように行ベクトルH’(gt -1,ω)が、次数n=0である要素からなる行列H0(ω)、次数n=1である要素からなる行列H1(ω)、次数n=2である要素からなる行列H2(ω)、および次数n=3である要素からなる行列H3(ω)から構成されるとする。
 このような場合に、例えば次数nについて所定の次数の成分のみリセットを行うようにしてもよい。その際、各次数の成分が互いに異なるタイミングでリセットされるようにしてもよいし、いくつかの次数の成分が同時にリセットされるようにしてもよい。
 例えば次数nの0次の成分、つまり次数n=0の成分のみリセットが行われる場合、0次の成分について回転行列R’(gt)と行ベクトルHS(ω)との積が求められて行列H0(ω)が生成される。
 これに対して、次数nの1次乃至3次の成分については、回転行列R’(Δgt)と行ベクトルH’(gt-1 -1,ω)との積が求められて、すなわち式(41)の計算が行われて行列H1(ω)、行列H2(ω)、および行列H3(ω)が生成される。
 そして、このようにして得られた行列H0(ω)、行列H1(ω)、行列H2(ω)、および行列H3(ω)から、最終的な行ベクトルH’(gt -1,ω)が得られる。
 したがって、例えば図14に示した音声処理装置11において、次数nの0次の成分のみリセットが行われるタイミングでは、0次の成分については図15のステップS58およびステップS59の処理が行われて行列H0(ω)が生成される。これに対して、次数nの1次乃至3次の成分については、ステップS53乃至ステップS57の処理が行われて行列H1(ω)、行列H2(ω)、および行列H3(ω)が生成される。そして、それらの行列H0(ω)、行列H1(ω)、行列H2(ω)、および行列H3(ω)から行ベクトルH’(gt -1,ω)が生成される。
 なお、次数ごとにリセットを行う場合についても、例えば次数nの0次と1次からなるグループなど、いくつかのグループを設けて、それらのグループごとにリセットを行うようにしてもよい。
 例えば図18に示した例では、次数nの0次から2次までは要素数が少ないため、それらの0次から2次までの次数nを1つのグループとし、次数nの0次、1次、および2次の成分が同時にリセットされるようにしてもよい。この場合、次数nの0次、1次、および2次の成分のリセットのタイミングと、次数nの3次の成分のリセットのタイミングとが互いに異なるタイミングとなる。
 なお、ここでは具体例として次数nごとにリセットを行う場合について説明したが、位数mごとにリセットを行う場合においても次数nごとにリセットを行う場合と同様である。
〈第2の実施の形態の変形例3〉
〈時間周波数ごとのリセットについて〉
 また、図14に示した音声処理装置11の例や図16に示した制御システムの例によらず、すなわち聴取者が1人か複数人かによらず、リセットを時間周波数ωごとに行うようにしてもよい。そのようにすることでもリセット時における演算負荷の上昇を抑制することができる。
 例えば図19に示すように時間周波数ビンωの数がW個であり、W個の時間周波数ω1乃至時間周波数ωWについて行ベクトルH’(gt -1,ω)が求められるとする。すなわち、行ベクトルH’(gt -11)乃至行ベクトルH’(gt -1W)が得られるものとする。
 このような場合に、例えば所定の時間周波数ωについてのみリセットを行うようにしてもよい。その際、時間周波数ωごとに異なるタイミングでリセットされるようにしてもよいし、いくつかの時間周波数ωで同時にリセットされるようにしてもよい。
 例えば図14に示した音声処理装置11において、時間周波数ω1についてのみリセットが行われるタイミングでは、時間周波数ω1については図15のステップS58およびステップS59の処理が行われて行ベクトルH’(gt -11)が生成される。
 これに対して、時間周波数ω2乃至時間周波数ωWについては、図15のステップS53乃至ステップS57の処理が行われて行ベクトルH’(gt -12)乃至行ベクトルH’(gt -1W)が生成される。
 なお、時間周波数ωごとにリセットを行う場合についても、1または複数の時間周波数ωからなるグループをいくつか設けて、それらのグループごとにリセットを行うようにしてもよい。
〈第2の実施の形態の変形例4〉
〈制御システムの他の例〉
 また、図16に示した制御システムでは、複数の聴取者に対応する音声処理装置71が中央にある1つの計算機システムにより動作している場合が想定されていた。
 しかしながら、聴取者の人数がダイナミックに変化するような場合には、中央の計算機システムの性能を予め決めることが困難である。
 そこで、スマートフォンなどの聴取者ごとのシステム(スレーブ)が独立に各聴取者についての駆動信号を生成する処理を行い、スレーブ側において上述したリセットを行うのに十分な処理性能を有していない場合に、スレーブが接続された中央の装置(マスタ)でリセット時の演算の一部または全部を行うようにしてもよい。
 そのような場合、制御システムは、例えば図20に示すように構成される。
 図20に示す制御システムは、マスタ装置101とスレーブ102-1乃至スレーブ102-9とを有している。
 この例では、マスタ装置101とスレーブ102-1乃至スレーブ102-9のそれぞれとが、有線または無線のネットワークを介して相互に接続されている。なお、以下、スレーブ102-1乃至スレーブ102-9を特に区別する必要のない場合、単にスレーブ102とも称することとする。
 マスタ装置101は、本来、スレーブ102において行われる演算(処理)の一部をスレーブ102に代わって行い、その演算結果をスレーブ102に対して供給する。
 スレーブ102は、例えばヘッドホンやスマートフォンなどからなり、図14に示した音声処理装置11に対応する。スレーブ102は、聴取者の頭部の回転等に応じて図15を参照して説明した駆動信号生成処理を行って駆動信号を出力するが、リセット時の演算など、駆動信号生成処理の一部の演算をマスタ装置101に依頼する。
 具体的な例として、例えばリセット時の演算をマスタ装置101が行うようにすることができる。
 この場合、スレーブ102は、マスタ装置101に対して角度gtまたは回転行列R’(gt)とともに、行ベクトルH’(gt -1,ω)の算出を要求する演算要求を送信する。
 すると、スレーブ102から演算要求と、角度gtまたは回転行列R’(gt)とを受信したマスタ装置101は、演算要求に応じて以下の式(42)の演算を行い、その結果得られた行ベクトルH’(gt -1,ω)をスレーブ102へと送信する。
Figure JPOXMLDOC01-appb-M000042
 なお、式(42)の演算に用いられる行ベクトルHS(ω)は、マスタ装置101が事前にスレーブ102から取得するようにしてもよいし、マスタ装置101に予め保持されているようにしてもよい。
 このようにすることで、スレーブ102は、マスタ装置101から受信した行ベクトルH’(gt -1,ω)を用いて、少ない演算量で聴取者に対して提示する音の駆動信号を得ることができる。
 なお、上述したように聴取者ごとや次数nごと、位数mごと、時間周波数ωごとなどにリセットが行われるようにしてもよく、そのリセットのタイミングを適切に定めることでマスタ装置101における演算負荷を低減させることができる。例えば互いに異なるタイミングで各スレーブ102についてのリセットが行われるようにすれば、マスタ装置101における演算負荷を低減させることができる。
〈第2の実施の形態の変形例5〉
〈制御システムの他の例〉
 また、第2の実施の形態の変形例4における場合とは逆に、スレーブ102においてリセット時の演算を行うようにしてもよい。
 そのような場合、マスタ装置101は、逐次、スレーブ102から角度gtや回転行列R’(Δgt)などを受信して次式(43)に示す演算を行い、行ベクトルH’(gt -1,ω)を算出する。
Figure JPOXMLDOC01-appb-M000043
 なお、マスタ装置101では、行ベクトルH’(gt -1,ω)を算出するまでの演算が行われ、駆動信号を得るまでの残りの演算はスレーブ102で行われるようにしてもよいし、マスタ装置101において行ベクトルH’(gt -1,ω)を用いて駆動信号を算出し、スレーブ102に供給するようにしてもよい。
 また、リセット時にはスレーブ102側において、上述した式(42)の演算が行われ、その結果得られた行ベクトルH’(gt -1,ω)がスレーブ102からマスタ装置101に送信される。これにより、マスタ装置101は、スレーブ102から受信した行ベクトルH’(gt -1,ω)を保持しておき、次回に行う式(43)の演算に用いることができる。
 このようにスレーブ102側でリセット時の演算を行うことで、マスタ装置101では、通常、差分を基に計算している行ベクトルH’(gt -1,ω)を、より正確な行ベクトルH’(gt -1,ω)に更新し、誤差をリセットすることができる。
 なお、リセット時の演算に必要となる行ベクトルHS(ω)は、スレーブ102が事前にマスタ装置101から取得するようにしてもよいし、スレーブ102に予め保持されているようにしてもよいし、マスタ装置101とスレーブ102の両方に予め保持されていてもよい。
 また、マスタ装置101とスレーブ102の何れか一方の装置のみが行ベクトルHS(ω)等を保持している場合には、接続時や初期化時などの任意のタイミングで、一方の装置が保持している行ベクトルHS(ω)等を他方の装置に送信するようにしてもよい。
 さらに、この実施の形態における場合においても、聴取者ごとや次数nごと、位数mごと、時間周波数ωごとなどにリセットが行われるようにしてもよく、そのリセットのタイミングも適切に定めることができる。ただし、スレーブ102側でリセット時の演算を行う場合には、1つのスレーブ102において、複数の聴取者についてのリセット時の演算を同時に行うことはないので、リセットのタイミングを分散させる必要はない。
 その他、マスタ装置101とスレーブ102とで、図13や図15を参照して説明した駆動信号生成処理を分担して行うようにしてもよい。つまり、駆動信号生成処理を行うための一部の機能をマスタ装置101が担うことで、受聴者の人数がダイナミックに増加したときなどにおいても柔軟に対応することができる。
〈第3の実施の形態〉
〈提案手法について〉
 ところで、上述した第5の手法および第6の手法においては、位数を制限した回転行列の誤差を解析的に求めることができない。
 したがって、演算後の行ベクトルH’(gt -1,ω)にどの程度の誤差が含まれているかが分からず、品質のコントロールが困難となる。そこで、本提案手法では、位数の制限量に対する誤差の上限を定量的に求めることができるようにした。これにより、以下の(A1)乃至(A6)が実現可能となる。
(A1) 誤差の許容量を設定することで制限可能な位数が自動で決定される
(A2) 演算負荷の上限を設定することで最大誤差が求まる
(A3) 演算を制限する位数が球面調和次数nに対してそれぞれ自動で決定される
(A4) 演算を制限する位数が時間周波数ωに対してそれぞれ自動で決定される
(A5) 累積の誤差の上限が求まる
(A6) 累積の誤差の上限が一定の値を超えたらリセットトリガがかけられる
 ここで、制限する位数による許容誤差の導出について説明する。また、回転行列R’(gt)のテイラー展開による位数kの制限について説明する。
 回転行列R’(gt)=R’(u(α))R’(a(β))R’(u(γ))のうち、対角行列は回転行列R’(u(α))および回転行列R’(u(γ))であり、ブロック対角行列は回転行列R’(a(β))であるので、回転行列R’(a(β))の位数の制限について考える。
 回転行列R’(a(β))のうち、n次のブロック対角行列R’(n)(a(β))は上述の式(37)のように表すことができる。
 行列指数関数を展開すると、テイラー展開の次数lに応じて行列の対角成分の太さが変化する。
 例えば次数l=0に対応する項(行列)は単位行列Eであり、この単位行列Eは対角行列である。また、次数l=1に対応する項では±1番目の対角、すなわち2本の対角の要素がゼロではない要素となっている。
 同様に、次数l=2に対応する項は0番目および±2番目の対角の合計3本の対角の要素がゼロではない要素となっている。さらに、次数l=3に対応する項では±1番目および±3番目の対角の合計4本の対角の要素がゼロではない要素となっている。
 このようにブロック対角行列R’(n)(a(β))をテイラー展開すると、テイラー展開の次数lが大きな項ほど、ブロック対角行列R’(n)(a(β))に対する影響の大きさは小さくなっていく。
 そこで、ブロック対角行列R’(n)(a(β))のテイラー展開において、所定の次数l=l0の項までで打ち切りを行うと、より影響の大きな(l0+1)個の項を選択することができ、その結果、位数を2l0+1の太さ(幅)に制限することができる。
 ここで、回転行列R’(a(β))のn次目のブロック対角行列R’(n)(a(β))のテイラー展開を次数l0の項までで打ち切った場合に得られる、ブロック対角行列R’(n)(a(β))に対応する回転行列R’(a(β))のn次成分をRl0 (n)(a(β))と記すこととする。すなわち、n次成分である行列Rl0 (n)(a(β))は、次数0の項から次数l0の項までの各項の行列の和である。
 また、実際のブロック対角行列R’(n)(a(β))と、テイラー展開により求めたn次成分Rl0 (n)(a(β))との打ち切り誤差の行列を誤差行列ER (n)と記すこととする。
 打ち切り誤差の行列ER (n)を評価するために、スペクトラルノルムを用いることとする。所定の行列Aのスペクトラルノルムは以下の式(44)に示すように定義され、このスペクトラルノルムは固有値の最大値と同値である。これは、球面調和領域の頭部伝達関数(HRTF)のベクトルのノルムに対する誤差ベクトルのノルムの割合の上限を与えることを意味する。スペクトラルノルムの他、フロベニウスノルムなどを用いて解析的に誤差の目安を与えてもよいが、本明細書においてはスペクトラルノルムのみについて説明する。
Figure JPOXMLDOC01-appb-M000044
 そこで、次式(45)に示される誤差行列ER (n)の固有値の絶対値を計算すると、以下の式(46)に示すように表される。
Figure JPOXMLDOC01-appb-M000045
Figure JPOXMLDOC01-appb-M000046
 式(46)に示す値は、複素指数関数におけるテイラー展開の剰余項の絶対値であり、式(46)の右辺がその上限を示している。このことは、例えば「Bobkov, S. G., “Asymptotic Expansions for Products of Characteristic Functions Under Moment Assumptions of Non-integer Orders,” inConvexity and Concentration, pp.297-357, Springer New York, 2017」などに詳細に記載されている。
 誤差行列ER (n)の固有値の絶対値の最大値(上限値)から次式(47)に示すようにスペクトラルノルムが求まる。
Figure JPOXMLDOC01-appb-M000047
 なお、式(47)において上限が求められているのは、導出される固有値において式(46)により示される値が不確定であり、上限(最大値)のみが確定するからである。また、式(46)の右辺において2|xl0|/l0!が選択される場合もあるが、そのようなケースは稀であるので、ここでは説明を行わないこととする。
 式(47)から、誤差行列ER (n)により示されるn次成分Rl0 (n)(a(β))の打ち切り誤差を所定の許容誤差ε0以下にするためには、以下の式(48)を満たすテイラー展開の次数l0で打ち切りを行う必要がある。
Figure JPOXMLDOC01-appb-M000048
 また、式(48)を満たす次数l0のうち、最も小さい次数l0を選択することで、打ち切り誤差、すなわち許容誤差ε0のなかで最も回転のための演算量が少なくなる。
 式(48)における許容誤差ε0は、回転後のベクトル、すなわち行ベクトルH’(gt -1,ω)、または、入力信号のベクトルD’(ω)のノルムに対する誤差ベクトルのノルムの割合である。
 ところで、回転行列はユニタリ行列である(例えば「Angular Momentum in Quantum Mechanics (Investigations in Physics) by E. R. Edmonds, 1957」参照)ため、次式(49)に示すように回転後のベクトルのノルムは変化しない。
Figure JPOXMLDOC01-appb-M000049
 また、回転行列R’(g)全体の誤差を示す誤差行列ER(g)のノルムがεであるとき、次式(50)が成立する。
Figure JPOXMLDOC01-appb-M000050
 これらの式(49)および式(50)から、以下の式(51)が成立する。すなわち、回転後の誤差ベクトルのノルムは、正しい回転後のベクトルのノルムのε倍以下となる。
Figure JPOXMLDOC01-appb-M000051
 さらに、上述の式(47)から誤差行列ER (n)、すなわち許容誤差ε0と各パラメータの関係が明らかとなった。ここでいう各パラメータとは、次数n、回転角度β、テイラー展開の次数l0である。
 これらの3つのパラメータと、許容誤差ε0との4つの変数のうちの3つが決定されると、残りの1つの変数が決定される。
 まず、式(47)におけるnは球面調和関数の次数n、つまり球面調和領域の次数nごとに値が異なることが分かる。
 また、許容誤差ε0を先に決定する場合、次数nごとに異なる次数l0が求まる。これに対して、次数l0を全ての次数nで同じ値に設定する場合には、許容誤差ε0は次数nごとに異なる上限をもつことになり、次数nが大きくなるほど、許容誤差ε0は大きくなる。また、回転角度βが大きいほど許容誤差ε0が大きくなることも分かる。
 さらに、これらのパラメータは時間周波数ωごとに異なる値が指定されてもよい。例えば許容誤差ε0を時間周波数ωの関数ε0(ω)として指定することも可能である。
 また、誤差のある回転を複数回積み重ねると、回転による誤差、すなわち実際の回転行列R’(gt)に対する近似的な回転行列の誤差も累積されていく。仮に、一定の許容誤差ε0を含む行列をt回積み重ねると、累積の誤差εの上限supεは次式(52)に示すようになる。
Figure JPOXMLDOC01-appb-M000052
 さらにτ回目の誤差の上限がετである場合、t回目までの累積の誤差の上限supεは、次式(53)に示すようになる。
Figure JPOXMLDOC01-appb-M000053
 ところで、上述した第6の手法では、微小な回転を積み重ねる手法(以下、微小回転累積手法とも称する)、または回転の積み重ねを行わずに常に回転前の球面調和領域の頭部伝達関数の行ベクトルHS(ω)を回転させる手法(以下、非累積回転手法とも称する)の何れかの手法により行ベクトルH’(gt -1,ω)が算出されると説明した。
 すなわち、微小回転累積手法では、上述の式(41)が計算されて行ベクトルH’(gt -1,ω)が算出され、非累積回転手法では上述の式(35)または式(36)が計算されて行ベクトルH’(gt -1,ω)が算出される。同様に第5の手法においても微小回転累積手法により行ベクトルH’(gt -1,ω)が算出される。
 そこで提案手法では、例えば非累積回転手法において、算出される行ベクトルH’(gt -1,ω)について一定以上の品質の担保を重視する場合、許容誤差ε0を指定して、回転の角度β=βtに対して式(48)から適切な次数l0を計算により求めるようにした。
 その他、例えば角度βと次数l0とが対応付けられたテーブルを予め用意しておき、そのテーブルから角度β=βtに対応付けられている次数l0を得るようにしてもよい。
 なお、角度βtに対して次数l0を求める場合、球面調和関数の次数nごとに次数l0が求められるようにしてもよいし、全ての次数nに対して共通の次数l0が求められるようにしてもよい。
 式(47)の誤差sup||ER (n)||2の値は次数nが大きいほど大きくなるため、式(48)の次数nの値として、それぞれの球面調和関数の次数nと同じ値またはそれより大きい値を代入すればよい。ここで、次数nより大きい値としては、例えば次数nの最大次数Nなどとすることができる。
 また、例えば、求められた次数l0が2nよりも大きくなってしまった場合、定数Cの値を定数C=2n+1とし、次数l0が2n以下である場合には定数C=l0としてもよい。
 また、許容誤差ε0として時間周波数ωごとに異なる値が指定されるようにしてもよいし、位数kの制限自体を行うか否かが時間周波数ωごとに指定されるようにしてもよい。さらに許容誤差ε0は、次数nごとに異なる値が指定されるようにしてもよい。
 例えば回転行列R’(gt)の位数を制限することで得られる近似的な回転行列は、次数l0での打ち切りを行ったテイラー展開によって得られたものでもよいし、もとの回転行列R’(gt)の要素や何らかの方法で得られた要素の値を用いて求められたものであってもよい。
 さらにこの提案手法は、非累積回転手法において行ベクトルHS(ω)を回転させる場合に限らず、入力信号のベクトルD’(ω)を回転させる場合にも適用可能である。
 すなわち、上述した第3の手法において、回転行列R’(gj -1)に代えて、提案手法により回転行列R’(gj -1)に対する位数kの制限を行って得られる近似的な回転行列を用いて式(26)の計算が行われるようにしてもよい。この場合、近似的な回転行列に基づく回転演算によりベクトルD’(ω)が回転されることになる。
 その他、例えば非累積回転手法において回転演算部24等での演算負荷を一定に保ちたい場合、定数C=l0を回転角度βtによらず一定にするようにしてもよい。このようにすれば、角度βによらず演算負荷を一定に保つことができるようになる。
 このとき、定数C=l0は、次数nによらず同じ値とされるようにしてもよいし、次数nごとに異なる値とされるようにしてもよい。
 この場合、誤差の上限εtは角度βtによってさまざまな値となるが、式(47)を計算することでシステムやユーザ、システムを導入するオペレータ(エンジニア)などが上限εtの値を逐次知ることができる。
 例えば最大誤差である上限εtの値やそのグラフなどをGUI(Graphical User Interface)に表示してユーザ等に提示したり、一定の誤差を超えるような回転の角度βt>βmaxが入力された場合、定位を犠牲にして回転角度を角度βmaxまたはβmax以下の角度として回転演算を行うようにしてもよい。
 また、角度βmaxは、時間周波数ωの関数βmax(ω)として、時間周波数ωごとに異なる値が指定されるようにしてもよい。
 このように定数C=l0を回転角度βtによらず一定にする場合等においても、回転行列R’(gt)の位数を制限することで得られる近似的な回転行列は、次数l0での打ち切りを行ったテイラー展開によって得られたものでもよいし、もとの回転行列R’(gt)の要素や何らかの方法で得られた要素の値を用いて求められたものであってもよい。
 その他、定数C=l0を回転角度βtによらず一定にする手法は、非累積回転手法において行ベクトルHS(ω)を回転させる場合に限らず、第3の手法において入力信号のベクトルD’(ω)を回転させる場合にも適用可能である。
〈音声処理装置の構成例〉
 以上のような提案手法が採用される場合、音声処理装置11は、例えば図21に示すように構成される。なお、図21において図11における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図21に示す音声処理装置11は、頭部回転センサ部21、位数決定部201、回転行列演算部23、回転演算部24、頭部伝達関数保持部26、頭部伝達関数合成部27、および時間周波数逆変換部28を有している。
 図21に示す音声処理装置11の構成は、前回方向保持部22および回転係数保持部25が設けられておらず、新たに位数決定部201が設けられている点で図11に示した音声処理装置11の構成と異なっており、その他の点では図11の音声処理装置11と同じ構成となっている。
 位数決定部201には、ユーザ等により指定された許容誤差ε0や演算負荷などを示す指定情報が供給されるとともに、頭部回転センサ部21から頭部回転情報が供給される。許容誤差ε0は、回転行列R’(gt)と、その回転行列R’(gt)の位数を制限することで得られる近似的な回転行列との許容誤差であるともいえる。
 位数決定部201は、供給された指定情報、および頭部回転センサ部21から供給された頭部回転情報に基づいて、回転演算の制限を行う位数kを決定し、その決定結果を回転行列演算部23に供給する。
 回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報と、位数決定部201から供給された位数kの決定結果とに基づいて回転行列R’(gt)の近似的な回転行列を求め、回転演算部24に供給する。
〈駆動信号生成処理の説明〉
 次に、図22のフローチャートを参照して、図21に示した音声処理装置11により行われる駆動信号生成処理について説明する。
 なお、ステップS91の処理は、図13のステップS11の処理と同様であるので、その説明は省略する。
 ステップS92において位数決定部201は、供給された指定情報、および頭部回転センサ部21から供給された頭部回転情報に基づいて、回転演算の制限を行う位数kを決定し、その決定結果を回転行列演算部23に供給する。
 例えば指定情報として許容誤差ε0を示す情報が供給された場合、位数決定部201は、その許容誤差ε0および頭部回転情報により示される回転の角度βtに基づいて次数nごとに式(48)を満たす最小の次数l0を計算により求める。
 なお、上述したように次数l0は予め用意されたテーブル等から得るようにしてもよく、次数l0は全次数nで共通の値とされてもよい。
 次数l0が得られると、位数決定部201は次数l0と次数nに基づいて定数Cを決定する。具体的には、例えば位数決定部201はl0>2nである場合、定数C=2n+1とし、l0≦2nである場合、定数C=l0とすることで位数kを決定する。
 換言すれば、位数決定部201は、指定情報に基づいて許容誤差ε0を設定することにより位数kを決定する。このように許容誤差ε0を設定することは、回転行列R’(gt)による回転演算に対する回転行列R’(gt)の近似的な回転行列による回転演算の誤差の許容値、つまり許容誤差ε0に対応する回転演算の誤差の許容値を設定することであるともいうことができる。
 このようにして決定された位数kは、聴取者の頭部の回転に対応する回転行列R’(gt)に関する回転演算の演算量を制限するためのものである。この場合、回転演算では各次数nについて、位数が位数k=m-Cから位数k=m+Cまでの範囲内かつ-nからnの範囲内にある最大(2C+1)個の要素のみが用いられる。すなわち、位数が所定範囲内にある最大(2C+1)個の要素についてのみ演算が行われ、結果として回転行列R’(gt)を位数kで制限した回転演算が行われることになる。
 また、例えば指定情報として演算負荷を示す情報が供給された場合には、位数決定部201は演算負荷に対して定まる次数l0を定数Cの値とする。換言すれば、位数決定部201は、指定情報に基づいて演算負荷、つまり近似的な回転行列による回転演算の演算量の上限を設定することにより位数kを決定する。
 この場合、定数C=l0は角度βtによらず一定の値とされ、定数C=l0は次数nごとに決定されてもよいし、全次数nで共通とされてもよい。
 ステップS93において回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報と、位数決定部201から供給された位数kとに基づいて回転行列R’(gt)の近似的な回転行列を求め、求めた近似的な回転行列を回転演算部24に供給する。
 例えば回転行列演算部23は、頭部回転情報に基づいて回転行列R’(gt)を求めるとともに、その回転行列R’(gt)の一部の要素を抽出し、回転行列R’(gt)の近似的な回転行列とする。
 具体的には、例えば回転行列演算部23は、回転行列R’(gt)を構成する各n次のブロック対角行列のうち、ステップS92で各次数nについて決定された位数k=m-Cから位数k=m+Cかつ-nからnまでの範囲内にある最大(2C+1)個の要素を抽出する。
 そして、回転行列演算部23は、抽出した要素を近似的な回転行列の対応する要素としてそのまま用い、それ以外の要素の値は0とすることで、回転行列R’(gt)の近似的な回転行列を生成する。なお、抽出された要素をそのまま用いるのではなく、抽出された要素と他の値とから求まる値等を近似的な回転行列の要素として用いるようにしてもよい。
 その他、回転行列演算部23は、回転行列R’(gt)を構成する各次数nのブロック対角行列(n次成分)の次数l0までのテイラー展開を実際に行うことで、回転行列R’(gt)の近似的な回転行列を求めるようにしてもよい。
 この場合、例えば各次数nで次数l0が共通であるとすると、回転行列R’(gt)がテイラー展開の各次数lの項に対応する行列の和で表され、それらの複数の行列のうちの次数0から次数l0までの各次数の行列の和が回転行列R’(gt)の近似的な回転行列とされる。なお、回転行列R’(gt)の近似的な回転行列を生成する場合、回転行列R’(a(βt))の近似的な回転行列と、回転行列R’(u(αt))と、回転行列R’(u(γt))とを合成するようにしてもよい。
 このようにして近似的な回転行列が得られると、その後、ステップS94乃至ステップS96の処理が行われて駆動信号生成処理は終了するが、これらの処理は図13のステップS16乃至ステップS18の処理と同様であるので、その説明は省略する。
 但し、ステップS94では、ステップS93で得られた近似的な回転行列が用いられて行ベクトルHS(ω)に対して式(36)と同様の計算が行われ、球面調和領域で頭部伝達関数が回転される。これにより回転行列R’(gt)による位数kで制限された回転演算が実現されることになる。
 なお、ステップS93では回転行列R’(gt)が生成され、ステップS94においてその回転行列R’(gt)のうち、位数が位数k=m-Cから位数k=m+Cまでかつ-nからnまでの範囲内の要素のみが用いられて回転演算が行われるようにしてもよい。このようにすることでも位数kで制限された回転演算を実現することができる。
 以上のようにして音声処理装置11は、回転行列R’(gt)の近似的な回転行列を生成し、その近似的な回転行列と、行ベクトルHS(ω)とに基づいて回転後の行ベクトルH’(gt -1,ω)を求める。このようにすることで、提案手法では行ベクトルH’(gt -1,ω)に含まれる誤差を許容範囲内に抑えることができ、十分な品質で、かつより効率よく音を再生することができる。
 なお、以上のような提案手法は、図11に示した構成の音声処理装置11の回転演算部24が、行ベクトルH’(gt-1 -1,ω)がない状態において、行ベクトルHS(ω)と回転行列R’(gt)とに基づいて行ベクトルH’(gt -1,ω)を算出する場合にも適用可能である。
〈第4の実施の形態〉
〈微小回転累積手法への適用について〉
 ところで、上述の提案手法は、微小回転累積手法にも適用することができる。
 例えば微小回転累積手法において、リアルタイムの追従性を重視するときには、許容誤差ε0を指定して、回転角度の差分Δβtに対して式(48)から適切な次数l0を計算により求めるようにすることができる。その他、例えば差分Δβtと次数l0とが対応付けられたテーブルを予め用意しておき、そのテーブルから差分Δβtに対応付けられている次数l0を得るようにしてもよい。
 この場合においても球面調和関数の次数nごとに次数l0が求められるようにしてもよいし、全ての次数nに対して共通の次数l0が求められるようにしてもよい。
 式(47)の誤差の値は次数nが大きいほど大きくなるため、式(48)の次数nの値として、それぞれの球面調和関数の次数nと同じ値またはそれより大きい値を代入すればよい。ここで、次数nより大きい値としては、例えば次数nの最大次数Nなどとすることができる。
 例えば、求められた次数l0が2nよりも大きくなってしまった場合、定数Cの値を定数C=2n+1とし、次数l0が2n以下である場合には定数C=l0としてもよい。
 また、許容誤差ε0は、時間周波数ωごとに異なる値が指定されるようにしてもよいし、位数kの制限自体を行うか否かが時間周波数ωごとに指定されるようにしてもよい。
 例えば回転行列R’(Δgt)を位数kで制限することで得られる近似的な回転行列は、次数l0での打ち切りを行ったテイラー展開によって得られたものでもよいし、もとの回転行列R’(Δgt)の要素や何らかの方法で得られた要素の値を用いて求められたものであってもよい。
 その他、微小回転累積手法におけるt回目の回転時の累積の誤差の上限εは、上述の式(52)を計算することで求めることができる。
 そこで、例えば提案手法を第6の手法に適用する場合、式(52)の計算で求められた累積の誤差εの上限supεが所定の許容誤差εmaxを超えた場合にリセットトリガがオンされるようにしてもよい。なお、許容誤差εmaxは、時間周波数ωごとに異なる値であってもよいし、時間周波数ωによらず一定の値であってもよい。
 図23に累積の誤差εの時間的な推移を示す。なお、図23において縦軸はエラー行列(誤差行列)のスペクトラルノルムを示しており、横軸は時間を示している。
 図23では、曲線L51は、各時刻における、式(52)に示した累積の誤差εの上限supεを示しており、曲線L52は各時刻における実際の累積の誤差を示しており、直線L53は設定された許容誤差εmaxを示している。
 曲線L52により示される実際の累積の誤差は、累積の誤差εの上限を超えることはないが、微小な回転を積み重ねていくたびに累積の誤差は大きくなっていく。そこで、この例では、累積の誤差εの上限supεが許容誤差εmaxを超えた時刻t51のタイミングでリセットトリガがオンとされている。
 さらに、例えば微小回転累積手法において、演算負荷を一定に保つことを重視するときには、許容誤差ε0と、回転行列R’(Δgt)の対角成分の太さ(有効要素幅)を定める定数C=l0の上限とを指定して、式(48)を満たす最大の角度βと、回転角度の差分Δβtとのうちのより小さい方を回転行列R’(Δgt)に用いる角度とするようにしてもよい。
 この場合、例えば式(48)を満たす最大の角度βよりも差分Δβtが小さい場合には、実際に用いる定数Cの値を、許容誤差ε0の範囲内、つまり式(48)が満たされる範囲内でさらに小さい値とするようにしてもよい。
 また、式(48)を満たす最大の角度βよりも差分Δβtが大きい場合、回転演算により得られる行ベクトルH’(gt -1,ω)は、実際の聴取者(ユーザ)の頭部の回転に追従しきれておらず、回転に遅れが生じた状態となる。しかし、その後の処理において、回転の遅れがなくなるように回転行列R’(Δgt)に用いる角度、すなわち差分Δβtが定められるようにすればよい。
 以上のように定数C=l0に上限を設ける場合には、回転行列R’(Δgt)の対角成分の太さ(幅)が一定以下となるので、回転演算部24による回転演算等での演算負荷も一定の負荷以下となるようにすることができる。すなわち、定数C=l0の上限を設定することで、回転演算における演算量の上限を設定することができる。
 したがって、聴取者が複数人いる場合には、例えば差分Δβtが小さい聴取者から順番に回転演算部24での回転演算を行っていくようにすることができる。そうすれば、演算負荷に余力(余裕)があるときには、差分Δβtが大きい聴取者についての回転演算では、定数C=l0を他の聴取者における場合よりも大きくすることもできる。
 また、式(47)の誤差の値は次数nが大きいほど大きくなる。そのため、定数Cに上限を設ける場合においても式(48)の次数nの値として、それぞれの球面調和関数の次数nと同じ値またはそれより大きい値を代入すればよい。
 さらに、定数Cに上限を設ける例においても、許容誤差ε0は時間周波数ωごとに異なる値が指定されるようにしてもよいし、位数kの制限自体を行うか否かが時間周波数ωごとに指定されるようにしてもよい。
 その他、例えば回転行列R’(Δgt)を位数kで制限することで得られる近似的な回転行列は、次数l0での打ち切りを行ったテイラー展開によって得られたものでもよいし、もとの回転行列R’(Δgt)の要素や何らかの方法で得られた要素の値を用いて求められたものであってもよい。
 また、この例においてもt回目の回転時の累積の誤差の上限supεは、上述の式(52)を計算することで求めることができるので、式(52)の計算で求められた累積の誤差の上限supεが所定の許容誤差εmaxを超えた場合にリセットトリガがオンされるようにしてもよい。そのような場合においても累積の誤差の上限supεと実際の累積の誤差は、図23に示したように推移することになる。なお、この場合においても許容誤差εmaxは、時間周波数ωごとに異なる値であってもよいし、時間周波数ωによらず一定の値であってもよい。
 また、微小回転累積手法において、演算負荷を一定に保ちつつリアルタイムの追従性も重視する場合、次数l0または定数Cを回転角度、すなわち差分Δβtによらず一定にするようにしてもよい。
 この場合、一度の回転で生じる誤差の上限εtは差分Δβtによってさまざまな値となるが、式(47)を計算することでシステムやユーザ、オペレータなどが上限εtの値を逐次知ることができる。また、例えば式(53)を計算することで累積の誤差の上限supεを知ることもできる。
 例えば誤差の上限εtの値や累積の誤差の上限supεなどをGUIに表示してユーザ等に提示したり、累積の誤差の上限supεが所定の許容誤差εmaxを超えた場合に、リセットトリガがオンされるようにすることもできる。なお、許容誤差εmaxの値として、時間周波数ωごとに異なる値εmax(ω)が指定されるようにしてもよい。
 図24に累積の誤差の上限εtの時間的な推移を示す。なお、図24において縦軸はエラー行列(誤差行列)のスペクトラルノルムを示しており、横軸は時間を示している。
 図24では、曲線L61は、各時刻における、式(53)に示した累積の誤差の上限supεを示しており、曲線L62は各時刻における実際の累積の誤差を示しており、直線L63は設定された許容誤差εmaxを示している。
 図24に示す例においても図23に示した例と同様に、曲線L61に示される累積の誤差の上限supεも曲線L62に示される実際の累積の誤差も時間とともに増加していくが、実際の累積の誤差が累積の誤差の上限supεを超えることはない。
 特に、図24に示す例では、各時刻における差分Δβtの大きさによって誤差の上限εtが変化する。そのため、曲線L61や曲線L62に示される値は不規則に上昇しているが、式(53)により累積の誤差の上限supεを求めることが可能であるから、適切にリセットを行うことができる。図24に示す例においても累積の誤差の上限supεが許容誤差εmaxを超えた時刻t61のタイミングでリセットトリガがオンとされている。
〈音声処理装置の構成例〉
 以上のように微小回転累積手法に提案手法が適用される場合、音声処理装置11は、例えば図25に示すように構成される。なお、図25において図11または図21における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図25に示す音声処理装置11は、頭部回転センサ部21、位数決定部201、前回方向保持部22、回転行列演算部23、回転演算部24、回転係数保持部25、頭部伝達関数保持部26、頭部伝達関数合成部27、および時間周波数逆変換部28を有している。
 図25に示す音声処理装置11の構成は、新たに位数決定部201が設けられている点で図11に示した音声処理装置11の構成と異なっており、その他の点では図11の音声処理装置11と同じ構成となっている。
 位数決定部201は、供給された指定情報、および回転行列演算部23から供給された差分Δβtに基づいて、回転演算の制限を行う位数kを決定し、その決定結果を回転行列演算部23に供給する。
 回転行列演算部23は、頭部回転センサ部21から供給された頭部回転情報、前回方向保持部22から供給された前回方向情報、および位数決定部201から供給された位数kの決定結果に基づいて回転行列R’(Δgt)の近似的な回転行列を求め、回転演算部24に供給する。
〈駆動信号生成処理の説明〉
 次に、図26のフローチャートを参照して、図25に示した音声処理装置11により行われる駆動信号生成処理について説明する。
 なお、ステップS131およびステップS132の処理は、図13のステップS11およびステップS12の処理と同様であるので、その説明は省略する。
 但し、ステップS132では、求められた差分Δgtのうちの差分Δβtが、回転行列演算部23から位数決定部201に供給される。
 ステップS133において位数決定部201は、供給された指定情報、および回転行列演算部23から供給された差分Δβtに基づいて、回転演算の制限を行う位数kを決定し、その決定結果を回転行列演算部23に供給する。
 例えば指定情報として許容誤差ε0を示す情報が供給された場合、位数決定部201は、その許容誤差ε0と差分Δβtとに基づいて次数nごとに式(48)を満たす最小の次数l0を計算により求める。このとき差分Δβtが式(48)における角度βとして用いられて次数l0が決定される。
 なお、上述したように次数l0は予め用意されたテーブル等から得るようにしてもよく、次数l0は全次数nで共通の値とされてもよい。
 次数l0が得られると、位数決定部201は次数l0と次数nに基づいて定数Cを決定する。具体的には、例えば位数決定部201はl0>2nである場合、定数C=2n+1とし、l0≦2nである場合、定数C=l0とすることで位数kを決定する。このように位数決定部201は、指定情報に基づいて許容誤差ε0を設定することにより位数kを決定する。
 このようにして決定された位数kは、第3の実施の形態における場合と同様に、聴取者の頭部の仰角方向の回転に対応する回転行列R’(a(Δβt))に関する回転演算の演算量を制限するためのものである。この場合、少なくとも仰角方向については、各次数nで位数が位数k=m-Cから位数k=m+Cまでかつ-nからnまでの範囲内にある最大(2C+1)個の要素のみが用いられ、回転行列R’(a(Δβt))を位数kで制限した回転演算が行われることになる。
 また、例えば指定情報として演算負荷を示す情報、すなわち回転演算の演算量の上限を定める定数C=l0の上限値と、許容誤差ε0とを示す情報が供給された場合、位数決定部201は定数C=l0の上限値と許容誤差ε0とから式(48)を満たす最大の角度βを求める。
 そして、位数決定部201は、求めた角度βと実際に頭部回転情報および前回方向情報から求まる差分Δβtとを比較し、それらのうちの小さい方を最終的な差分Δβtとして回転行列演算部23に供給する。また、位数決定部201は、指定情報により示される定数C=l0の上限値に対して定まる位数を回転演算の制限を行う位数kとして決定し、その決定結果も回転行列演算部23に供給する。
 さらに、例えば角度βtによらず次数l0または定数Cの値が一定値となるように定められている場合には、位数決定部201は、その次数l0または定数Cの値に対して定まる位数を回転演算の制限を行う位数kとして決定する。
 ステップS134において、回転行列演算部23は、ステップS132で得られた差分Δgtと、位数決定部201から供給された位数kとに基づいて、差分Δβtに応じた仰角方向の回転行列R’(a(Δβt))の近似的な回転行列Rs’(a(Δβt))を求める。
 例えば回転行列演算部23は、予め保持しているテーブルと差分Δβtとに基づいて回転行列R’(a(Δβt))を求めるとともに、その回転行列R’(a(Δβt))を構成する各n次のブロック対角行列のうち、ステップS133で各次数nについて決定された位数k=m-Cから位数k=m+Cまでかつ-nからnまでの範囲内にある最大(2C+1)個の要素を抽出する。
 そして、回転行列演算部23は、抽出した要素を近似的な回転行列Rs’(a(Δβt))の対応する要素としてそのまま用い、それ以外の要素の値は0とすることで近似的な回転行列Rs’(a(Δβt))を求める。なお、抽出された要素をそのまま用いるのではなく、抽出された要素と他の値とから求まる値等を近似的な回転行列Rs’(a(Δβt))の要素として用いるようにしてもよい。
 その他、回転行列演算部23は、回転行列R’(a(Δβt))を構成する各次数nのブロック対角行列(n次成分)の次数l0までのテイラー展開を実際に行うことで、近似的な回転行列Rs’(a(Δβt))を求めるようにしてもよい。
 この場合、例えば各次数nで次数l0が共通であるとすると、回転行列R’(a(Δβt))がテイラー展開の各次数lの項に対応する行列の和で表され、それらの複数の行列のうちの次数0から次数l0までの各次数の行列の和が近似的な回転行列Rs’(a(Δβt))とされる。
 なお、位数決定部201から回転行列演算部23に最終的な差分Δβtが供給された場合には、回転行列演算部23は、その差分Δβtを用いて近似的な回転行列Rs’(a(Δβt))を求める。
 このようにして近似的な回転行列Rs’(a(Δβt))が得られると、その後、ステップS135乃至ステップS139の処理が行われて駆動信号生成処理は終了するが、これらの処理は図13のステップS14乃至ステップS18の処理と同様であるので、その説明は省略する。
 但し、ステップS136では、ステップS134で得られた近似的な回転行列Rs’(a(Δβt))と、ステップS135で得られた回転行列R’(u(Δαt))および回転行列R’(u(Δγt))とが合成されて回転行列R’(Δgt)が求められる。
 このようにして得られた回転行列R’(Δgt)を用いた回転演算では、位数kによって回転演算、すなわち演算量が制限される。この場合、回転演算では位数が位数k=m-Cから位数k=m+Cまでかつ-nからnまでの範囲内にある最大(2C+1)個の要素のみが用いられることになる。
 以上のようにして音声処理装置11は、近似的な回転行列Rs’(a(Δβt))を用いて回転行列R’(Δgt)を求め、その回転行列R’(Δgt)と、前回の行ベクトルH’(gt-1 -1,ω)とに基づいて、今回の行ベクトルH’(gt -1,ω)を求める。このようにすることで、提案手法では行ベクトルH’(gt -1,ω)に含まれる誤差を許容範囲内に抑えることができ、十分な品質で、かつより効率よく音を再生することができる。
〈第4の実施の形態の変形例1〉
〈音声処理装置の構成例〉
 以上のように微小回転累積手法に提案手法が適用される場合、音声処理装置11の構成は図25に示した構成に限らず、図27に示す構成とすることもできる。なお、図27において図14または図25における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図27に示す音声処理装置11は、頭部回転センサ部21、位数決定部201、前回方向保持部22、回転行列演算部23、回転演算部24、回転係数保持部25、頭部伝達関数保持部26、頭部伝達関数合成部27、および時間周波数逆変換部28を有している。
 図27に示す音声処理装置11は、新たに位数決定部201が設けられ、位数決定部201から回転行列演算部23および回転演算部24にリセットトリガが供給される点で図14の音声処理装置11と異なり、その他の点では図14の音声処理装置11と同じ構成となっている。
 図27に示す例では、位数決定部201は、回転行列演算部23から供給された差分Δβtまたは頭部回転センサ部21から供給された頭部回転情報と、供給された指定情報とに基づいて回転演算の制限を行う位数kを決定し、その決定結果を回転行列演算部23に供給する。また、位数決定部201は、適宜、リセットトリガを生成し、回転行列演算部23および回転演算部24に供給する。
〈駆動信号生成処理の説明〉
 次に、図28のフローチャートを参照して、図27に示した音声処理装置11により行われる駆動信号生成処理について説明する。
 なお、ステップS161の処理は、図26のステップS131の処理と同様であるので、その説明は省略する。但し、ステップS161では頭部回転センサ部21で得られた頭部回転情報が回転行列演算部23だけでなく位数決定部201にも供給される。
 ステップS162において位数決定部201は、供給された指定情報により示される許容誤差ε0等と、予め定められた許容誤差εmaxとに基づいて、リセットを行うか否かを判定する。
 例えば位数決定部201は、許容誤差ε0等に基づいて式(52)または式(53)を計算して累積の誤差の上限supε、換言すれば許容誤差ε0等に対応する回転演算の誤差の許容値の累積の上限を求め、求めた累積の誤差の上限supεが許容誤差εmaxよりも大きい場合、リセットを行うと判定する。なお、このリセットは次数nごとや位数mごと、時間周波数ωごとに行われるようにしてもよいし、複数の聴取者ごとに駆動信号が生成される場合には、聴取者ごとにリセットが行われてもよい。
 ステップS162においてリセットを行わないと判定された場合、位数決定部201は回転行列演算部23および回転演算部24に供給するリセットトリガをオフとし、その後、ステップS163乃至ステップS168の処理が行われる。
 なお、これらのステップS163乃至ステップS168の処理は、図26のステップS132乃至ステップS137の処理と同様であるので、その説明は省略する。
 一方、ステップS162においてリセットを行うと判定された場合、位数決定部201は回転行列演算部23および回転演算部24に供給するリセットトリガをオンとし、その後、ステップS169およびステップS170の処理が行われる。
 なお、これらのステップS169およびステップS170の処理は、図15のステップS58およびステップS59の処理と同様であるので、その説明は省略する。その他、リセットが行われる場合、ステップS169およびステップS170の処理に代えて、図22のステップS92乃至ステップS94の処理が行われるようにしてもよい。
 また、ステップS168またはステップS170の処理が行われると、その後、ステップS171およびステップS172の処理が行われて駆動信号生成処理は終了するが、これらの処理は図26のステップS138およびステップS139の処理と同様であるので、その説明は省略する。
 以上のようにして音声処理装置11は、累積の誤差が少ない間は近似的な回転行列Rs’(a(Δβt))を用いて行ベクトルH’(gt -1,ω)を求め、リセットトリガがオンされると正確な回転行列R’(gt)や行ベクトルH’(gt -1,ω)を求めて駆動信号を生成する。このようにすることで行ベクトルH’(gt -1,ω)に含まれる誤差を許容範囲内に抑えることができ、十分な品質で、かつより効率よく音を再生することができる。
〈その他の変形例1〉
〈時間周波数ごとの許容誤差について〉
 上述したように、時間周波数ωごとに許容誤差ε0や許容誤差εmaxを決定するようにしてもよい。すなわち、時間周波数ωごとに位数kが決定されるようにしてもよい。
 例えば図29に示すように時間周波数ビンωの数がW個であり、W個の時間周波数ω1乃至時間周波数ωWについて行ベクトルH’(gt -1,ω)が求められるとする。すなわち、行ベクトルH’(gt -11)乃至行ベクトルH’(gt -1W)が得られるものとする。
 このような場合に、時間周波数ω1乃至時間周波数ωWのそれぞれに対して、許容誤差ε0に対応する許容誤差ε01)乃至許容誤差ε0W)を定めるようにすることができる。
 なお、時間周波数ωごとに許容誤差ε0を決定する場合、例えば上下や前後の音像定位に重要な帯域(時間周波数ω)に対して小さい許容誤差ε0を設定し、逆に相対的に重要でない帯域(時間周波数ω)に対して大きい許容誤差ε0を設定することができる。
 具体的には、例えば5kHz乃至13kHzなどの帯域に対応する時間周波数ωに対して小さい許容誤差ε0を設定し、16kHz以上の帯域に対応する時間周波数ωに対して大きい許容誤差ε0を設定するなどとすることができる。このようにすることで、同じ演算量でも聴感上よりよい駆動信号を生成することが可能となる。
 また、前述のような前提知識ではなく、時間周波数領域の頭部伝達関数からなる行列H(ω)や、球面調和領域の頭部伝達関数からなる行列H’(ω)などから各時間周波数ωについての許容誤差ε0(ω)を設定するようにしてもよい。
 そのような場合、例えば行列H’(ω)、すなわち行ベクトルH’(gt -1,ω)のノルムを事前に計算し、得られたノルムの値が小さい時間周波数ωに対して大きい許容誤差ε0を設定し、逆にノルムが大きい時間周波数ωに対して小さい許容誤差ε0を設定することが考えられる。
 このようにすることで、より信号の大きい帯域(時間周波数ω)で式(47)に示した誤差が小さくなるようにし、信号全体での誤差が小さくなることが期待できる。これは、頭部伝達関数(HRTF)が個人に最適化されて適用される場合などに有効である。
 さらに、時間周波数ωごとに許容誤差ε0や許容誤差εmaxを決定する場合に、上述した上下や前後の音像定位に対する帯域の重要度合いに応じて許容誤差ε0や許容誤差εmaxを設定する方法と、行ベクトルH’(gt -1,ω)のノルムに応じて許容誤差ε0や許容誤差εmaxを設定する方法とを組み合わせるようにしてもよい。
〈その他の変形例2〉
〈次数nごとの許容誤差について〉
 また、上述したように球面調和関数の次数nごとに許容誤差ε0(以下、許容誤差εnとも記すこととする)を決定するようにしてもよい。
 すなわち、例えば図30の矢印Q51に示すように、回転行列R’(gt)や回転行列R’(Δgt)が次数n=4までのブロックの成分を有しているものとする。そのような場合、各次数n=0乃至次数n=4のそれぞれに対して、許容誤差ε0乃至許容誤差ε4のそれぞれを設定することが考えられる。
 特に、球面調和領域での頭部伝達関数は、高次になるほど係数が小さくなる傾向がある。そこで、そのような傾向を利用し、高次、つまり大きい次数nでは大きい許容誤差εnを設定し、低次、つまり小さい次数nでは小さい許容誤差εnを設定することで、信号全体の誤差を小さくすることができるようにしてもよい。
 また、球面調和領域での頭部伝達関数が有する傾向を、行列H’(ω)、すなわち行ベクトルH’(gt -1,ω)から計算により事前に求めておき、その計算結果に基づいて各次数nの許容誤差εnを設定するようにしてもよい。
 例えば図30の矢印Q52に示すように、行ベクトルH’(gt -1,ω)が、次数n=0である要素からなる行列H0(ω)、次数n=1である要素からなる行列H1(ω)、次数n=2である要素からなる行列H2(ω)、および次数n=3である要素からなる行列H3(ω)から構成されるとする。
 そのような場合、例えば各次数nの要素からなる行列H0(ω)乃至行列H3(ω)についてノルムを求め、それらのノルムに基づいて許容誤差ε0乃至許容誤差ε3を設定すればよい。
 さらに、各次数nについて時間周波数ωごとに許容誤差ε0を決定するようにしてもよい。
〈その他の変形例3〉
 頭部回転センサ部のセンサ情報が無線などにより計算機1へ伝送される場合、また、再生用のヘッドホンが頭部回転センサと一体になっていて、ヘッドホン再生信号が計算機1から無線などで伝送される場合、遅延が生じる可能性がある。
 この場合、計算機1での演算量が制限されていない場合は正しい回転演算を行い、ヘッドホンに搭載された計算機2にて、遅延分の回転Δgを行うことを考える。
 ヘッドホンに搭載された計算機2に演算量の制限がある場合、遅延分の回転Δgの回転演算は、位数を制限して行うことができる。
 この場合、ヘッドホンへは、計算機1で回転演算がなされた入力信号のベクトルD’(g,ω)が送信され、計算機2において回転Δg分の位数を制限した回転演算と、入力信号D’(g,ω)と球面調和領域での頭部伝達関数のベクトルH’(ω)との合成が行われ、左右のヘッドホンの駆動信号が生成される。
〈コンピュータの構成例〉
 ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどが含まれる。
 図31は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
 バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、入力部506、出力部507、記録部508、通信部509、及びドライブ510が接続されている。
 入力部506は、キーボード、マウス、マイクロホン、撮像素子などよりなる。出力部507は、ディスプレイ、スピーカアレイなどよりなる。記録部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインターフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体511を駆動する。
 以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記録媒体511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 また、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 さらに、本技術は、以下の構成とすることも可能である。
(1)
 聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定する位数決定部と、
 前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させる回転演算部と、
 前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する合成部と
 を備える信号処理装置。
(2)
 前記位数決定部は、前記回転行列に関する前記演算の誤差の許容値を設定すること、または前記演算量の上限を設定することで前記位数を決定する
 (1)に記載の信号処理装置。
(3)
 前記位数決定部は、前記回転行列をテイラー展開したときの打ち切り誤差が前記許容値に対応する許容誤差以下となるテイラー展開の次数を求め、そのテイラー展開の次数に基づいて前記位数を決定する
 (2)に記載の信号処理装置。
(4)
 前記位数決定部は、時間周波数ごとに前記位数を決定する
 (2)乃至(3)の何れか一項に記載の信号処理装置。
(5)
 前記位数決定部は、球面調和領域の次数ごとに前記位数を決定する
 (2)乃至(4)の何れか一項に記載の信号処理装置。
(6)
 前記回転演算部は、前記回転行列を前記位数で制限した前記演算として、所定範囲の前記位数の要素についてのみ前記回転行列により前記頭部伝達関数を回転させる演算を行う
 (2)乃至(5)の何れか一項に記載の信号処理装置。
(7)
 前記回転演算部は、少なくとも1つの回転方向に対する前記頭部伝達関数の回転演算について、所定時刻よりも前の他の時刻における前記回転方向の前記回転演算の演算結果を用いて前記所定時刻の前記回転演算を行うことで、前記所定時刻における前記回転後の前記頭部伝達関数を求める
 (2)乃至(5)の何れか一項に記載の信号処理装置。
(8)
 前記回転演算部は、前記所定時刻における前記聴取者の頭部の前記回転方向の回転角度と、前記他の時刻における前記聴取者の頭部の前記回転方向の回転角度との差分に応じた回転行列、および前記他の時刻における前記回転方向の前記回転演算の演算結果に基づいて、前記所定時刻における前記回転方向の前記回転演算を行う
 (7)に記載の信号処理装置。
(9)
 前記回転演算部は、前記回転行列を前記位数で制限した前記演算として、所定範囲の前記位数の要素についてのみ前記回転演算を行う
 (8)に記載の信号処理装置。
(10)
 前記回転演算部は、前記回転方向としての仰角方向について、前記他の時刻における前記回転方向の前記回転演算の演算結果を用いて、前記所定時刻における前記回転方向の前記回転演算を行う
 (8)または(9)に記載の信号処理装置。
(11)
 前記回転演算部は、
  回転行列のリセットを行わない場合、前記他の時刻における前記回転方向の前記回転演算の演算結果を用いて、前記所定時刻における前記回転方向の前記回転演算を行い、
  回転行列のリセットを行う場合、前記所定時刻における前記聴取者の頭部の前記回転方向の回転角度に応じた回転行列と前記頭部伝達関数とに基づいて、前記所定時刻における前記回転方向の前記回転演算を行う
 (8)乃至(10)の何れか一項に記載の信号処理装置。
(12)
 前記位数決定部は、各時刻における前記許容値の累積の上限に基づいて前記リセットを行う
 (11)に記載の信号処理装置。
(13)
 前記リセットは次数ごと、位数ごと、または時間周波数ごとに行われる
 (11)または(12)に記載の信号処理装置。
(14)
 複数の前記聴取者ごとに前記ヘッドホン駆動信号が生成される場合、前記聴取者ごとに前記リセットが行われる
 (11)乃至(13)の何れか一項に記載の信号処理装置。
(15)
 前記回転演算部は、前記頭部回転に対応する前記回転行列を構成する所定回転方向への回転を行う回転行列が複数の行列の和により表される場合、前記回転行列を前記位数で制限した前記演算として、前記複数の前記行列のうちのいくつかの前記行列の和を前記所定回転方向への回転を行う回転行列として用いて前記頭部伝達関数を回転させる演算を行う
 (1)乃至(14)の何れか一項に記載の信号処理装置。
(16)
 信号処理装置が、
 聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定し、
 前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させ、
 前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する
 信号処理方法。
(17)
 聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定し、
 前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させ、
 前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する
 ステップを含む処理をコンピュータに実行させるプログラム。
 11 音声処理装置, 21 頭部回転センサ部, 22 前回方向保持部, 23 回転行列演算部, 24 回転演算部, 25 回転係数保持部, 26 頭部伝達関数保持部, 27 頭部伝達関数合成部, 28 時間周波数逆変換部, 201 位数決定部

Claims (17)

  1.  聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定する位数決定部と、
     前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させる回転演算部と、
     前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する合成部と
     を備える信号処理装置。
  2.  前記位数決定部は、前記回転行列に関する前記演算の誤差の許容値を設定すること、または前記演算量の上限を設定することで前記位数を決定する
     請求項1に記載の信号処理装置。
  3.  前記位数決定部は、前記回転行列をテイラー展開したときの打ち切り誤差が前記許容値に対応する許容誤差以下となるテイラー展開の次数を求め、そのテイラー展開の次数に基づいて前記位数を決定する
     請求項2に記載の信号処理装置。
  4.  前記位数決定部は、時間周波数ごとに前記位数を決定する
     請求項2に記載の信号処理装置。
  5.  前記位数決定部は、球面調和領域の次数ごとに前記位数を決定する
     請求項2に記載の信号処理装置。
  6.  前記回転演算部は、前記回転行列を前記位数で制限した前記演算として、所定範囲の前記位数の要素についてのみ前記回転行列により前記頭部伝達関数を回転させる演算を行う
     請求項2に記載の信号処理装置。
  7.  前記回転演算部は、少なくとも1つの回転方向に対する前記頭部伝達関数の回転演算について、所定時刻よりも前の他の時刻における前記回転方向の前記回転演算の演算結果を用いて前記所定時刻の前記回転演算を行うことで、前記所定時刻における前記回転後の前記頭部伝達関数を求める
     請求項2に記載の信号処理装置。
  8.  前記回転演算部は、前記所定時刻における前記聴取者の頭部の前記回転方向の回転角度と、前記他の時刻における前記聴取者の頭部の前記回転方向の回転角度との差分に応じた回転行列、および前記他の時刻における前記回転方向の前記回転演算の演算結果に基づいて、前記所定時刻における前記回転方向の前記回転演算を行う
     請求項7に記載の信号処理装置。
  9.  前記回転演算部は、前記回転行列を前記位数で制限した前記演算として、所定範囲の前記位数の要素についてのみ前記回転演算を行う
     請求項8に記載の信号処理装置。
  10.  前記回転演算部は、前記回転方向としての仰角方向について、前記他の時刻における前記回転方向の前記回転演算の演算結果を用いて、前記所定時刻における前記回転方向の前記回転演算を行う
     請求項8に記載の信号処理装置。
  11.  前記回転演算部は、
      回転行列のリセットを行わない場合、前記他の時刻における前記回転方向の前記回転演算の演算結果を用いて、前記所定時刻における前記回転方向の前記回転演算を行い、
      回転行列のリセットを行う場合、前記所定時刻における前記聴取者の頭部の前記回転方向の回転角度に応じた回転行列と前記頭部伝達関数とに基づいて、前記所定時刻における前記回転方向の前記回転演算を行う
     請求項8に記載の信号処理装置。
  12.  前記位数決定部は、各時刻における前記許容値の累積の上限に基づいて前記リセットを行う
     請求項11に記載の信号処理装置。
  13.  前記リセットは次数ごと、位数ごと、または時間周波数ごとに行われる
     請求項11に記載の信号処理装置。
  14.  複数の前記聴取者ごとに前記ヘッドホン駆動信号が生成される場合、前記聴取者ごとに前記リセットが行われる
     請求項11に記載の信号処理装置。
  15.  前記回転演算部は、前記頭部回転に対応する前記回転行列を構成する所定回転方向への回転を行う回転行列が複数の行列の和により表される場合、前記回転行列を前記位数で制限した前記演算として、前記複数の前記行列のうちのいくつかの前記行列の和を前記所定回転方向への回転を行う回転行列として用いて前記頭部伝達関数を回転させる演算を行う
     請求項1に記載の信号処理装置。
  16.  信号処理装置が、
     聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定し、
     前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させ、
     前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する
     信号処理方法。
  17.  聴取者の頭部回転に対応する回転行列に関する演算の演算量を制限するための位数を決定し、
     前記回転行列を前記位数で制限した前記演算により球面調和領域の頭部伝達関数を回転させ、
     前記演算により得られた回転後の前記頭部伝達関数と、球面調和領域の音の信号とを合成することでヘッドホン駆動信号を生成する
     ステップを含む処理をコンピュータに実行させるプログラム。
PCT/JP2020/011361 2019-03-28 2020-03-16 信号処理装置および方法、並びにプログラム WO2020196004A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/440,550 US20220159402A1 (en) 2019-03-28 2020-03-16 Signal processing device and method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019063882 2019-03-28
JP2019-063882 2019-03-28

Publications (1)

Publication Number Publication Date
WO2020196004A1 true WO2020196004A1 (ja) 2020-10-01

Family

ID=72611467

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/011361 WO2020196004A1 (ja) 2019-03-28 2020-03-16 信号処理装置および方法、並びにプログラム

Country Status (2)

Country Link
US (1) US20220159402A1 (ja)
WO (1) WO2020196004A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3112016B1 (fr) * 2020-06-30 2023-04-14 Fond B Com Procédé de conversion d’un premier ensemble de signaux représentatifs d’un champ sonore en un second ensemble de signaux et dispositif électronique associé

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119318A1 (ja) * 2016-01-08 2017-07-13 ソニー株式会社 音声処理装置および方法、並びにプログラム
WO2019009085A1 (ja) * 2017-07-05 2019-01-10 ソニー株式会社 信号処理装置および方法、並びにプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119318A1 (ja) * 2016-01-08 2017-07-13 ソニー株式会社 音声処理装置および方法、並びにプログラム
WO2019009085A1 (ja) * 2017-07-05 2019-01-10 ソニー株式会社 信号処理装置および方法、並びにプログラム

Also Published As

Publication number Publication date
US20220159402A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US10390171B2 (en) Method for generating customized spatial audio with head tracking
EP2920982B1 (en) Segment-wise adjustment of spatial audio signal to different playback loudspeaker setup
JP5826996B2 (ja) 音響信号変換装置およびそのプログラム、ならびに、3次元音響パンニング装置およびそのプログラム
JP7378575B2 (ja) 空間変換領域における音場表現を処理するための装置、方法、またはコンピュータプログラム
US10595148B2 (en) Sound processing apparatus and method, and program
JP6834985B2 (ja) 音声処理装置および方法、並びにプログラム
WO2020196004A1 (ja) 信号処理装置および方法、並びにプログラム
US10582329B2 (en) Audio processing device and method
US10708679B2 (en) Distributed audio capture and mixing
JP7115477B2 (ja) 信号処理装置および方法、並びにプログラム
RU2793625C1 (ru) Устройство, способ или компьютерная программа для обработки представления звукового поля в области пространственного преобразования
JP2017212731A (ja) 音響処理装置、音響処理方法およびプログラム
WO2023085186A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Iida et al. Acoustic VR System
CN116193196A (zh) 虚拟环绕声渲染方法、装置、设备及存储介质
CN115167803A (zh) 一种音效的调节方法、装置、电子设备及存储介质
AU2021357463A1 (en) Information processing device, method, and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20777262

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20777262

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP