Study on the Integration of Speech Recognition with an Operation System:

October 8 Report

By Daniel Wilson

This week I worked toward beginning the implementation of the NLP unit. While I have not begun writing code, design elements are coming together better. I also believe I now have the tools I will need for this next week.

Early in the week, I realized that my original overall architecture had a flaw. The flaw in the drawing below is that it assumes input comes directly from the keyboard to the NLP unit without flowing through the OS’s input buffer. If my NLP unit draws its input from the buffer to which it is outputting, the data will run in circles and snowball.

I intend to solve this problem by creating a second buffer. The keyboard and SR unit will dump characters to one buffer that will feed the NLP unit. The NLP unit will feed the second buffer, from which applications will draw their input.

In my reading of Dr. Dougherty’s book, I have finished his explanation of Prolog, and am now continuing to his explanation of natural grammars. He is discussing derivations of expressions, given a grammar, and similar topics that are somewhat familiar from compiler class. He identifies five levels of linguistic structure, from the discourse down to the individual word. This hierarchy, which he illustrates below, should provide an adequate framework on which to design a language parser.

From Dr. Ray C. Dougherty, Natural Language Computing, p. 165.

In preparation for writing this unit, I have also installed the gnu Prolog compiler. The compiler is free, and comes with a manual, and seems to be working well. I really wanted to be able to compile executables for this kind of project. An interpreted solution probably wouldn’t work. But the gnu compiler creates .o files that I can link with .o files compiled by gcc. It appears to be an excellent solution.

As I begin next week I expect to continue the design and move rapidly into implementation. This weeks study and research have been good preparation.

1