1. A computer-readable medium encoded with a speech signal denoising computer program, wherein execution of said “speech signal denoising computer program” by one or more processors causes said “one or more processors” to perform the steps of: a) choosing a speech signal class, said “speech signal class” being a collection of speech signals;
b) selecting at least one analysis dictionary, at least one of said “at least one analysis dictionary” used to describe said “collection of speech signals”;
c) defining at least one collection of paths in at least one of said “at least one analysis dictionary” for said “speech signal class”, each of said “at least one collection of paths” including at least one path;
d) initializing an estimate;
e) initializing an update speech signal with a speech signal corrupted by noise;
f) calculating said “estimate” by iteratively:
i) computing coefficients for said “update speech signal” using one of said “at least one analysis dictionary”;
ii) computing an embedding index for each of said “at least one path”;
iii) extracting a coefficient subset from said “coefficients” for each of said “at least one path” whose said “embedding index” exceeds an embedding threshold;
iv) adding said “coefficient subset” to a coefficient collection;
v) generating a partial estimate using said “coefficient collection”;
vi) creating an attenuated partial estimate by attenuating said “partial estimate” by an attenuation factor;
vii) updating said “update speech signal” by subtracting said “attenuated partial estimate” from said “update speech signal”; and
viii) adding said “attenuated partial estimate” to said “estimate”.