Subject: Re: [AUDITORY] Gammatone filter bank in MATLABr2019a From: "Richard F. Lyon" <dicklyon@xxxxxxxx> Date: Tue, 16 Apr 2019 17:51:00 -0700 List-Archive:<http://lists.mcgill.ca/scripts/wa.exe?LIST=AUDITORY>--000000000000324f0c0586af48b9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Bastian, That's an interesting distinction that needs to be made, between the peripheral and "whole system" auditory filter, whether gammatone or otherwise. In my book, I say this about that (in Part III =E2=80=93 The Au= ditory Periphery): 13.1 What Is an Auditory Filter? > The auditory filters that we consider here include both those motivated b= y > psychoacoustic experiments, such as detection of tones in noise maskers, > and those motivated by reproducing the observed mechanical response of th= e > basilar membrane or neural response of the auditory nerve. One thesis of > this work is that a single model can do a good job for both of these, and > thereby provide a good basis for a machine hearing system. Since there ar= e > several stages of neural processing between the cochlea and our > psychoacoustic perceptions, it would not be surprising if the best > parameters were different between these types of models, but it seems > likely that the linear and nonlinear filtering due to the cochlea plays a > sufficient role in perception that we may find one set of parameters is > adequate, at least for a range of machine hearing applications. > And to be fair, the gammatone was originally proposed as a model of frog hearing physiology, and is widely used in cochlear models, even though Patterson popularized it in the psychoacoustic domain. So the MathWorks ought to be more careful what they say. I'd have several other quibbles with their docs (in the Audio Toolbox reference at https://www.mathworks.com/help/pdf_doc/audio/index.html). Quibbles: 1. "The gammatoneFilterBank follows the algorithm described in [1] and first proposed by [2]." [1] is Slaney's method, a simple filter cascade based on analyzing the Laplace transform of the gammatone. [2] is Patterson et al.'s "Complex Sounds and Auditory Images", a great paper but it doesn't say one word about how to implement the gammatone (they did have other implementation papers elsewhere, but not this method and not here). 2. Ref 2 says "the shape of the magnitude characteristic of the gammatone filter is very similar to that of the roex(p) filter commonly used to represent the magnitude characteristic of the human auditory filter." Mathworks says "The gammatone filter is similar to the roex filter derived from the notched-noise experiment." A cursory look at more recent literature on auditory filters, including Patterson's, would suggest omitting or at least tempering this claim. See my book Chapter 13 or this paper: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/36895.= pdf 3. Error where it says b =E2=80=93=E2=80=93 bandwidth, set to 1.019*erb2hz(= fc). Either the documentation is wrong, or the functionality is wrong. Hopefully the former. 4. The parameterization by only FrequencyRange, NumFilters, and SampleRate is rather impoverished. It is not documented whether the filters match the ERB bandwidth if some of these parameters are changed, or whether adjacent filters continue to cross over about 3 dB down; you can't have both, but you might want one or the other, and there's not enough control to say what you want. With a few more parameters one could do useful comparisons, tradeoffs, and tunings of filter numbers, orders, bandwidths, and phases for example. With just a few more one could include better auditory filter variants (that differ only in the locations of the zeros of the cascaded second-order filters), including APGF and OZGF. R2019a also adds gtcc (gammatone cepstral coefficients). Their algorithm uses log(energy) before the DCT, instead of the cube root proposed by the Shao et al. reference, which also uses a slightly different acronym: GFCC (gammatone frequency cepstral coefficients). Not clear why. The referenced paper did not really investigate whether their improvement over mfcc was due to the different frequency scale (700 Hz mel vs 229 Hz ERB break point between linear and exponential spacing), or the filter shape (triangle vs gammatone), or the nonlinearity (log vs cube root), or the domain of implementation (frequency vs time). With the impoverished parameterizations of these functions in the audio toolboxes, it's hard to further compare such things (though the gtcc does allow some of that). The other gtcc ref (Rabiner and Schafer) has nothing on gammatone or gtcc or gfcc. I could go on... Dick On Tue, Apr 16, 2019 at 12:24 AM Bastian Epp < 000000a94eb56441-dmarc-request@xxxxxxxx> wrote: > Dear list, > > This morning I read through the release notes of MATLAB R2019a and was > happy to find that there was an implementation of a Gammatone filter > bank included: > > "Gammatone Filter Bank: Mimic the human auditory system" > > With the reference to (among others): > > Glasberg, Brian R., and Brian CJ Moore. "Derivation of Auditory Filter > Shapes from Notched-Noise Data." Hearing Research. Vol. 47. Issue 1-2, > 1990, pp. 103 =E2=80=93138. > > This made me quite happy because it is a proper description of what > Gammatone filter banks most often are used for - to model the frequency > selectivity of the auditory system (as measured using psychoacoustics). > > However, in the DOC page, they show a picture of the Basilar membrane > on top with the frequency response of the filter bank - suggesting that > there exists a 1:1 correspondance. > > Everybody needs a topic to grow old and grumpy on - mine is this: > > From my point of view, this is only correct under the (overly strong?) > assumption that the cochlear is the only place in the auditory system > underlying the perceptually observed frequency selectivity. Measuring > "auditory filters" means to evaluate the auditory system as a > whole (the concept of a "neuron" also only makes sense when being > embedded in its network). "Cochlear filters" are measured on/in the > cochlea . > > Besides the common critiques (linearity, coarse approximation of the > actual "filter" shape, etc), the main problem in my point of view is > that we teach students that we can "measure" the function of a > "subsystem" (the cochlea) using a method that assesses the function of > the "whole" system. There are some data sets that suggest a strong > link, but the "tool" of psychoacoustics simply does not allow such a > statement. > > Even though I like the working hypothesis "The brain exists to keep the > cochlea warm", I think equating cochlear frequency selectivity with > auditory filters (without explicitly stating the assumption that no(!) > element along the auditory pathway modifies this frequency selectivity) > is a point where we could be more careful to avoid misconceptions and > overly strong conclusions. In most publications and books, this point > is not explicitly wrong, but not as precise as it could be in my > opinion. > > I hope that someone from MATHWORKS follows this list and considers a > more careful description in the DOCs. I would also be happy to compile > all the constructive arguments that people might have for/against my > point of view. > > Have a great day everybody! > > BAstian > > > > > -- > Bastian Epp > Associate Professor > > DTU Healthtech > ------------------------------------ > Technical University of Denmark > =C3=98rsteds Plads > Building 352, Room 118 > 2800 Kgs. Lyngby > Direct +45 45253953 > bepp@xxxxxxxx > http://www.dtu.dk/english > --000000000000324f0c0586af48b9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div di= r=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"lt= r"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small">= Bastian,</div><div class=3D"gmail_default" style=3D"font-size:small"><br></= div><div class=3D"gmail_default" style=3D"font-size:small">That's an in= teresting distinction that needs to be made, between the peripheral and &qu= ot;whole system" auditory filter, whether gammatone or otherwise.=C2= =A0 In my book, I say this about that (in Part III =E2=80=93 The Auditory P= eriphery):<br></div><div class=3D"gmail_default" style=3D"font-size:small">= <br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8= ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"g= mail_default" style=3D"font-size:small">13.1 What Is an Auditory Filter? <b= r></div><div class=3D"gmail_default" style=3D"font-size:small">The auditory= filters that we consider here include both those motivated by psychoacoust= ic experiments, such as detection of tones in noise maskers, and those motivated by reproducing = the observed mechanical response of the basilar membrane or neural response of the auditory nerve. One thesi= s of this work is that a single model can do a good job for both of these, and thereby provide a good basis= for a machine hearing system. Since there are several stages of neural processing between the cochlea and= our psychoacoustic perceptions, it would not be surprising if the best parameters were different between th= ese types of models, but it seems likely that the linear and nonlinear filtering due to the cochlea plays a s= ufficient role in perception that we may find one set of parameters is adequate, at least for a range of machine hea= ring applications.</div></blockquote><div class=3D"gmail_default" style=3D"= font-size:small"><br></div><div class=3D"gmail_default" style=3D"font-size:= small">And to be fair, the gammatone was originally proposed as a model of = frog hearing physiology, and is widely used in cochlear models, even though= Patterson popularized it in the psychoacoustic domain.</div><div class=3D"= gmail_default" style=3D"font-size:small"><br></div><div class=3D"gmail_defa= ult" style=3D"font-size:small">So the MathWorks ought to be more careful wh= at they say.=C2=A0 I'd have several other quibbles with their docs (in = the Audio Toolbox reference at <a href=3D"https://www.mathworks.com/help/pd= f_doc/audio/index.html" target=3D"_blank">https://www.mathworks.com/help/pd= f_doc/audio/index.html</a>).=C2=A0 <br></div><div class=3D"gmail_default" s= tyle=3D"font-size:small"><br></div><div class=3D"gmail_default" style=3D"fo= nt-size:small">Quibbles:</div><div class=3D"gmail_default" style=3D"font-si= ze:small"><br></div><div class=3D"gmail_default" style=3D"font-size:small">= 1. "The gammatoneFilterBank follows the algorithm described in [1] and= first proposed by [2]."=C2=A0 [1] is Slaney's method, a simple fi= lter cascade based on analyzing the Laplace transform of the gammatone.=C2= =A0 [2] is Patterson et al.'s "Complex Sounds and Auditory Images&= quot;, a great paper but it doesn't say one word about how to implement= the gammatone (they did have other implementation papers elsewhere, but no= t this method and not here).</div><div class=3D"gmail_default" style=3D"fon= t-size:small"><br></div><div class=3D"gmail_default" style=3D"font-size:sma= ll">2. Ref 2 says "the shape of the magnitude characteristic of the ga= mmatone filter is very similar to that of the roex(p) filter commonly used = to represent the magnitude characteristic of the human auditory filter.&quo= t;=C2=A0 Mathworks says "The gammatone filter is similar to the roex f= ilter derived from the notched-noise<br>experiment."=C2=A0 A cursory l= ook at more recent literature on auditory filters, including Patterson'= s, would suggest omitting or at least tempering this claim.=C2=A0 See my bo= ok Chapter 13 or this paper: <a href=3D"https://storage.googleapis.com/pub-= tools-public-publication-data/pdf/36895.pdf" target=3D"_blank">https://stor= age.googleapis.com/pub-tools-public-publication-data/pdf/36895.pdf</a></div= ><div class=3D"gmail_default" style=3D"font-size:small"><br></div><div clas= s=3D"gmail_default" style=3D"font-size:small">3. Error where it says b =E2= =80=93=E2=80=93 bandwidth, set to 1.019*erb2hz(fc).=C2=A0 Either the docume= ntation is wrong, or the functionality is wrong.=C2=A0 Hopefully the former= .</div><div class=3D"gmail_default" style=3D"font-size:small"><br></div><di= v class=3D"gmail_default" style=3D"font-size:small">4. The parameterization= by only FrequencyRange, NumFilters, and SampleRate is rather impoverished.= =C2=A0 It is not documented whether the filters match the ERB bandwidth if = some of these parameters are changed, or whether adjacent filters continue = to cross over about 3 dB down; you can't have both, but you might want = one or the other, and there's not enough control to say what you want.= =C2=A0 With a few more parameters one could do useful comparisons, tradeoff= s, and tunings of filter numbers, orders, bandwidths, and phases for exampl= e.=C2=A0 With just a few more one could include better auditory filter vari= ants (that differ only in the locations of the zeros of the cascaded second= -order filters), including APGF and OZGF.<br></div><div class=3D"gmail_defa= ult" style=3D"font-size:small"><br></div><div class=3D"gmail_default" style= =3D"font-size:small">R2019a also adds gtcc (gammatone cepstral coefficients= ).=C2=A0 Their algorithm uses log(energy) before the DCT, instead of the cu= be root proposed by the Shao et al. reference, which also uses a slightly d= ifferent acronym:=C2=A0 GFCC (gammatone frequency cepstral coefficients).= =C2=A0 Not clear why.=C2=A0 The referenced paper did not really investigate= whether their improvement over mfcc was due to the different frequency sca= le (700 Hz=C2=A0 mel vs 229 Hz ERB break point between linear and exponenti= al spacing), or the filter shape (triangle vs gammatone), or the nonlineari= ty (log vs cube root), or the domain of implementation (frequency vs time).= With the impoverished parameterizations of these functions in the audio to= olboxes, it's hard to further compare such things (though the gtcc does= allow some of that).=C2=A0 The other gtcc ref (Rabiner and Schafer) has no= thing on gammatone or gtcc or gfcc.<br></div><div class=3D"gmail_default" s= tyle=3D"font-size:small"><br></div><div class=3D"gmail_default" style=3D"fo= nt-size:small">I could go on...</div><div class=3D"gmail_default" style=3D"= font-size:small"><br></div><div class=3D"gmail_default" style=3D"font-size:= small">Dick</div><div class=3D"gmail_default" style=3D"font-size:small"><br= ></div><div class=3D"gmail_default" style=3D"font-size:small"><br></div><di= v class=3D"gmail_default" style=3D"font-size:small"><br></div><div class=3D= "gmail_default" style=3D"font-size:small"><br></div><div class=3D"gmail_def= ault" style=3D"font-size:small"><br> </div><div class=3D"gmail_default" sty= le=3D"font-size:small"><br></div><div class=3D"gmail_default" style=3D"font= -size:small"><br></div><div class=3D"gmail_default" style=3D"font-size:smal= l"><br></div></div></div></div></div></div></div></div></div></div></div><b= r><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, = Apr 16, 2019 at 12:24 AM Bastian Epp <<a href=3D"mailto:000000a94eb56441= -dmarc-request@xxxxxxxx" target=3D"_blank">000000a94eb56441-dmarc-re= quest@xxxxxxxx</a>> wrote:<br></div><blockquote class=3D"gmail_qu= ote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,20= 4);padding-left:1ex">Dear list,<br> <br> This morning I read through the release notes of MATLAB R2019a and was<br> happy to find that there was an implementation of a Gammatone filter<br> bank included: <br> <br> "Gammatone Filter Bank: Mimic the human auditory system"<br> <br> With the reference to (among others):<br> <br> Glasberg, Brian R., and Brian CJ Moore. "Derivation of Auditory Filter= <br> Shapes from Notched-Noise Data." Hearing=C2=A0Research. Vol. 47. Issue= 1-2,<br> 1990, pp. 103 =E2=80=93138.<br> <br> This made me quite happy because it is a proper description of what<br> Gammatone filter banks most often are used for - to model the frequency<br> selectivity of the auditory system (as measured using psychoacoustics).<br> <br> However, in the DOC page, they show a picture of the Basilar membrane<br> on top with the frequency response of the filter bank - suggesting that<br> there exists a 1:1 correspondance.<br> <br> Everybody needs a topic to grow old and grumpy on - mine is this:=C2=A0<br> <br> From my point of view, this is only correct under the (overly strong?)<br> assumption that the cochlear is the only place in the auditory system<br> underlying the perceptually observed frequency selectivity. Measuring<br> "auditory filters" means to evaluate the auditory system as a<br> whole=C2=A0(the concept of a "neuron" also only makes sense when = being<br> embedded in its network). "Cochlear filters" are measured on/in t= he<br> cochlea .=C2=A0<br> <br> Besides the common critiques (linearity, coarse approximation of the<br> actual "filter" shape, etc), the main problem in my point of view= is <br> that we teach students that we can "measure" the function of a<br= > "subsystem" (the cochlea) using a method that assesses the functi= on of<br> the "whole" system. There are some data sets that suggest a stron= g<br> link, but the "tool" of psychoacoustics simply does not allow suc= h a<br> statement.<br> <br> Even though I like the working hypothesis "The brain exists to keep th= e<br> cochlea warm", I think equating cochlear frequency selectivity with<br= > auditory filters (without explicitly stating the assumption that no(!)<br> element along the auditory pathway modifies this frequency selectivity)<br> is a point where we could=C2=A0 be more careful to avoid misconceptions and= <br> overly strong conclusions. In most publications and books, this point<br> is not explicitly wrong, but not as precise as it could be in my<br> opinion.<br> <br> I hope that someone from MATHWORKS follows this list and considers a<br> more careful description in the DOCs. I would also be happy to compile<br> all the constructive arguments that people might have for/against my<br> point of view.<br> <br> Have a great day everybody!<br> <br> BAstian<br> <br> <br> <br> <br> -- <br> Bastian Epp<br> Associate Professor<br> <br> DTU Healthtech=C2=A0=C2=A0=C2=A0=C2=A0<br> ------------------------------------<br> Technical University of Denmark<br> =C3=98rsteds Plads<br> Building 352, Room 118<br> 2800 Kgs. Lyngby<br> Direct +45 45253953<br> <a href=3D"mailto:bepp@xxxxxxxx" target=3D"_blank">bepp@xxxxxxxx</a><br> <a href=3D"http://www.dtu.dk/english" rel=3D"noreferrer" target=3D"_blank">= http://www.dtu.dk/english</a><br> </blockquote></div> --000000000000324f0c0586af48b9--