ARM-software / ML-KWS-for-MCU

Keyword spotting on Arm Cortex-M Microcontrollers
Apache License 2.0
1.13k stars 417 forks source link

About negative samples #81

Closed phecda-xu closed 3 years ago

phecda-xu commented 5 years ago

Thanks for your excellent work! I have tried this project in google_speech_command data set and got the result as you descriped in table. question 1: When i run this project in a Raspberry Pi to control LED lights with command, it seems like the model easy to get false recognition with other sound(talking, news or music).

I also tried this project in a Chinese commands dataset which collect from 1000 people and it meet the same problem too.

I guess maybe some negative samples is needed, so i collected some negative samples and retraining the model. It looks like it got in effect, but not enough! would you have some suggestion for me to this problem? Thanks!

question 2: When the wanted word is about only one word such as "shiela" , unknown word set will be too large. So i change the get_data() function and fill each batch with 50 pos samples and 50 neg samples which chose vioce randomly in data_index and unknown_index. The problem is that the acc will rise to 100% quickly very much (just about 50 steps), and the validation set is just about 30%-50%.

When the wanted words is about 20 words, the acc will stay 50% for a long time ,and the value of cross entropy declined slowly too. the acc value from validation set is just about 60%-70% .

do you have any ideas? ps: I build a new function to get validation and testing data too.

Thank you very much!

yanyanem commented 5 years ago

@phecda-xu ,

Chinese commands dataset which collect from 1000 people. is it public dataset? could you share it ?