going-digital / Talkie

Speech library for Arduino
305 stars 113 forks source link

synthK5 to synthK10 do not appear to be zeroed for unvoiced frames #39

Open kevinjwalters opened 4 years ago

kevinjwalters commented 4 years ago

For an unvoiced frame this code https://github.com/going-digital/Talkie/blob/7f57628bcfa78cad346508d0d43541cce50da1b3/Talkie/talkie.cpp#L125-L140

sets synthK1 to synthK4 but does not set synthK5 to synthK10. This leaves any values previously set so the current frame will actually inherit any set values from a previous frame.

This appears at odds with the (brief) comments in the data sheet on how it operates if I am interpreting them correctly? Page 9 says:

Unvoiced speech requires fewer filter coefficients. When Pitch = 000000, only K1-K4 are fetched from the VSM and stored in the Parameter RAM. K5-K10 are zeroed.

I've not executed this code, I've just inspected it...