As a part of my BS thesis, I have implemented a speech recognizer in C++ It was developed from scratch, using the basic sound functions implemented under Windows 3.1 (read utterance, open file and read it chunk by chunk, play the file). The input file was a spoken utterance in Microsoft WAVE format. The algorithm I investigated computed the mel-cepstral coefficients from the input and used a dynamic time warping algorithm to align them against a set of previously learned patterns. There were 3 patterns for each word to be recognized; they were obtained from the training set using a 3-NN clustering algorithm. The
system was a discrete-word, speaker-dependent recognition system. I trained it on a data set of digits and commands, 16 words in total. The accuracy was close to 80%.
Visualization tool for regular grammars
As a course project, I have also implemented a visualization tool for mapping regular grammars or regular expressions to a graphical representation. One can associate every word of length n from the language generated by a regular expression with a dot on a table. My project drew that table in a window. This a method of generating fractals. I also designed an algorithm for constructing the regular grammar that generates the same language as a regular expression.
As a team course project for an 1 year course in software engineering, I have devised and implemented a CASE tool, including the full set of stages of analysis, design, implementation, validation and maintenance. The program was written in C++.