Within the AudRecog comparator there are both functions and considerations. The functions are what the comparator does, and the considerations are guidelines that we mindmakers must keep in mind as we program the functions into the comparator.
One consideration is that we will use the time-variable "midway" to limit backwards searches for word-recognition to an arbitrary length of most recent time, that is, not all the way back to the moment when the artificial mind began its artificial life -- except when the AI must summon all its resources and powers of thought, including an exhaustive search of all possible associations among all the thoughts and perceptions that the AI has ever experienced. Then, and only then, will the AI dwell on a save-the-world problem with infinite patience and with unlimited access to all memories. Meanwhile, until Armageddon or Goetterdaemmerung, we code an AI that looks back recently enough to find quick associations.
Another consideration is that, if the comparator finds multiple engrams of a known word in Aud, the most recent engram should be good enough for the purposes of pattern recognition.
A further consideration is that, if the most recent word-match is found, the search may be called off for more distant matches lying further back in time.
Another consideration is that we want the comparator to be completely robust and bug-free, so that we may safely program other parts of the Robot AI Mind, and so that other people may confidently port the comparator without worrying about bugs.
Another consideration is that we want to "aud-damp" the Aud array after each word-recognition, so that no left-over activation may interfere with fresh attempts to recognize words.
The AudRecog comparator is called over and over again by the auditory Memory (AudMem) just before each auditory engram is stored in the array of the auditory memory channel.
=== Purpose ===
The AudRecog auditory recognition module has two main tests.
The first test looks to see if an incoming pho(neme) matches a stored aud0 engram in a search backwards in time.
In AI more advanced than the original 26.Nov.1994 Mind.Rexx, we want the comparator to recognize morphemic sub-matches, that is, partial phonemic strings like the "pre" in the word unpremeditated -- a substring which may or may not supremely affect the meaning of the circumambient word, depending on whether or not the morpheme is accidentally or adventitiously contained within the word being heard.
For all matches, only "beg=1" initial phonemes will get their act(ivation) level raised by an arbitrary incremental value.
The second test checks to see if a given stored phoneme has a positive activation, which indicates a potential match.
Then a string-effect sequence passes the activation on to the next-in-line character, so that, on the next pass, once again a match will cause the activation to be strung further along.
The AudRecog function is at the heart of the Robot AI Mind and it has been quite difficult to program in each language. A good homework assignment for a computer science class or AI textbook would be to port the audRecog comparator module into a given programming language; or to improve the AudRecog algorithm to make it faster or more powerful; or to make the audRecog module capable of learning how to improve itself; or to implement auditory recognition for specific hardware devoted to auditory pattern recognition in physical robots.
The comparator in MindForth is an improvement upon 26.Nov.1994 MindRexx, which recognized only complete, entire English words. The MindForth comparator is designed and coded in such a way as eventually to permit subtleties and gradations of verbal recognition, so that the artificial Mind will gradually become better and better at recognizing a morpheme that meaningfully inhabits a word.
=== JavaScript ===
https://github.com/zzmp/juliusjs -- JuliusJS -- is a port of the "Large Vocabulary Continuous Speech Recognition Engine Julius" to JavaScript. If the AI Mind in JavaScript were to be converted to using acoustic phonemes instead of keyboard characters for input, all things pertinent to storage of phonemes in memory and production of phonemes for SpeechAct would also have to be changed.
Until this wiki-page is updated with more current content,
please follow the SeeAlso links below to older page versions.
0 comments on commit
838d4e5