This project shows you how to build alarm clock with ability to recognizes simple commands to turn off or snooze the alarm clock. By requiring the user to repeat certain phrases to execute specific commands, it help user become more alert when they wake up.
The hardware for the project consisted of the PIC32 microcontroller, microphones, a TFT LCD display, a UART serial cable, a buzzer for the alarm sound, and an external pushbutton. The microphones detects the voice commands from the user which is then amplified and filtered for better sound capture. The TFT display shows the date, current time in military format, and the alarm time in military format.
The TFT was also used to show a spectrogram of the voice recognition when the pushbutton is pressed, which determines when to capture speech when the alarm goes off. The UART serial communication allows the user to set the time and date using a UART console and a keyboard on a computer as well as the alarm time.
How it works?Firstly, user need to press a button to run the fft and record speech. Then, the micro controller will identify the word based on the spectrogram of recorded word to the words in database. If the matching is above a certain threshold then the alarm buzzer stops ringing.
For example, user can train four words/phrases, "shush", "stop", "snooze" (to delay the alarm time), and "shut up". When the FFT is run the program enters into a state machine. The state machine has a state for each sound of the word for the password in our database that will turn off the alarm. Each sound is compared to that of the spoken word and if the syllable matches we move on to the next state. The final state stops the buzzer.