WO2020100341A1 - 信号分離装置、信号分離方法及びプログラム - Google Patents
信号分離装置、信号分離方法及びプログラム Download PDFInfo
- Publication number
- WO2020100341A1 WO2020100341A1 PCT/JP2019/026019 JP2019026019W WO2020100341A1 WO 2020100341 A1 WO2020100341 A1 WO 2020100341A1 JP 2019026019 W JP2019026019 W JP 2019026019W WO 2020100341 A1 WO2020100341 A1 WO 2020100341A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- matrix
- inverse matrix
- signal
- outer product
- signal separation
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0272—Voice signal separating
- G10L21/0308—Voice signal separating characterised by the type of parameter measurement, e.g. correlation techniques, zero crossing techniques or predictive techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
Definitions
- the present invention relates to a signal separation device, a signal separation method, and a program.
- blind signal separation is known as one of the methods belonging to the field of signal processing.
- Blind signal separation is a method of separating a target source signal from a mixed signal observed by a plurality of sensors in a situation where there is no information about how the source signals are mixed.
- a method based on a Full-rank Spatial Covariance Model is known as a method that can separate even a larger number N of signal sources than the number M of sensors (see Non-Patent Document 1). .. Hereinafter, this method will be described.
- Measured signals from M sensors are frequency-converted and collectively expressed as a vector
- the vector x at the discrete time t (hereinafter, also simply referred to as “time t”) is set as x t . It is assumed that x t is a complex vector in order to frequency-convert and handle acoustic signals and wireless communication signals. At this time, the outer product of the vector x t is
- H represents the conjugate transposition
- the target source signal (hereinafter referred to as "separated signal”) is also expressed as a vector
- each element of this vector y is a source signal observed by each of M sensors.
- the separated signal of the n-th source signal at time t is y nt .
- a n is a spatial correlation matrix showing the relative transfer from the n-th signal source to each sensor
- v nt is the power of the n-th signal source at time t.
- vnt is a non-negative value.
- a hat " ⁇ " representing an approximate value (or an estimated value) is described immediately before the character, not on the head of the character, for convenience. For example, representing an approximate value of X t (or estimated value) and " ⁇ X t". Since it is assumed that A n is a Hermitian matrix, ⁇ X t is also a Hermitian matrix.
- the observed signal x t is
- tr is an operator for obtaining the trace of the matrix (that is, the sum of the diagonal components).
- v nt is updated, and in A-update, A n is updated by sequentially performing the following calculations.
- n and v nt of the full rank spatial correlation matrix model are estimated by the EM algorithm or the MU algorithm to obtain ⁇ X t and ⁇ Y nt .
- the inverse matrix of the matrix ⁇ X t and A n having the size of M ⁇ M is calculated by the above equations (2) and (3) or the above equations (5) and (6). calculate.
- the calculation of the inverse matrix requires more calculation time than the reciprocal of the scalar value.
- the required time becomes dominant as the number T of discrete times t increases.
- the present invention has been made in view of the above points, and an object thereof is to reduce the time required to calculate an inverse matrix in blind signal separation.
- the signal separation device in the embodiment of the present invention inputs an observation signal in which a plurality of target signals are mixed, and an outer product calculating means for calculating an outer product of the observation signal, and a predetermined algorithm.
- the model calculation means for updating the parameters of the model for estimating the outer product using an inverse matrix of a matrix representing the estimated value of the outer product, and the inverse matrix is updated by a SIMD instruction when updating the parameters. It has an inverse matrix calculating means for calculating, a matrix showing the estimated value of the outer product, the updated parameter, and a separating means for calculating the target signal using the observed signal. ..
- the time required to calculate the inverse matrix in blind signal separation can be reduced.
- 6 is a flowchart showing an example of a calculation process of a product of a matrix and a vector in the embodiment of the present invention. It is a flow chart which shows an example of calculation processing of an inner product in an embodiment of the invention.
- a signal separation device 10 capable of reducing the time required to calculate an inverse matrix in blind signal separation will be described.
- the type of signal is not limited.
- the types of signals include, for example, acoustic signals (or audio signals) and wireless signals.
- the SIMD (Single Instruction Multiple Data) instruction is used to speed up the inverse matrix calculation and reduce the time required for the inverse matrix calculation.
- two methods of “inverse matrix calculation method 1” and “inverse matrix calculation method 2” will be described as the inverse matrix calculation method.
- the inverse matrix is not calculated using the built-in function or the like that is already prepared in the standard computer or programming language / environment. Design the calculation procedure according to the method.
- the inverse matrix Q ⁇ 1 of the M ⁇ M matrix Q can be calculated using the determinant detQ and Adjugate adj (Q) as shown in the following Expression (9). Note that Adjugate may be referred to as an adjoint matrix, but since its definition may differ, it will be referred to as “Adjugate”.
- the determinant detQ can be calculated by the following "determinant calculation method 1" or "determinant calculation method 2".
- [Q] mk is the (m, k) element of the matrix Q. Also,
- Is defined as a (M ⁇ 1) ⁇ (M ⁇ 1) matrix formed by deleting the m rows and k columns of the matrix Q. Note that the determinant of a 1 ⁇ 1 matrix (that is, a scalar value) is the value itself of its only element.
- Adjugate adj (Q) is the transpose of the cofactor matrix C
- the inverse matrix is calculated by the same method as the matrix ⁇ X t .
- this tensor is used to efficiently calculate the inverse matrix by the SIMD instruction.
- the signal separation device 10 can accelerate the calculation of the inverse matrix of the matrix, and as a result, can reduce the time required for the calculation of the inverse matrix.
- FIG. 1 is a diagram showing an example of the overall configuration of a signal separation device 10 according to an embodiment of the present invention.
- an observation signal x t is input to a signal separation device 10 according to an embodiment of the present invention, and separation signals y 1t , ..., Y Nt are obtained using an EM algorithm or an MU algorithm.
- the output signal separation program 100 is installed.
- the signal separation program 100 may be composed of one program or a plurality of programs (or program modules).
- the output destinations of the separated signals y 1t , ..., Y Nt are arbitrary.
- the separated signals y 1t , ..., Y Nt may be output to another program, another device, or the like, or may be output to the auxiliary storage device 18 or the like described later.
- FIG. 2 is a diagram showing an example of a hardware configuration of the signal separation device 10 according to the embodiment of the present invention.
- the signal separation device 10 includes an input device 11, a display device 12, an external I / F 13, a RAM (Random Access Memory) 14, and a ROM (Read Only Memory). ) 15, a processor 16, a communication I / F 17, and an auxiliary storage device 18. Each of these pieces of hardware is communicatively connected via a bus 19.
- the input device 11 is, for example, a keyboard, a mouse, a touch panel, etc., and is used by the user to input various operations.
- the display device 12 is, for example, a display, and displays the processing result of the signal separation device 10.
- the signal separation device 10 may not have at least one of the input device 11 and the display device 12.
- the external I / F 13 is an interface with an external device.
- the external device includes a recording medium 13a and the like.
- the signal separation device 10 can read and write the recording medium 13 a via the external I / F 13.
- the signal separation program 100 and the like may be recorded on the recording medium 13a.
- the recording medium 13a includes, for example, a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.
- a flexible disk for example, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.
- RAM 14 is a volatile semiconductor memory that temporarily holds programs and data.
- the ROM 15 is a non-volatile semiconductor memory that can retain programs and data even when the power is turned off.
- the ROM 15 stores, for example, setting information regarding an OS (Operating System), setting information regarding a communication network, and the like.
- the processor 16 is, for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or the like, and is an arithmetic device that reads programs and data from the ROM 15, the auxiliary storage device 18, and the like onto the RAM 14 and executes processing. In the embodiment of the present invention, it is assumed that the processor 16 can execute parallel processing by SIMD instruction. Note that the signal separation device 10 may include both the CPU and the GPU as the processor 16, or may include only either the CPU or the GPU.
- the communication I / F 17 is an interface for connecting the signal separation device 10 to a communication network.
- the signal separation program 100 may be acquired (downloaded) from a predetermined server device or the like via the communication I / F 17.
- the auxiliary storage device 18 is, for example, a HDD (Hard Disk Drive) or SSD (Solid State Drive), and is a non-volatile storage device that stores programs and data.
- the programs and data stored in the auxiliary storage device 18 include, for example, an OS, various application programs, a signal separation program 100, and the like.
- the signal separation device 10 according to the embodiment of the present invention can realize various processes by having the hardware configuration shown in FIG. In the example shown in FIG. 2, the case where the signal separation device 10 according to the embodiment of the present invention is realized by one device (computer) has been described, but the present invention is not limited to this.
- the signal separation device 10 in the embodiment of the present invention may be realized by a plurality of devices (computers). Further, the signal separation device 10 according to the embodiment of the present invention may be realized by a device (computer) including a plurality of processors 16 and a plurality of memories (RAM 14, ROM 15, auxiliary storage device 18, etc.).
- FIG. 3 is a diagram showing an example of a functional configuration (No. 1) of the signal separation device 10 in the embodiment of the present invention.
- the signal separation device 10 in the case of using the EM algorithm has an outer product calculation unit 101, a model formula calculation unit 102, a separation signal calculation unit 103, an E-step unit 104, and an M-step unit. 105 and. Each of these units is realized by the processing that the signal separation program 100 causes the processor 16 to execute.
- Outer product calculator 101 inputs the observed signal x t, calculates the outer product X t.
- the model formula calculation unit 102 calculates the full rank spatial correlation matrix model shown in the above formula (1) by the EM algorithm. That is, the model formula calculation unit 102 calculates ⁇ X t and ⁇ Y nt by estimating the parameters A n and v nt of the full rank spatial correlation matrix model shown in the above formula (1) using the EM algorithm.
- the separated signal calculation unit 103 calculates the separated signal y nt by the above equation (8) using ⁇ Y nt , the inverse matrix of ⁇ X t , and the observed signal x t .
- the E-step unit 104 executes the E-step of the EM algorithm. That is, the E-step unit 104 calculates the above equation (2).
- the M-step unit 105 executes M-step of the EM algorithm. That is, the M-step unit 105 updates the parameters A n and v nt according to the above equations (3) and (4).
- the E-step unit 104 and the M-step unit 105 include an inverse matrix calculation unit 110.
- the inverse matrix calculation unit 110 calculates the inverse matrix of a matrix using the SIMD instruction. That is, the inverse matrix calculator 110 included in the E-step unit 104 calculates the inverse matrix of the matrix ⁇ X t when calculating the above equation (2). Similarly, the inverse matrix calculation unit 110 included in the M-step unit 105 calculates the inverse matrix of the matrix A n when updating the parameter v nt according to the above equation (3).
- FIG. 4 is a diagram showing an example of a functional configuration (No. 2) of the signal separation device 10 according to the embodiment of the present invention.
- the signal separation device 10 in the case of using the MU algorithm has an outer product calculation unit 101, a model formula calculation unit 102, a separation signal calculation unit 103, a V-update unit 106, and an A-update unit. And 107.
- Each of these units is realized by the processing that the signal separation program 100 causes the processor 16 to execute.
- Outer product calculator 101 inputs the observed signal x t, calculates the outer product X t.
- the model formula calculation unit 102 calculates the full rank spatial correlation matrix model shown in the above formula (1) using the MU algorithm. That is, the model formula calculation unit 102 calculates ⁇ X t and ⁇ Y nt by estimating the parameters A n and v nt of the full rank spatial correlation matrix model shown in the above formula (1) using the EM algorithm.
- the separated signal calculation unit 103 calculates the separated signal y nt by the above equation (8) using ⁇ Y nt , the inverse matrix of ⁇ X t , and the observed signal x t .
- the V-update unit 106 executes V-update of the MU algorithm. That is, the V-update unit 106 updates the parameter vnt according to the above equation (5).
- the A-update unit 107 executes A-update of the MU algorithm. That is, the A-update unit 107 updates the parameter A n by calculating the above equation (6) and then the above equation (7).
- the V-update unit 106 and the A-update unit 107 include an inverse matrix calculation unit 110.
- the inverse matrix calculation unit 110 calculates the inverse matrix of a matrix using the SIMD instruction. That is, the inverse matrix calculation unit 110 included in the V-update unit 106, when updating the parameter v nt by the above formula (5), to calculate the inverse matrix of the matrix ⁇ X t. Similarly, the inverse matrix calculator 110 included in the A-update unit 107 calculates the inverse matrix of the matrix ⁇ X t when calculating the above equation (6).
- FIG. 5 is a flowchart showing an example of an inverse matrix calculation process (No. 1) according to the embodiment of the present invention.
- an M ⁇ M ⁇ T tensor in which T inverse matrices of ⁇ X t are arranged is output as the processing result.
- the sum, product, and quotient (+, ⁇ , /) of tensors shall mean the calculation of the sum, product, and quotient of each element of the tensor (element-wise). If the sizes of the tensors do not match, broadcasting is performed as needed. For example, when performing an operation (sum, product, or quotient) of an M ⁇ M ⁇ T tensor and a 1 ⁇ 1 ⁇ T tensor, the 1 ⁇ 1 ⁇ T tensor is broadcast to the M ⁇ M ⁇ T tensor. Then, the calculation is performed. At this time, the operations of these tensors are executed in parallel for each element by the SIMD instruction. Thereby, the inverse matrix can be efficiently calculated (in particular, the determinant for calculating the inverse matrix can be efficiently calculated).
- step S103 the inverse matrix calculation unit 110
- SIMDDET (•) is a function or method for calculating a determinant by a SIMD instruction, and a determinant calculation process using the SIMD instruction shown in FIG. 6 (or a determinant using the SIMD instruction shown in FIG. 7). (Calculation process) is called and executed.
- the output result of this SIMDDET is a 1 ⁇ 1 ⁇ T tensor. The determinant calculation process using the SIMD instruction will be described later.
- step S105 an M ⁇ M ⁇ T tensor in which T inverse matrices ⁇ X t -1 are arranged is output as the processing result of the inverse matrix calculation processing.
- FIG. 6 is a flowchart showing an example of a determinant calculation process (No. 1) using the SIMD instruction in the embodiment of the present invention. As described above, this process is called by SIMDDET (•).
- SIMDDET the size of the tensor (that is, the tensor that is the input of the calculation processing of the determinant) specified as the argument of SIMDDET (•) is M ′ ⁇ M ′ ⁇ T.
- FIG. 6 the size of the tensor (that is, the tensor that is the input of the calculation processing of the determinant) specified as the argument of SIMDDET (•) is M ′ ⁇ M ′ ⁇ T.
- step S204 the inverse matrix calculation unit 110
- step S204 the inverse matrix calculation unit 110 recursively executes SIMDDDET (•) while decreasing the size (the number of rows and the number of columns) of the matrix ⁇ X t forming the tensor input to SIMDET (•) by one. By executing, d is updated.
- step S205 the inverse matrix calculation unit 110 outputs d (that is, the determinant calculation result) (step S205).
- FIG. 7 is a flowchart showing an example of a determinant calculation process (No. 2) using the SIMD instruction in the embodiment of the present invention. As described above, this process is called by SIMDDET (•).
- SIMDDET the size of the tensor (that is, the tensor that is the input of the calculation processing of the determinant) specified as the argument of SIMDDET ( ⁇ ) is M ′ ⁇ M ′ ⁇ T.
- FIG. 7 the size of the tensor (that is, the tensor that is the input of the calculation processing of the determinant) specified as the argument of SIMDDET ( ⁇ ) is M ′ ⁇ M ′ ⁇ T.
- step S303 That is, the inverse matrix calculation unit 110 is obtained in step S302 described above.
- SIMDDET (.) (That is, recursively executing the determinant calculation process using the SIMD instruction shown in FIG. 7).
- the inverse matrix calculation unit 110 outputs d (step S304).
- M ′ 1 in step S301 above, the inverse matrix calculation unit 110
- M ′ 2.
- the determinant calculation process using the SIMD instruction shown in FIG. 6 or the determinant calculation process shown in FIG. 7 is used as the function or method SIMDDET (•) for calculating the determinant.
- Which of the determinant calculation processes using the SIMD instruction shown is to be adopted can be appropriately selected according to, for example, the size of the matrix.
- FIG. 8 is a flowchart showing an example of an inverse matrix calculation process (No. 2) in the embodiment of the present invention. Note that, in the inverse matrix calculation process shown in FIG. 8, unlike the inverse matrix calculation process shown in FIG. 5, the determinant calculation is not performed. Instead, in the inverse matrix calculation process shown in FIG. 8, the product of the matrix and the vector is calculated by the SIMD instruction, and the inner product is calculated by the SIMD instruction. This allows the inverse matrix to be calculated efficiently.
- the sum, product, quotient (+, ..., /) of tensors is the sum of element-wise of the tensor, It shall mean the calculation of product and quotient. If the sizes of the tensors do not match, broadcasting is performed as needed. At this time, the operations of these tensors are executed in parallel for each element by the SIMD instruction. Thereby, the inverse matrix can be efficiently calculated (in particular, the product of the matrix and the vector for calculating the inverse matrix and the inner product can be efficiently calculated).
- step S403 That is, the inverse matrix calculation unit 110 is obtained in the above step S402.
- SIMDMATRIXINVERSE (•) (that is, the inverse matrix calculation process shown in FIG. 9 is recursively executed).
- SIMDMATRIXVECTORMULT Is a function or method for calculating the product of a matrix and a vector by SIMD instruction, and means to call and execute the calculation process of the product of a matrix and a vector shown in FIG. To do. The calculation process of the product of the matrix and the vector will be described later.
- SIMDINNERPRODUCT (.,.) Is a function or method for calculating the inner product by SIMD instruction, and means calling and executing the inner product calculation process shown in FIG. The calculation process of the inner product will be described later.
- step S406 or step S407 the inverse matrix calculation unit 110
- FIG. 9 is a flowchart showing an example of calculation processing of a product of a matrix and a vector in the embodiment of the present invention. As mentioned above, this process is called by SIMDMATRIXVECTORMULT (.,.).
- SIMDMATRIXVECTORMULT (.,.).
- Each element of the M ⁇ 1 ⁇ T tensor is initialized to 0 (step S501).
- step S503 the inverse matrix calculation unit 110
- FIG. 10 is a flowchart showing an example of inner product calculation processing according to the embodiment of the present invention. As described above, this process is called by SIMDINNERPRODUCT (.,.).
- SIMDINNERPRODUCT (.,.).
- the inverse matrix calculation unit 110 initializes each element of the 1 ⁇ 1 ⁇ T tensor d to 0 (step S601).
- step S603 the inverse matrix calculation unit 110
- the inverse matrix calculation unit 110 outputs d (step S604).
- the case where the inverse matrix is calculated by the conventional method without using the SIMD instruction is “CPU (conventional)”, and the case where the inverse matrix is calculated by the inverse matrix calculation method 1 using the SIMD instruction of the CPU is “CPU ( SIMD1) ", the case where the inverse matrix is calculated by the inverse matrix calculation method 2 using the SIMD instruction of the CPU is” CPU (SIMD2) ", the inverse matrix is calculated by the inverse matrix calculation method 1 using not only the CPU but also the GPU.
- the execution time required for repeating the EM algorithm is defined as "GPU (SIMD1)” when the calculation is performed and "GPU (SIMD2)” when the inverse matrix is calculated by the calculation method 2 of the inverse matrix using not only the CPU but also the GPU. (Sec) is shown in Table 1 below.
- the CPU and GPU use the same CPU and GPU, respectively.
- the time required for repeating 20 times is 33.9 (seconds) and the time required for repeating 100 times is 165.4 (seconds), while the CPU ( In SIMD1), the time required for 20 times of repetition is 19.5 (seconds), the time required for 100 times of repetition is 93.0 (seconds), and in CPU (SIMD2), the time required for 20 times of repetition is 18.3 (seconds). Second), the time required for 100 times of repetition is 88.9 (seconds), which shows that the execution time can be reduced.
- the time required for 20 repetitions is 3.2 (seconds) for GPU (SIMD1)
- the time required for 100 repetitions is 7.5 (seconds)
- the time required for 20 repetitions for GPU (SIMD2) is 4.2 (seconds)
- the time required to repeat 100 times is 7.2 (seconds), which shows that the execution time can be further reduced.
- the inverse matrix calculation method 2 an increase in execution time due to an increase in M is suppressed. Note that both the inverse matrix calculation method 1 and the inverse matrix calculation method 2 achieved a significant speedup when a GPU was used.
- signal separation device 100 signal separation program 101 outer product calculation unit 102 model formula calculation unit 103 separation signal calculation unit 104 E-step unit 105 M-step unit 106 V-update unit 107 A-update unit 110 inverse matrix calculation unit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Algebra (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
信号分離装置は、複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、前記パラメータを更新する際に、SIMD命令により前記逆行列を計算する逆行列計算手段と、前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、を有することを特徴とする。
Description
本発明は、信号分離装置、信号分離方法及びプログラムに関する。
信号処理の分野に属する手法の1つとして、ブラインド信号分離と呼ばれる手法が知られている。ブラインド信号分離とは、源信号がどのように混合されているかという情報が無い状況で、複数のセンサで観測された混合信号から、目的となる源信号を分離する手法のことである。
例えば、センサの数Mよりも多くの個数Nの信号源でも分離できる手法として、フルランク空間相関行列モデル(Full-rank Spatial Covariance Model)に基づく手法が知られている(非特許文献1参照)。以下、この手法について説明する。
M個のセンサでの観測信号を周波数変換したものをまとめてベクトルで表現して、
また、目的とする源信号(以降、「分離信号」と表す。)もベクトルで表現して、
フルランク空間相関行列モデルでは、まず信号源の数Nを仮定し、上記の外積Xtが、
観測信号xt(t=1,・・・,T)に対して上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn(n=1,・・・,N)及びvnt(n=1,・・・,N,t=1,・・・,T)を推定する方法として、EM(Expectation-Maximization)アルゴリズムに基づく方法が知られている。
EMアルゴリズムに基づく方法では、観測信号xtが
ここで、例えば、上記の式(2)で行列^Xtの逆行列を計算する場合、単一の行列の逆行列を計算する組み込み関数inv()を用いて、時間t=1からt=Tまで逐次的に、
また、上記のEMアルゴリズムの他にも、MU(Multiplicative Update)アルゴリズムが知られている。MUアルゴリズムのV-updateでは
EMアルゴリズム又はMUアルゴリズムによってフルランク空間相関行列モデルのパラメータAn及びvntが推定されることで、^Xt及び^Yntが得られる。これにより、n=1,・・・,N,t=1,・・・,Tに対して、分離信号yntを、
N. Q. K. Duong, E. Vincent, and R. Gribonval. "Under-determined reverberant audio source separation using a full-rank spatial covariance model." IEEE Transactions on Audio, Speech, and Language Processing 18.7 (2010): 1830-1840.
上記の従来技術では、M×Mの大きさを持つ行列^Xt及びAnの逆行列を、上記の式(2)と式(3)又は上記の式(5)と式(6)で計算する。しかしながら、逆行列の計算は、スカラー値の逆数と比べてより多くの計算時間を要する。特に、行列^Xtの逆行列の計算は、離散時間tの数Tが大きくなると所要時間が支配的となる。
また、音声等の広帯域信号を扱う場合には、複数の周波数での信号を同時に扱う必要がある。例えば、6秒の音声を8kHzサンプリングで長さ128msシフト32msの分析窓で分析した場合、周波数ビンの数は513、離散時間tの数はT=201となる。これは、例えば、上記の従来技術でEMアルゴリズムを用いてE-step及びM-stepを20回繰り返す場合、行列^Xtの逆行列の計算回数は、513×201×20=2,062,260回となる。このため、例えば、この計算を一般的な計算機で行った場合、6秒の音声を処理するために10秒以上の実行時間を要することがある。
本発明は、上記の点に鑑みてなされたものであり、ブラインド信号分離における逆行列の計算に要する時間を削減することを目的とする。
上記目的を達成するため、本発明の実施の形態における信号分離装置は、複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、前記パラメータを更新する際に、SIMD命令により前記逆行列を計算する逆行列計算手段と、前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、を有することを特徴とする。
ブラインド信号分離における逆行列の計算に要する時間を削減することができる。
以下、本発明の実施の形態について説明する。本発明の実施の形態では、ブラインド信号分離における逆行列の計算に要する時間を削減可能な信号分離装置10について説明する。なお、本発明の実施の形態では信号の種類は限定されない。信号の種類としては、例えば、音響信号(又は音声信号)や無線信号等がある。
<逆行列の計算方法の概要>
本発明の実施の形態における信号分離装置10では、SIMD(Single Instruction Multiple Data)命令を利用することで、逆行列の計算を高速化し、逆行列の計算に要する時間を削減する。本発明の実施の形態では、逆行列の計算方法として、「逆行列の計算方法1」と「逆行列の計算方法2」の2つの方法について説明する。なお、このとき、本発明の実施の形態では、標準的な計算機やプログラミング言語・環境等に既に準備されている組み込み関数等を用いて逆行列を計算することはせずに、逆行列の計算方法に従ってその計算手順を設計する。
本発明の実施の形態における信号分離装置10では、SIMD(Single Instruction Multiple Data)命令を利用することで、逆行列の計算を高速化し、逆行列の計算に要する時間を削減する。本発明の実施の形態では、逆行列の計算方法として、「逆行列の計算方法1」と「逆行列の計算方法2」の2つの方法について説明する。なお、このとき、本発明の実施の形態では、標準的な計算機やプログラミング言語・環境等に既に準備されている組み込み関数等を用いて逆行列を計算することはせずに、逆行列の計算方法に従ってその計算手順を設計する。
(逆行列の計算方法1)
まず、逆行列の計算方法1について説明する。M×Mの行列Qの逆行列Q-1は、以下の式(9)に示すように、行列式detQと、Adjugate adj(Q)とを用いて計算することができる。なお、Adjugateは、随伴行列と称されることもあるが、その定義が異なる場合があるため、「Adjugate」と表すこととする。
まず、逆行列の計算方法1について説明する。M×Mの行列Qの逆行列Q-1は、以下の式(9)に示すように、行列式detQと、Adjugate adj(Q)とを用いて計算することができる。なお、Adjugateは、随伴行列と称されることもあるが、その定義が異なる場合があるため、「Adjugate」と表すこととする。
・行列式の計算方法1
行列式detQは、以下により再帰的に計算することができる。
行列式detQは、以下により再帰的に計算することができる。
Adjugate adj(Q)は、余因子行列Cの転置
・行列式の計算方法2
qを実数のスカラー、
qを実数のスカラー、
(逆行列の計算方法2)
次に、逆行列の計算方法2について説明する。各記号の定義を「逆行列の計算方法1」における「行列式の計算方法2」と同様とする。このとき、ブロック行列の行列式の定理により、逆行列は、以下の式(11)で計算することができる。
次に、逆行列の計算方法2について説明する。各記号の定義を「逆行列の計算方法1」における「行列式の計算方法2」と同様とする。このとき、ブロック行列の行列式の定理により、逆行列は、以下の式(11)で計算することができる。
本発明の実施の形態では、行列の逆行列の計算にSIMD命令を利用するために、複数の行列をまとめたデータ構造を用いる。例えば、行列^Xtの逆行列を計算する場合、M×M行列^XtをT個(つまり、t=1,・・・,Tとして、^X1,・・・,^XT)並べて、大きさM×M×Tのテンソル
また、行列Anについても、行列^Xtと同様の方法で逆行列を計算する。この場合、上記と同様に、SIMD命令を利用するためのデータ構造として、M×M行列AnをN個(つまり、n=1,・・・,Nとして、A1,・・・,AN)並べて、大きさM×M×Nのテンソルを構成する。上記の式(3)で行列Anの逆行列を計算する際に、このテンソルを用いて、SIMD命令により効率的に逆行列を計算する。
これにより、本発明の実施の形態における信号分離装置10は、行列の逆行列の計算を高速化させることができ、結果として逆行列の計算に要する時間を削減することができる。
<全体構成>
まず、本発明の実施の形態における信号分離装置10の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における信号分離装置10の全体構成の一例を示す図である。
まず、本発明の実施の形態における信号分離装置10の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における信号分離装置10の全体構成の一例を示す図である。
図1に示すように、本発明の実施の形態における信号分離装置10には、観測信号xtを入力して、EMアルゴリズム又はMUアルゴリズムを用いて分離信号y1t,・・・,yNtを出力する信号分離プログラム100がインストールされている。このとき、信号分離プログラム100は、観測信号xtから分離信号y1t,・・・,yNtを得る際に、SIMD命令を利用して行列^Xtの逆行列を計算する。
なお、信号分離プログラム100は、1つのプログラムで構成されていてもよいし、複数のプログラム(又はプログラムモジュール)で構成されていてもよい。また、分離信号y1t,・・・,yNtの出力先は任意である。例えば、分離信号y1t,・・・,yNtは、他のプログラムや他の装置等に出力されてもよいし、後述する補助記憶装置18等に出力されてもよい。
<ハードウェア構成>
次に、本発明の実施の形態における信号分離装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における信号分離装置10のハードウェア構成の一例を示す図である。
次に、本発明の実施の形態における信号分離装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における信号分離装置10のハードウェア構成の一例を示す図である。
図2に示すように、本発明の実施の形態における信号分離装置10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14と、ROM(Read Only Memory)15と、プロセッサ16と、通信I/F17と、補助記憶装置18とを有する。これら各ハードウェアは、それぞれがバス19を介して通信可能に接続されている。
入力装置11は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置12は、例えばディスプレイ等であり、信号分離装置10の処理結果を表示する。なお、信号分離装置10は、入力装置11及び表示装置12のうちの少なくとも一方を有していなくてもよい。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。信号分離装置10は、外部I/F13を介して、記録媒体13aの読み取りや書き込み等を行うことができる。記録媒体13aには、信号分離プログラム100等が記録されていてもよい。
記録媒体13aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、例えば、OS(Operating System)に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
プロセッサ16は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、ROM15や補助記憶装置18等からプログラムやデータをRAM14上に読み出して処理を実行する演算装置である。本発明の実施の形態では、プロセッサ16は、SIMD命令よる並列処理が実行可能であるものとする。なお、信号分離装置10は、プロセッサ16としてCPUとGPUとの両方を有していてもよいし、CPU又はGPUのいずれか一方のみを有していてもよい。
通信I/F17は、信号分離装置10を通信ネットワークに接続するためのインタフェースである。信号分離プログラム100は、通信I/F17を介して、所定のサーバ装置等から取得(ダウンロード)されてもよい。
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置18に格納されているプログラムやデータには、例えば、OS、各種アプリケーションプログラム、信号分離プログラム100等がある。
本発明の実施の形態における信号分離装置10は、図2に示すハードウェア構成を有することにより、各種処理を実現することができる。なお、図2に示す例では、本発明の実施の形態における信号分離装置10が1台の装置(コンピュータ)で実現される場合について説明したが、これに限られない。本発明の実施の形態における信号分離装置10は、複数台の装置(コンピュータ)で実現されていてもよい。また、本発明の実施の形態における信号分離装置10は、複数のプロセッサ16や複数のメモリ(RAM14、ROM15、補助記憶装置18等)を備える装置(コンピュータ)で実現されていてもよい。
<機能構成>
次に、本発明の実施の形態における信号分離装置10の機能構成について説明する。
次に、本発明の実施の形態における信号分離装置10の機能構成について説明する。
(EMアルゴリズムを用いる場合の機能構成)
以降では、上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn(n=1,・・・,N)及びvnt(n=1,・・・,N,t=1,・・・,T)の推定にEMアルゴリズムを用いる場合の機能構成について、図3を参照しながら説明する。図3は、本発明の実施の形態における信号分離装置10の機能構成(その1)の一例を示す図である。
以降では、上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn(n=1,・・・,N)及びvnt(n=1,・・・,N,t=1,・・・,T)の推定にEMアルゴリズムを用いる場合の機能構成について、図3を参照しながら説明する。図3は、本発明の実施の形態における信号分離装置10の機能構成(その1)の一例を示す図である。
図3に示すように、EMアルゴリズムを用いる場合における信号分離装置10は、外積計算部101と、モデル式計算部102と、分離信号計算部103と、E-step部104と、M-step部105とを有する。これら各部は、信号分離プログラム100がプロセッサ16に実行させる処理により実現される。
外積計算部101は、観測信号xtを入力して、外積Xtを計算する。モデル式計算部102は、EMアルゴリズムにより上記の式(1)に示すフルランク空間相関行列モデルを計算する。すなわち、モデル式計算部102は、EMアルゴリズムにより上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn及びvntを推定することで、^Xt及び^Yntを計算する。
分離信号計算部103は、^Yntと、^Xtの逆行列と、観測信号xtとを用いて、上記の式(8)により分離信号yntを計算する。
E-step部104は、EMアルゴリズムのE-stepを実行する。すなわち、E-step部104は、上記の式(2)を計算する。
M-step部105は、EMアルゴリズムのM-stepを実行する。すなわち、M-step部105は、上記の式(3)及び式(4)によりパラメータAn及びvntを更新する。
ここで、E-step部104及びM-step部105には、逆行列計算部110が含まれる。逆行列計算部110は、SIMD命令を利用して行列の逆行列を計算する。すなわち、E-step部104に含まれる逆行列計算部110は、上記の式(2)を計算する際に、行列^Xtの逆行列を計算する。同様に、M-step部105に含まれる逆行列計算部110は、上記の式(3)によりパラメータvntを更新する際に、行列Anの逆行列を計算する。
(MUアルゴリズムを用いる場合の機能構成)
以降では、上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn(n=1,・・・,N)及びvnt(n=1,・・・,N,t=1,・・・,T)の推定にMUアルゴリズムを用いる場合の機能構成について、図4を参照しながら説明する。図4は、本発明の実施の形態における信号分離装置10の機能構成(その2)の一例を示す図である。
以降では、上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn(n=1,・・・,N)及びvnt(n=1,・・・,N,t=1,・・・,T)の推定にMUアルゴリズムを用いる場合の機能構成について、図4を参照しながら説明する。図4は、本発明の実施の形態における信号分離装置10の機能構成(その2)の一例を示す図である。
図4に示すように、MUアルゴリズムを用いる場合における信号分離装置10は、外積計算部101と、モデル式計算部102と、分離信号計算部103と、V-update部106と、A-update部107とを有する。これら各部は、信号分離プログラム100がプロセッサ16に実行させる処理により実現される。
外積計算部101は、観測信号xtを入力して、外積Xtを計算する。モデル式計算部102は、MUアルゴリズムにより上記の式(1)に示すフルランク空間相関行列モデルを計算する。すなわち、モデル式計算部102は、EMアルゴリズムにより上記の式(1)に示すフルランク空間相関行列モデルのパラメータAn及びvntを推定することで、^Xt及び^Yntを計算する。
分離信号計算部103は、^Yntと、^Xtの逆行列と、観測信号xtとを用いて、上記の式(8)により分離信号yntを計算する。
V-update部106は、MUアルゴリズムのV-updateを実行する。すなわち、V-update部106は、上記の式(5)によりパラメータvntを更新する。
A-update部107は、MUアルゴリズムのA-updateを実行する。すなわち、A-update部107は、上記の式(6)を計算した後、上記の式(7)を計算することで、パラメータAnを更新する。
ここで、V-update部106及びA-update部107には、逆行列計算部110が含まれる。逆行列計算部110は、SIMD命令を利用して行列の逆行列を計算する。すなわち、V-update部106に含まれる逆行列計算部110は、上記の式(5)によりパラメータvntを更新する際に、行列^Xtの逆行列を計算する。同様に、A-update部107に含まれる逆行列計算部110は、上記の式(6)を計算する際に、行列^Xtの逆行列を計算する。
<処理の詳細>
以降では、ブラインド信号分離をEMアルゴリズム又はMUアルゴリズムにより実現する場合に、SIMD命令により効率的に逆行列を計算する処理について説明する。本発明の実施の形態では、一例として、行列^Xtの逆行列を計算する場合について説明する。なお、行列Anの逆行列を計算する場合は、以降の説明において、tをn、TをN、^XtをAnと読み替えればよい。
以降では、ブラインド信号分離をEMアルゴリズム又はMUアルゴリズムにより実現する場合に、SIMD命令により効率的に逆行列を計算する処理について説明する。本発明の実施の形態では、一例として、行列^Xtの逆行列を計算する場合について説明する。なお、行列Anの逆行列を計算する場合は、以降の説明において、tをn、TをN、^XtをAnと読み替えればよい。
(逆行列の計算方法1による逆行列の計算処理)
逆行列の計算方法1により逆行列を計算する処理について、図5を参照しながら説明する。図5は、本発明の実施の形態における逆行列の計算処理(その1)の一例を示すフローチャートである。
逆行列の計算方法1により逆行列を計算する処理について、図5を参照しながら説明する。図5は、本発明の実施の形態における逆行列の計算処理(その1)の一例を示すフローチャートである。
図5では、^XtをT個並べたM×M×Tのテンソル
ここで、以降では、テンソル同士の和、積、商(+,・,/)は、テンソルの要素毎(element-wise)の和、積、商の計算を意味するものとする。また、テンソル同士の大きさが一致しない場合は、必要に応じてブロードキャストが行われるものとする。例えば、M×M×Tのテンソルと1×1×Tのテンソルとの演算(和、積又は商)を行う場合、1×1×Tのテンソルは、M×M×Tのテンソルにブロードキャストされた上で、当該演算が行われる。このとき、これらのテンソル同士の演算は、SIMD命令により要素毎に並列的に実行される。これにより、逆行列を効率的に計算(特に、逆行列を計算するための行列式を効率的に計算)することができる。
逆行列計算部110は、m=1からm=Mまで、ステップS102を繰り返し実行する(ステップS101)。また、逆行列計算部110は、k=1からk=Mまで、ステップS103を繰り返し実行する(ステップS102)。
ステップS103では、逆行列計算部110は、
ここで、SIMDDET(・)はSIMD命令により行列式を計算する関数又はメソッドであり、図6に示すSIMD命令を利用した行列式の計算処理(又は図7に示すSIMD命令を利用した行列式の計算処理)を呼び出して、実行することを意味する。このSIMDDETの出力結果は1×1×Tのテンソルである。SIMD命令を利用した行列式の計算処理については後述する。
上記のステップS101の繰り返しと、上記のステップS102の繰り返しとにより、上記のステップS103は、m=1,・・・,M及びk=1,・・・,Mに対して実行される。
上記のステップS101の繰り返しが終了した場合、逆行列計算部110は、
(SIMD命令を利用した行列式の計算処理(行列式の計算方法1))
ここで、上記のステップS103及びステップS104のSIMDDET(・)で呼び出される処理として、SIMD命令を利用して、行列式の計算方法1により行列式を計算する場合について、図6を参照しながら説明する。図6は、本発明の実施の形態におけるSIMD命令を利用した行列式の計算処理(その1)の一例を示すフローチャートである。上述したように、この処理は、SIMDDET(・)により呼び出される。ここで、図6では、SIMDDET(・)の引数として指定されているテンソル(つまり、行列式の計算処理の入力となるテンソル)の大きさをM´×M´×Tとする。また、図6では、
ここで、上記のステップS103及びステップS104のSIMDDET(・)で呼び出される処理として、SIMD命令を利用して、行列式の計算方法1により行列式を計算する場合について、図6を参照しながら説明する。図6は、本発明の実施の形態におけるSIMD命令を利用した行列式の計算処理(その1)の一例を示すフローチャートである。上述したように、この処理は、SIMDDET(・)により呼び出される。ここで、図6では、SIMDDET(・)の引数として指定されているテンソル(つまり、行列式の計算処理の入力となるテンソル)の大きさをM´×M´×Tとする。また、図6では、
まず、逆行列計算部110は、M´=1であるか否かを判定する(ステップS201)。M´=1でない場合、逆行列計算部110は、1×1×Tのテンソルdの各要素を0に初期化する(ステップS202)。次に、逆行列計算部110は、m=1からm=M´まで、ステップS204を繰り返し実行する(ステップS203)。
ステップS204では、逆行列計算部110は、
上記のステップS203の繰り返しが終了した場合、逆行列計算部110は、d(つまり、行列式の計算結果)を出力する(ステップS205)。
上記のステップS201でM´=1である場合、逆行列計算部110は、
このように、図6に示すSIMD命令を利用した行列式の計算処理は、入力されるテンソルを構成する行列^Xtの大きさを1つずつ小さくしながら、M´=1となるまで再帰的に実行される。なお、本発明の実施の形態では、M´=1となるまで再帰的に実行するものとしたが、より高速化を実現するため、例えば、M´=2となるまで再帰的に実行してもよい。この場合、M´=2における処理結果を、
(SIMD命令を利用した行列式の計算処理(行列式の計算方法2))
次に、上記のステップS103及びステップS104のSIMDDET(・)で呼び出される処理として、SIMD命令を利用して、行列式の計算方法2により行列式を計算する場合について、図7を参照しながら説明する。図7は、本発明の実施の形態におけるSIMD命令を利用した行列式の計算処理(その2)の一例を示すフローチャートである。上述したように、この処理は、SIMDDET(・)により呼び出される。ここで、図7では、SIMDDET(・)の引数として指定されているテンソル(つまり、行列式の計算処理の入力となるテンソル)の大きさをM´×M´×Tとする。また、図6では、
次に、上記のステップS103及びステップS104のSIMDDET(・)で呼び出される処理として、SIMD命令を利用して、行列式の計算方法2により行列式を計算する場合について、図7を参照しながら説明する。図7は、本発明の実施の形態におけるSIMD命令を利用した行列式の計算処理(その2)の一例を示すフローチャートである。上述したように、この処理は、SIMDDET(・)により呼び出される。ここで、図7では、SIMDDET(・)の引数として指定されているテンソル(つまり、行列式の計算処理の入力となるテンソル)の大きさをM´×M´×Tとする。また、図6では、
まず、逆行列計算部110は、M´=1であるか否かを判定する(ステップS301)。M´=1でない場合、逆行列計算部110は、
次に、逆行列計算部110は、
そして、逆行列計算部110は、dを出力する(ステップS304)。一方で、上記のステップS301でM´=1である場合、逆行列計算部110は、
このように、図7に示すSIMD命令を利用した行列式の計算処理も、入力されるテンソルを構成する行列^Xtの大きさを1つずつ小さくしながら、M´=1となるまで再帰的に実行される。なお、本発明の実施の形態では、M´=1となるまで再帰的に実行するものとしたが、図6に示すSIMD命令を利用した行列式の計算処理と同様に、より高速化を実現するため、例えば、M´=2となるまで再帰的に実行してもよい。
なお、逆行列の計算方法1による逆行列の計算処理において、行列式を計算するための関数又はメソッドSIMDDET(・)として、図6に示すSIMD命令を利用した行列式の計算処理又は図7に示すSIMD命令を利用した行列式の計算処理のいずれを採用するかは、例えば、行列のサイズ等に応じて適宜選択することが可能である。
(逆行列の計算方法2による逆行列の計算処理)
次に、逆行列の計算方法2により逆行列を計算する処理について、図8を参照しながら説明する。図8は、本発明の実施の形態における逆行列の計算処理(その2)の一例を示すフローチャートである。なお、図8に示す逆行列の計算処理では、図5に示す逆行列の計算処理とは異なり、行列式の計算は行わない。代わりに、図8に示す逆行列の計算処理では、SIMD命令により行列とベクトルとの積を計算をすると共に、SIMD命令により内積を計算する。これにより、逆行列を効率的に計算することができる。
次に、逆行列の計算方法2により逆行列を計算する処理について、図8を参照しながら説明する。図8は、本発明の実施の形態における逆行列の計算処理(その2)の一例を示すフローチャートである。なお、図8に示す逆行列の計算処理では、図5に示す逆行列の計算処理とは異なり、行列式の計算は行わない。代わりに、図8に示す逆行列の計算処理では、SIMD命令により行列とベクトルとの積を計算をすると共に、SIMD命令により内積を計算する。これにより、逆行列を効率的に計算することができる。
図8では、図5と同様に、^XtをT個並べたM×M×Tのテンソルが入力されたものとする。また、図8に示す逆行列の計算処理を呼び出す関数又はメソッドをSIMDMATRIXINVERSE(・)とする。
以降では、「逆行列の計算方法1による逆行列の計算処理」と同様に、テンソル同士の和、積、商(+,・,/)は、テンソルの要素毎(element-wise)の和、積、商の計算を意味するものとする。また、テンソル同士の大きさが一致しない場合は、必要に応じてブロードキャストが行われるものとする。このとき、これらのテンソル同士の演算は、SIMD命令により要素毎に並列的に実行される。これにより、逆行列を効率的に計算(特に、逆行列を計算するための行列とベクトルとの積や内積を効率的に計算)することができる。
まず、逆行列計算部110は、M=1であるか否かを判定する(ステップS401)。M=1でない場合、逆行列計算部110は、
次に、逆行列計算部110は、
次に、逆行列計算部110は、
ここで、SIMDMATRIXVECTORMULT(・,・)はSIMD命令により行列とベクトルとの積を計算する関数又はメソッドであり、図9に示す行列とベクトルとの積の計算処理を呼び出して、実行することを意味する。行列とベクトルとの積の計算処理については後述する。
次に、逆行列計算部110は、
次に、逆行列計算部110は、
ここで、SIMDINNERPRODUCT(・,・)はSIMD命令により内積を計算する関数又はメソッドであり、図10に示す内積の計算処理を呼び出して、実行することを意味する。内積の計算処理については後述する。
一方で、上記のステップS401でM=1である場合、逆行列計算部110は、
そして、ステップS406又はステップS407に続いて、逆行列計算部110は、
(SIMD命令を利用した行列とベクトルとの積の計算処理)
次に、上記のステップS404のSIMDMATRIXVECTORMULT(・,・)で呼び出される処理として、SIMD命令を利用して、行列とベクトルとの積を計算する場合について、図9を参照しながら説明する。図9は、本発明の実施の形態における行列とベクトルとの積の計算処理の一例を示すフローチャートである。上述したように、この処理は、SIMDMATRIXVECTORMULT(・,・)により呼び出される。ここで、図9では、
次に、上記のステップS404のSIMDMATRIXVECTORMULT(・,・)で呼び出される処理として、SIMD命令を利用して、行列とベクトルとの積を計算する場合について、図9を参照しながら説明する。図9は、本発明の実施の形態における行列とベクトルとの積の計算処理の一例を示すフローチャートである。上述したように、この処理は、SIMDMATRIXVECTORMULT(・,・)により呼び出される。ここで、図9では、
まず、逆行列計算部110は、
次に、逆行列計算部110は、m=1からm=Mまで、ステップS503を繰り返し実行する(ステップS502)。
ステップS503では、逆行列計算部110は、
そして、逆行列計算部110は、
(SIMD命令を利用した内積の計算処理)
次に、上記のステップS406のSIMDINNERPRODUCT(・,・)で呼び出される処理として、SIMD命令を利用して、内積を計算する場合について、図10を参照しながら説明する。図10は、本発明の実施の形態における内積の計算処理の一例を示すフローチャートである。上述したように、この処理は、SIMDINNERPRODUCT(・,・)により呼び出される。ここで、図10では、
次に、上記のステップS406のSIMDINNERPRODUCT(・,・)で呼び出される処理として、SIMD命令を利用して、内積を計算する場合について、図10を参照しながら説明する。図10は、本発明の実施の形態における内積の計算処理の一例を示すフローチャートである。上述したように、この処理は、SIMDINNERPRODUCT(・,・)により呼び出される。ここで、図10では、
まず、逆行列計算部110は、1×1×Tのテンソルdの各要素を0に初期化する(ステップS601)。
次に、逆行列計算部110は、m=1からm=Mまで、ステップS603を繰り返し実行する(ステップS602)。
ステップS603では、逆行列計算部110は、
そして、逆行列計算部110は、dを出力する(ステップS604)。
<本発明の実施の形態の効果>
最後に、本発明の実施の形態の効果を示すために、空間で混合された音(音声信号)を分離する実験を行った。源信号として4つの音声、センサとして2個から5個のマイクロホンを用いて、6秒間すべての音声が喋っている混合音を観測信号とした。
最後に、本発明の実施の形態の効果を示すために、空間で混合された音(音声信号)を分離する実験を行った。源信号として4つの音声、センサとして2個から5個のマイクロホンを用いて、6秒間すべての音声が喋っている混合音を観測信号とした。
このとき、SIMD命令を用いずに従来手法により逆行列を計算した場合を「CPU(従来)」、CPUのSIMD命令を用いて逆行列の計算方法1により逆行列を計算した場合を「CPU(SIMD1)」、CPUのSIMD命令を用いて逆行列の計算方法2により逆行列を計算した場合を「CPU(SIMD2)」、CPUだけでなくGPUも用いて逆行列の計算方法1により逆行列を計算した場合を「GPU(SIMD1)」、CPUだけでなくGPUも用いて逆行列の計算方法2により逆行列を計算した場合を「GPU(SIMD2)」として、EMアルゴリズムの繰り返しに要した実行時間(秒)を以下の表1に示す。なお、CPU及びGPUは、それぞれ同一のCPU及びGPUを用いている。
なお、音声分離性能を示すSDR(Signal-to-Distortion Ratio)を計測すると、CPU(従来)、CPU(SIMD1)及びGPU(SIMD1)のいずれも20回繰り返しの場合は8.03dB、100回繰り返しの場合は10.36dBであった。
また、センサの数Mを2から5まで変化させた場合の実行時間を以下の表2に示す。
このように、本発明の実施の形態によれば、従来技術と比較して実行時間を大幅に削減することができ、現実的な分離性能の向上にも繋がっていることがわかる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更が可能である。
本願は、日本国に2018年11月12日に出願された基礎出願2018-212408号に基づくものであり、その全内容はここに参照をもって援用される。
10 信号分離装置
100 信号分離プログラム
101 外積計算部
102 モデル式計算部
103 分離信号計算部
104 E-step部
105 M-step部
106 V-update部
107 A-update部
110 逆行列計算部
100 信号分離プログラム
101 外積計算部
102 モデル式計算部
103 分離信号計算部
104 E-step部
105 M-step部
106 V-update部
107 A-update部
110 逆行列計算部
Claims (9)
- 複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手段と、
所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手段と、
前記パラメータを更新する際に、SIMD命令により前記逆行列を計算する逆行列計算手段と、
前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手段と、
を有することを特徴とする信号分離装置。 - 前記外積計算手段は、
前記観測信号が観測される離散時間をt=1,・・・,Tとして、離散時間t毎に、前記外積を計算し、
前記モデル計算手段は、
前記アルゴリズムにより、前記離散時間t毎の外積を推定するためのモデルのパラメータを、前記離散時間t毎の外積の推定値をそれぞれ表す行列の逆行列を用いて更新し、
前記逆行列計算手段は、
前記パラメータを更新する際に、前記離散時間t毎の外積の推定値をそれぞれ表す行列により構成されるテンソルを用いて、前記SIMD命令により、前記逆行列により構成されるテンソルを計算する、ことを特徴とする請求項1に記載の信号分離装置。 - 前記逆行列計算手段は、
前記離散時間t毎の外積の推定値をそれぞれ表す行列の行列式を前記SIMD命令により再帰的に計算し、
計算された行列式を用いて、前記逆行列により構成されるテンソルを計算する、ことを特徴とする請求項2に記載の信号分離装置。 - 前記逆行列計算手段は、
ブロック行列の行列式と前記ブロック行列を構成するスカラー、ベクトル及び行列の行列式との関係性に従って前記離散時間t毎の外積の推定値をそれぞれ表す行列の行列式を前記SIMD命令により再帰的に計算する、ことを特徴とする請求項3に記載の信号分離装置。 - 前記逆行列計算手段は、
ブロック行列の行列式と前記ブロック行列を構成するスカラー、ベクトル及び行列の行列式との関係性に従って前記離散時間t毎の外積の推定値をそれぞれ表す行列の逆行列を前記SIMD命令により再帰的に計算する、ことを特徴とする請求項2に記載の信号分離装置。 - 前記パラメータには、前記目的信号の信号源から、前記観測信号を観測するセンサへの相対的な伝達を示す空間相関行列が含まれ、
前記逆行列計算手段は、
前記パラメータを更新する際に、前記SIMD命令により、前記空間相関行列の逆行列を更に計算する、
ことを特徴とする請求項1乃至5の何れか一項に記載の信号分離装置。 - 前記アルゴリズムは、EMアルゴリズム又はMUアルゴリズムである、ことを特徴とする請求項1乃至6の何れか一項に記載の信号分離装置。
- 複数の目的信号が混合された観測信号を入力して、前記観測信号の外積を計算する外積計算手順と、
所定のアルゴリズムにより、前記外積を推定するためのモデルのパラメータを、前記外積の推定値を表す行列の逆行列を用いて更新するモデル計算手順と、
前記パラメータを更新する際に、SIMD命令により前記逆行列を計算する逆行列計算手順と、
前記外積の推定値を表す行列と、更新後の前記パラメータと、前記観測信号とを用いて、前記目的信号を計算する分離手順と、
をコンピュータが実行することを特徴とする信号分離方法。 - コンピュータを、請求項1乃至7の何れか一項に記載の信号分離装置における各手段として機能させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020556587A JP7140206B2 (ja) | 2018-11-12 | 2019-07-01 | 信号分離装置、信号分離方法及びプログラム |
| US17/292,529 US11915717B2 (en) | 2018-11-12 | 2019-07-01 | Signal separation apparatus, signal separation method and program |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018212408 | 2018-11-12 | ||
| JP2018-212408 | 2018-11-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020100341A1 true WO2020100341A1 (ja) | 2020-05-22 |
Family
ID=70730238
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/026019 Ceased WO2020100341A1 (ja) | 2018-11-12 | 2019-07-01 | 信号分離装置、信号分離方法及びプログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11915717B2 (ja) |
| JP (1) | JP7140206B2 (ja) |
| WO (1) | WO2020100341A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6915579B2 (ja) * | 2018-04-06 | 2021-08-04 | 日本電信電話株式会社 | 信号分析装置、信号分析方法および信号分析プログラム |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002059772A2 (en) * | 2000-11-09 | 2002-08-01 | Hrl Laboratories, Llc | Blind decomposition using fourier and wavelet transforms |
-
2019
- 2019-07-01 JP JP2020556587A patent/JP7140206B2/ja active Active
- 2019-07-01 US US17/292,529 patent/US11915717B2/en active Active
- 2019-07-01 WO PCT/JP2019/026019 patent/WO2020100341A1/ja not_active Ceased
Non-Patent Citations (3)
| Title |
|---|
| ACTON, M.: "A 4x4 matrix inverse", CELLPERFORMANCE, 3 June 2006 (2006-06-03), pages 1 - 12, Retrieved from the Internet <URL:https://cellperformance.beyond3d.com/articles/2006/06/a-4x4-matrix-inverse.html> [retrieved on 20190823] * |
| LI, Z. ET AL.: "An implementation of MIMO detection in TD-LTE based on general purpose processor", PROCEEDINGS OF THE 7TH INTERNETIONAL ICST CONFERENCE ON COMMUNICATIONS AND NETWORKING IN CHINA ( CHINA COM 2012, 10 August 2012 (2012-08-10), pages 807 - 811, XP032425068, ISBN: 978-1-4673-2699-5, DOI: 10.1109/ChinaCom.2012.6417595 * |
| SAWADA, H. ET AL.: "Multichannel extensions of non-negative matrix factorization with complex- valued data", IEEE TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, vol. 21, no. 5, 14 January 2013 (2013-01-14), pages 971 - 982, XP011493616, ISSN: 1558-7916, DOI: 10.1109/TASL.2013.2239990 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2020100341A1 (ja) | 2021-09-02 |
| JP7140206B2 (ja) | 2022-09-21 |
| US20210398549A1 (en) | 2021-12-23 |
| US11915717B2 (en) | 2024-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11238881B2 (en) | Weight matrix initialization method to improve signal decomposition | |
| JP4810109B2 (ja) | 別個の信号の成分を分離する方法およびシステム | |
| WO2014147442A1 (en) | Spatial audio apparatus | |
| EP2940687A1 (en) | Methods and systems for processing and mixing signals using signal decomposition | |
| JPWO2017141542A1 (ja) | マスク推定装置、マスク推定方法及びマスク推定プログラム | |
| JP2012163918A (ja) | 音声信号処理装置、および音声信号処理方法、並びにプログラム | |
| CN106297820A (zh) | 具有基于迭代加权的源方向确定的音频源分离 | |
| JP7552742B2 (ja) | 音源分離装置、音源分離方法、およびプログラム | |
| JP7140206B2 (ja) | 信号分離装置、信号分離方法及びプログラム | |
| US10740341B1 (en) | Single- and multi-variate tensor spectral analysis | |
| WO2021112066A1 (ja) | 音響解析装置、音響解析方法及び音響解析プログラム | |
| US10747846B2 (en) | Efficient matrix property determination with pipelining and parallelism | |
| JP4952979B2 (ja) | 信号分離装置、信号分離方法、ならびに、プログラム | |
| JP7243840B2 (ja) | 推定装置、推定方法及び推定プログラム | |
| JP6808597B2 (ja) | 信号分離装置、信号分離方法及びプログラム | |
| JP2022127719A (ja) | ソース信号分離装置、ソース信号分離方法、プログラム、ならびに、情報記録媒体 | |
| JP2016156944A (ja) | モデル推定装置、目的音強調装置、モデル推定方法及びモデル推定プログラム | |
| US20200388298A1 (en) | Target sound enhancement device, noise estimation parameter learning device, target sound enhancement method, noise estimation parameter learning method, and program | |
| KR102066213B1 (ko) | 데이터 처리 장치 및 방법 | |
| JP6734237B2 (ja) | 目的音源推定装置、目的音源推定方法及び目的音源推定プログラム | |
| JP7156064B2 (ja) | 潜在変数最適化装置、フィルタ係数最適化装置、潜在変数最適化方法、フィルタ係数最適化方法、プログラム | |
| JP2005236852A (ja) | 信号分離方法、信号分離装置、及び信号分離プログラム | |
| JP4630203B2 (ja) | 信号分離装置、信号分離方法、信号分離プログラム及び記録媒体、並びに、信号到来方向推定装置、信号到来方向推定方法、信号到来方向推定プログラム及び記録媒体 | |
| KR101838408B1 (ko) | 오디오 신호 처리 방법 및 장치 | |
| JP7259572B2 (ja) | 分析装置、分析方法及びプログラム |
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: 19884781 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2020556587 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19884781 Country of ref document: EP Kind code of ref document: A1 |






























































