Several months ago we set out to accomplish a few specific tasks in our quest to build a synthetic human. I think it’s time that we do a quick check-in on progress toward version 1.0.

Here’s the list of general goals we started with (see original post):

  1. A speaker daemon for performing text-to-speech COMPLETE
  2. A listener daemon for performing speech-to-text COMPLETE
  3. An optional wake-word routine for command filtering CONSIDERING
  4. A watcher daemon for face detection and facial recognition COMPLETE
  5. An intent parser for translating spoken text into actionable commands COMPLETE
  6. A skill-based expansion architecture COMPLETE

Not bad I’d say. That by itself is pretty awesome, but we’re not finished yet. There are a few additional things that have been added along the way. Here’s that list:

  • Startup driven via configuration files COMPLETE
  • Web-based control dashboard COMPLETE
  • PyQt5 supported forms COMPLETE
  • 1-to-Many brain to device containers to support multiple remote input/output devices COMPLETE
  • Modularized installations (choose plugins you need for a specific installation) COMPLETE
  • Automated speech-to-text model downloads COMPLETE
  • Automated facial recognition training routines COMPLETE
  • Fully customizable features via plugins COMPLETE
  • Streaming video previews via web and panel displays COMPLETE

Wow… right? Lots of careful thought and diligent work has been poured into Karen so far and there is plenty of room for anyone or rather everyone to join in and help.

I mean, just have a look at what is on my board of TODOs for Karen (in no particular order):

  • Add the “mover” module for driving actuators and servos
  • Add a reactive visualizer to the Panel (think J.A.R.V.I.S.)
  • Add a sleep/blackout button to the panel (or maybe a screensaver?)
  • Add Universal Plug-N-Play for brain configuration and device connections v0.7.1
  • Add motion detection (in addition to faces) for use as a security camera plugin
  • Add support for the Pi Zero W (watcher/speaker) v0.7.1
  • Add authentication for web browser interface v0.7.1
  • Add authentication for devices (to secure communication to only authorized remove devices) v0.7.1
  • Add saving of video feed for use as a security camera plugin (motion activated?)
  • Add FaceTime-like calling between panels (for calling between rooms like an intercom)
  • Improve device signaling (e.g. speaker selection and related contexts)
  • Add support for multiple conversations with multiple containers simultaneously
  • Add music playback (single-node) to speaker/panel
  • Add mute button to panel
  • Add volume control to panel (up/down)
  • Add video playback to panel
  • Add alarm clock skill
  • Add Wikipedia skill
  • Add thesaurus skill
  • Add dictionary skill
  • Add “send message” skill
  • Add “calendar” integration (ICAL)
  • Add “email” integration (IMAP/POP3/GMAIL)
  • Add “contacts” integration (VCARD support)
  • Add “reminders” integration (TODO)
  • Add openHAB/HomeKit/Google Home integration
  • Add lights, garage doors, etc. as direct integrations
  • Add weather to panel
  • Add weather forecast skill
  • Add alerts, notifications, and announcements… from brain to devices, emails, texts, etc.
  • Add automatic upgrade & restart functionality v0.7.1

That’s some exciting stuff. Don’t worry though; we’ll get to version 1.0 before all of those are finished I’m sure. At the moment this list represents the rough the direction we’re heading right now. Feel free to reach out and suggest a feature, component, device, or whatever that we haven’t thought of to add. We love brainstorming. Even better, why don’t you jump in and help. The more the merrier when it comes to developers.

In summary, Karen 1.0 will likely not be the self-thinker that I envisioned when I started. Instead v1.0 will be the foundation on which to build that core consciousness. I expect it’ll be closer to v2.0’s release before we have the self-learning working in a viable way. But hey, the ride between here and there is going to get exciting. I’m already to the point when folks ask me to do various tasks that I’m often responding with a “why don’t I just make Karen do that?”

I love this stuff…