This paper presents a Hidden Markov Model (HMM)-based speech
enhancement method, aiming at reducing non-stationary noise from speech
signals. The system is based on the assumption that the speech and the noise
are additive and uncorrelated. Cepstral features are used to extract statistical
information from both the speech and the noise. A-priori statistical
information is collected from long training sequences into ergodic hidden
Markov models. Given the ergodic models for the speech and the noise, a
compensated speech-noise model is created by means of parallel model
combination, using a log-normal approximation. During the compensation, the
mean of every mixture in the speech and noise model is stored. The stored
means are then used in the enhancement process to create the most likely
speech and noise power spectral distributions using the forward algorithm
combined with mixture probability. The distributions are used to generate a
Wiener filter for every observation. The paper includes a performance
evaluation of the speech enhancer for stationary as well as non-stationary
noise environment.
This code may be reused for any educational or non-commercial application without further licence Contact the author at BrianLBurns@att.net for any other use.
The CD Audio sample allows some non-SCSI2 CD ROMs to support audio operations by intercepting the relevant audio ioctls and translating them into the command block(s) expected by the non-compliant cdroms. It supports Plug and Play and Power Management, and is 64-bit compliant.
The code assumes a two-dimensional computational domain with TMz polarization (i.e., non-zero field Ez, Hx, and Hy). The program is currently written so that the incident field always strikes the lower-left corner of the total-field region first. (If you want a different corner, that should be a fairly simple tweak to the code, but for now you ll have to make that tweak yourself.) I have attempted to provide copious comments in the code and hope that a knowledgeable C programmer can quickly map the approach as described in the paper to what is in the program.