Abstract:
Microphone array based speech enhancement has wide applications. However, a big array aperture may greatly limit its applications. The research for small microphone array based speech enhancement has great value. Yet it is a challenging objective. In this thesis, some algorithms and methods for small microphone array based speech enhancement are proposed first. Then two main algorithms that synthesize the proposed algorithms and methods are presented. Firstly, the Multichannel Crosstalk Resistant Adaptive Noise Cancellation (MCRANC) algorithm is proposed. The algorithm employs only two adaptive filters. It has good stability and low computational complexity. Secondly, three combined algorithms of MCRANC with other existing algorithms are presented. One combined algorithm is the cascade of MCRANC with improved spectrum subtraction. The second is the combination with delay and sum beamforming, and the third is the combination with Weiner post-filtering. These combined algorithms may achieve better results than any one algorithm alone. Thirdly, four improvements are made for MCRANC itself. One is to improve MCRANC with multichannel distorted signals filtering for its second-stage filter. Another improvement is to employ multiple sampling rates for the array signals. The third is to add fixed beamforming and use partial-channel processing in MCRANC. The fourth improvement is to introduce subband processing to MCRANC. Fourthly, two improved MGSC algorithms based on multichannel crosstalk resistant adaptive signal cancellation (MCRASC) are proposed. One is to use every channel of the array signal as the main channel signal and others as the referential signals for an ACRASC to get the noise estimations. The other is to obtain the noise estimations by establishing a shared distorted speech signal. It is proved that the essence of the two proposed improved MGSC algorithms is to extend the common blocking matrix to a time-variable vector blocking matrix. Finally, two hybrid algorithms that employ several of the above-mentioned algorithms and methods are presented. Both of them can be used for different environments and both are suitable for real-time implementation. For all of the algorithms, simulations and experiments are made to verify their effectiveness.