AudMem Module of First Working AGI

AudMem module of the

First Working AGI Mind in JavaScript

MindForth for robots -- ghost.pl for webservers


1. Diagram of the AudMem Mind-Module


   /^^^^^^^^^\ Recall Of Knowledge On Seeing A Cat /^^^^^^^^^\
  /   EYE     \ REACTIVATED                       /   EAR     \
 /             \ CONCEPTS                        /  _________  \
|   _______     |   | | |    SEMANTIC MEMORY    |  /MindBoot \  |
|  /"cat"  \!!!!|!!!|!| |                       | / English   \ |
| / image   \---|---|-+ |    __________         | \ bootstrap / |
| \ recog   /   |   |c| |   /          \        |  \"vault"  /  |
|  \_______/    |   |a| |  (  Sentence  )       |   \_______/   |
|               |   |t| |   \__________/--------|-------------\ |
| recognition   |   |s| |      |   \  ______    | AudMem short| |
| of "cat"      |  e| | |      |    \/EnVerb\   | term memory | |
| results in    |  a| | |      |    ( Phrase )  | where ideas | |
| spreading     |  t| | |   ___V__  /\______/   | are heard or| |
| activation    |   | |f|  /EnNoun\/    |       | generated,  | |
| among related |   | |i| ( Phrase )    |       | then stored | |
| concepts      |   | |s|  \______/     |       |   ________  | |
|   _______     |   | |h|      |       _V_____  |  /        \ | |
|  /new    \    |   |_|_|     _V___   /English\ | /  "cats"  \| |
| / percept \   |  /     \   / En  \  \ Verbs /-|-\  "eat"   /  |
| \ engram  /---|--\ Psy /--/ Nouns \  \_____/  |  \ "fish" /   |
|  \_______/    |   \___/   \_______/-----------|---\______/    |


2. Purpose

When AudMem() starts out in the Ghost Perlmind AI, the MindBoot sequence has created a blank line in memory with

$t=2424; $ear[$t] = " ,0,0"; # 2016may23: blank space
storing an auditory engram. AudMem always needs to store a word after at least one blank space, so that AudRecog can recognize each word.

The question arises -- when the AI is steadily thinking, without human input, should AudInput be sending any phonemes "$pho" into AudMem for storage?

The recent Perlmind from ghost175.pl on has a simplified auditory memory format that does not store a continuation "ctu" flag, and so the AudRecog software must rely on one more blank phoneme beyond any stored word to detect the end of a recognizand word. It is the job of AudInput and AudMem to store that extra blank character at the end of each word.


3. Algorithm


4. Code of AudMem() from ghost.pl First Working AGI in Perl

sub AudMem() {  # http://ai.neocities.org/AudMem.html
  if ($pho eq chr(13)) { $pov = 2 }  # 2017-03-31: for sake of pause-counter
  $ear[$t] = "$pho,0,0";     # 2017-03-16: store the character in the first column;
  if ($t > $vault) {  # 2017-03-15: Engrams in vault do not need auditory recognition.
   if ($pho eq chr(13)||$pho eq chr(32)||$pho=~/[A-Z]/) {AudRecog()} #2017-12-23
    if ($pho eq "\x80"||$pho eq "\x81"||$pho eq "\x82"){AudRecog()} #2017-12-26
    if ($pho eq "\x83"||$pho eq "\x84"||$pho eq "\x85"){AudRecog()} #2017-12-26
    if ($pho eq "\xF0"||$pho eq "\x86"||$pho eq "\x87"){AudRecog()} #2017-12-26
    if ($pho eq "\x88"||$pho eq "\x89"||$pho eq "\x8A"){AudRecog()} #2017-12-26
    if ($pho eq "\x8B"||$pho eq "\x8C"||$pho eq "\x8D"){AudRecog()} #2017-12-26
    if ($pho eq "\x8E"||$pho eq "\x8F"||$pho eq "\x90"){AudRecog()} #2017-12-26
    if ($pho eq "\x91"||$pho eq "\x92"||$pho eq "\x93"){AudRecog()} #2017-12-26
    if ($pho eq "\x94"||$pho eq "\x95"||$pho eq "\x96"){AudRecog()} #2017-12-26
    if ($pho eq "\x97"||$pho eq "\x98"||$pho eq "\x99"){AudRecog()} #2017-12-26
    if ($pho eq "\x9A"||$pho eq "\x9B"||$pho eq "\x9C"){AudRecog()} #2017-12-26
    if ($pho eq "\x9D"||$pho eq "\x9E"||$pho eq "\x9F"){AudRecog()} #2017-12-26
  }  # 2017-03-15: end of test for time-point beyond MindBoot vault. 
  if ($audpsi > 0) {  # 2017-03-15: if there is a recognized audpsi
    if ($t > $vault) {  # 2017-03-15: during normal time beyond MindBoot vault...
      my @aud=split(',',$ear[($t-1)]);    # 2017-10-25=0: look at penultimate row
      # 2017-03-16: above line yields $aud[0] $aud[1] $aud[2]
      $ear[$t-1] = "$aud[0],$aud[1],$audpsi";  # 2017-10-20: store just prior to 32=SPACE.
    }  # 2017-03-15: end of test for time past "vault" of MindBoot.
  }  # 2017-03-15: end of test for recognized word.
}  # 2017-03-15: AudMem() returns to AudInput().


5. Troubleshooting and Robotic Psychosurgery

5.1.a. Symptom: (Something goes wrong.)
5.1.b. Solution: (AI Mind Maintainer devises solution.)


6. Variables

$pho -- a "phoneme" or character of auditory input.


7. Future Development


8. Resources


Please see

http://mind.sourceforge.net/audstm.html


9. AiTree of First Working AGI Mind-Modules


Return to top; or to
javascript subreddit for AI Mind discussion;
Forth subreddit for MindForth discussion;
Perl subreddit for ghost.pl AI Mind Maintainers.