ATANNE - Assistive Technology Application and Neural Network Experiment
Former Project Names: PicoAI, GL5A, GL5B, GL5AI
ATANNE was started as a basic rudimentary idea written in BASIC to essentially mimic other "AI" programs that were either real programs or made up (Science Fiction). The ideas of IBM's Ractor, Space Odyssey's HAL9000, War Game's W.O.P.R. program "Joshua", Short Circut's "Johnny Number 5", Star Wars' C3PO and R2-D2, and the list goes on. While many of these were intended as futuristic Sci-Fi ideas, my facination of computer technologies that were applied as assistive devices never ceased.
Video: 3 minute video, example of how ATANNE both learns and functions (Dec 2018)
NOTE: ATANNE is currently being recoded for the generation 3 version I have been planning, expect hiccups!
But why is the project been ongoing for so long and interests me? The big answer is that data analysis is not as complicated when we discus numbers. If you look at your numbers on a chart, and determine mathematically that you are level, going up, or going down, it's fairly simple. But analyzing speech, language, and human thought/communication is daunting. There are so many variables to account for outside of just the formal methods of communicating. Unlike computers, we use much more than Zeros and Ones to transmit our information. This is part of why I also placed a focus on Psychology while working on IT studies. Programs like this may one day unlock the key to so much more then a handy assistant. It will give way to assisting those with disabilities, and even those without in ways we have yet to explore! On to a little history though...
The very first few iterations I typically referred to as GL5 (for generational Language 5) were started in BASIC and QBasic. These versions simply took the users input by keyboard, attempted through rudiment design to decipher what the input meant, and responded with hard coded responses to the user's screen. This method lacked fluidity and limited the use to only predefined functions. After moth-balling the idea for several years I revisited the idea in the mid-90's and early 2000's to use text files as basic databases that could be expanded without a complete re-write of source code. Eventually the source code was moved from BASIC to C/C++ and started utilizing other methods of database structures. With the advent of text-to-speech I also started utilizing the speakers in conjunction with the screen for output.
The more recent interations of ATANNE now use multiple programs communicating the data in pieces to decipher the users input and determine the best fit response or actions. Thanks to Google's speech-to-text API's, several text-tospeech advancements, SQL database functionality, and CPU speeds and advancements, the project has changed to something that more resembles what those old Sci-Fi flicks presented to entertain us and make us dream.
The basic work-horse of ATANNE is designed from the theories of both fuzzy-logic and very rudiment Neural Network principals programmed in Java, PHP, and Python. This allowed the use of remote servers to host and supply the database structures needed, and to limit the processing requirements of the actual end-use device to simplify tests and produce a more manageable product. This also centralizes the actual data and permits each instance to run the same database and core features utilizing a local application that communicates to the back-end server systems (think in the realm of Edge Computing). The drawback to this however is the constant requirement for connectivity to the back-end server structure. While it is possible to actually run an entire instance on a single desktop or laptop PC, it's less practical when you want to make the device more portable and battery powered.
It's unlikely that ATANNE will ever become a mainstream device like Siri, Cortana, or Alexa has in recent years, but the amount of knowledge I have gained from writing the source code, testing different ideas, and tying in a few raspberry pi's to the servers, has provided me with quite a bit of satisfaction. I have ATANNE enabled for limited use and testing on this website, there is a "ATANNE Chat" button on this page that links to ATANNE for you to enjoy. The public version on this website has most of the functionality of the application, but some features are not accessible through the web-based interface. Most of the features that are not available is for security purposes and practical use reasons. Enjoy!
Video: 45sec video, Raspberry Pi running ATANNE with servo controllers. Raspberry Pi cannot process as fast