Inspiration

HAL 9000 (2001: A Space Odyssey)

What it does

Simulates HAL 9000 from the movie 2001: A Space Odyssey. Features include playing chess against HAL, using voice commands to speak to HAL/specify chess moves, and a chess GUI.

How we built it

Back-end in Python, front-end in Flask. Hosted on Beagle-YAI system. Details:

  • Speech-to-Text: Google speech-to-text (facilitated by SpeechToText Python library).
  • Custom parser for natural language to SAN (Standard Algebraic Notation) for chess.
  • Chess engine: python-chess library.
  • Chess AI: Stockfish.
  • Chess GUI: Flask (using static chessboard SVG).
  • HAL Voice Lines (Script): Gemini.
  • Text-to-Speech: Elevenlabs API (custom-built HAL voice)

Challenges we ran into

  • Setting up Beagle-YAI environment and audio devices.
  • Inexperience with Flask front-end.
  • Audio recognition issues (speech-to-text).
  • Parsing natural language into chess notation.
  • Coordinating multiple AIs and API calls (Google speech-to-text, Stockfish, Gemini, ElevenLabs).
  • Multithreading coordination (UI and voice listening must run in background).

Accomplishments that we're proud of

  • (Mostly) working voice commands.
  • Coordination of a complex data pipeline despite being new to embedded systems.

What we learned

  • Flask.
  • Data pipelining.
  • Parsing.
  • Embedded systems.
  • Audio.

What's next for HAL 9000

  • Multiple states (eg Conversation Mode).
  • Smoother startup/termination.
  • More movie accurate (moral ambiguity of the character).

Built With

Share this project:

Updates