A Discord Bot that Teaches ASL
Source: Dev.to
This is a submission for the Built with Google Gemini: Writing Challenge
What I Built with Google Gemini
I go to RIT, a school in New York State that shares a campus with the National Technical Institute for the Deaf (NTID). I really wanted to learn ASL, but the learning resources online were either unnecessarily time‑intensive, behind a paywall, or both. I could have spent 30 hours learning ASL from YouTube, but I’m a programmer, so instead I spent 3 months developing a Discord bot that uses basic language‑acquisition principles to quickly make the user functionally conversational in ASL.
The bot intentionally doesn’t teach deaf culture or slang because I believe that knowledge is best acquired by interacting with the real ASL community. I prioritized basic vocabulary and syntax and rely on the user to meet and talk to those who are more embedded in the culture using these basic tools.
The hardest part of this bot was creating a system to translate a string of text into ASL. I found a database online that contained recordings of people demonstrating different signs, but I couldn’t directly translate a string of text because there are syntactical differences, plus there are sets of English words that are homonyms but have different signs. To generate all the necessary translations I:
- Used the Google Gemini API to convert spoken English syntax to ASL syntax.
- Performed a homonym‑clarification step.
- Retrieved each word in the resulting string from the database.
- Combined the sign videos into a GIF for the Discord bot to send.
This project combined both Python and JavaScript.
Gemini helped by writing many of the more tedious portions of the codebase. I wrote the lesson plan into a JSON with tags that were replaced by random words from a word bank I also created, and words were slowly introduced to the user as they progressed through different modules. Each module began with a set of flash cards introducing the new words. Gemini assisted with:
- Parsing the JSON.
- The syntax for the video‑processing library moviepy.
- The Gemini API calls.
- The newer versions of the Discord applications API (the API for Discord bots).
Demo and Repos
(Links to the demo and repositories would be placed here.)
What I Learned
When I code with AI, I try to use AI as a learning tool first and foremost. Gemini explained the syntax of several niche Python libraries, which was extremely helpful because the documentation can be hard to find online, and it’s rare to see these libraries well‑documented.
Google Gemini Feedback
One of my biggest issues with Gemini is that it can’t be run locally on my own machine. I’ve looked at Gemma, but I wish Google released larger models (e.g., 400 B) as open‑weight or open‑source.
I also hope Gemini could be built into a browser, especially alongside an IDE integration like Antigravity. I had to scrape data from the ASL website manually, which involved a lot of tedious HTML parsing.
Additionally, language models aren’t very good at ensuring the documentation they reference for different libraries is up‑to‑date. Ask Gemini to write anything with moviepy and you’ll see what I mean.
Lastly, this is somewhat off‑topic, but I hope Google makes their TPUs available for the consumer market. It’s been absurdly difficult to get a GPU with enough VRAM to run a large model lately, and the cost is wildly out of my price range.