Hi. It’s nice
to meet you.
All About Me
ProjectKaren.Ai is a foundation of Python code that enables hardware interactions leveraging Machine Learning to create Artificial Intelligence. Wow, that’s a mouthful. Let’s try again, Karen is a set of Python classes and functions that you can use to build your own personal assistant similar to Apple’s Siri, Google’s Assistant, or Amazon’s Alexa. There are libraries for speech recognition, speech synthesis, face and object detection, and even face recognition. So basically Karen can see you, hear you, and respond to you.
Karen is 100% customizable. Its modular design allows you to create your own skills or integrate new hardware to fit your specific needs. The code is open source and shared with a business-friendly license.
How Does It Work?
Karen leverages a modular design that separates its primary functions into isolated processes. The individual modules use machine learning models to parse inputs into commands which are sent back to the Brain for processing. Each module interfaces with the brain via TCP/IP sockets which can run via a variety of methods including the default standalone configuration which is an isolated/secure design.
Expansion Through Modular Design
Karen’s primary functions are separated into modules which can be mixed, matched, and recombined through the use of device containers. A device container can include any number or combination of modules so long as the hardware is available. This separation of the physical layer and the communication layer enables the addition of multiple inputs or outputs to a virtually unlimited number of devices.
The list of device modules currently include:
- Speaker – (Output) For synthesized speech output
- Listener – (Input) For speech recognition
- Watcher – (Input) For face and object detection
- Web Portal – (Input/Output) For direct manual user input
- Panel – (Input/Output) Visual screen display
- Mover – (Output) For servo/controller board interaction coming soon
- Brain – (CPU) For parsing inputs, identifying intents, and generating outputs
Machine Learning & 3rd Party Libraries
Machine Learning or ML is a technology that allows for the hardware to detect sought after differences based on huge quantities of data. These differences can then be inferred as a spoken word, a recognized face, or any number of other things. The more specifc the identified item the more data is required to insure accuracy.
Machine Learning technology has come a long way in only a few years thanks to the commiditization of hardware that has happened with cloud technologies. That being said, Karen is a 100% standalone code base. It does not require any network or external connectivity to work properly. Karen is able to do this because the models were pre-built. All that data has already been crunched so that a much smaller model file can be loaded into the local system that tells the system what to look for specifically.
Karen uses the following 3rd party libraries:
- openCV for object detection through the Haar Cascade model
- Mozilla DeepSpeech for speech-to-text translation
- Festival for text-to-speech actions
- MyCroft AI’s Padatious for intent parsing.
It’s important to note that Karen does not require Internet access to function properly. By comparison, many of the other personal assistants (Apple, Google, Amazon) actually send the captured inputs (your voice or captured images from a camera) to the cloud for processing. Karen keeps everything on the local hardware.
Why the difference? Large corporations have spent millions of dollars on building accurate models for the various parsing activities. These models are proprietary and by sending your data to their cloud they are able to protect their investment. Additionally, these models are quite large and are not easily portable to a single machine for use. In Karen’s case, the models selected have been tuned for their specific purpose in order to keep them as small as possible. This means Karen likely gives up some accuracy, but with the benefit of being able to run in a completely private/isolated way and without a dependency on some big company’s black box.
Karen is designed to be lightweight and can therefore be run on virtually any hardware. At present, Karen is designed to run on a single Raspberry Pi device as these are inexpensive and readily available. The Raspberry Pi’s are also designed for “Makers” which fits well with the ideologies behind ProjectKaren.Ai.
What Should You Expect?
ProjectKaren.Ai’s main goal is to share knowledge and grow organically based on feedback and support from people like you. On this site and within each of Karen’s code modules you will find lots of documentation, examples, sample code, and other artifacts to help you grow in your own experience with Ai/ML and coding.
Who Built Me
Karen was originally designed by @lnxusr1 during the Covid-19 lockdown in 2020.