Forums

Implementing a graphic equalizer on speech

Started by J. Mike July 24, 2004
I'm a bad with signal processing but an experience c++ programmer. I have
implemented a code on a real-time man's speech that makes a pitch change.
The algorithm works fine in the time domain and implements overlapping
windows(50% overlapping). Now I want to add a graphic equalizer and  use the
same blocks for that. I was told that implementing an fft procedure on the
blocks with a variable fir filter would do the job. Can someone in this
group confirm that? If the answer is yes, is there in importance on what to
do first - pitch change or fft?

Thanks

Mike


On 2004-07-24 07:38:48 +0200, "J. Mike" <mike@iai.com> said:

> I'm a bad with signal processing but an experience c++ programmer. I have > implemented a code on a real-time man's speech that makes a pitch change. > The algorithm works fine in the time domain and implements overlapping > windows(50% overlapping). Now I want to add a graphic equalizer and use the > same blocks for that. I was told that implementing an fft procedure on the > blocks with a variable fir filter would do the job. Can someone in this > group confirm that? If the answer is yes, is there in importance on what to > do first - pitch change or fft? > > Thanks > > Mike
Hi Mike, you could do it that way, although this would probably mean swatting flies with a hammer. If you just need some code to get you started may I suggest Paul M. Embree's book "C Algorithms for Real-Time DSP" which has some C code for an 8-band (I believe) graphic EQ that could do the job. Not very high-end, but instructional and ready to use (I recommend the book a lot to my students, despite occasional terminology ambiguities and some minor errors). Generally, I'd recommend you do the pitch change first and then apply the EQ. Otherwise, the pitch change would also affect the EQ frequencies and the result would be difficult to control in a predictable way. Of course, this depends a lot on your application. One other suggestion would be looking at my smbPitchShift code that does pitch shifting in the frequency domain. You could use the transformed data to add an EQ without much hassle. The article I'm referring to is at http://www.dspdimension.com/html/pshiftstft.html . While this will most probably use up more CPU power than your overlap method, it would join the pitch shift and EQ in one single step. -- Stephan M. Bernsee http://www.dspdimension.com
Stephan M. Bernsee wrote:

> If you just need some code to get you started may I suggest Paul > M. Embree's book "C Algorithms for Real-Time DSP" which has some > C code for an 8-band (I believe) graphic EQ that could do the > job. Not very high-end, but instructional and ready to use (I > recommend the book a lot to my students, despite occasional > terminology ambiguities and some minor errors).
Hi Stephan, what do you think of Embree's "C++ Algorithms for DSP"? -- Quidquid latine dictum sit, altum viditur.
On 2004-07-24 21:06:41 +0200, Martin Eisenberg 
<martin.eisenbergNOS@PAMudo.edu> said:

> Hi Stephan, > > what do you think of Embree's "C++ Algorithms for DSP"?
I didn't read it yet, mostly because I usually don't recommend C++ for DSP purposes (makes the conversion to assembly less easy, lack of C++ compilers on certain DSP platforms - although this has become less important over the last few years). What do you think of it? Worth reading? -- Stephan M. Bernsee http://www.dspdimension.com
Stephan M. Bernsee wrote:

> On 2004-07-24 21:06:41 +0200, Martin Eisenberg > <martin.eisenbergNOS@PAMudo.edu> said: > >> Hi Stephan, >> >> what do you think of Embree's "C++ Algorithms for DSP"? > > I didn't read it yet, mostly because I usually don't recommend > C++ for DSP purposes (makes the conversion to assembly less > easy, lack of C++ compilers on certain DSP platforms - although > this has become less important over the last few years). > > What do you think of it? Worth reading?
I haven't read it yet ;) It's on my list of stuff to consider should I have something to spend and I just wondered when you mentioned its predecessor. -- BLICK t&#2013265924;glich in die Zeitung!