🛠️ Use AI to Generate Custom User Specific Podcasts
2023-11-28 00:00:00 +0000
🎉 Pod Persona
Pod Persona uses Open AI’s API and Firebase serverless architecture to create Podcasts tailored to YOUR interests
🚀 Inception
I’ll admit it, I’m a headline only reader. But I’m trying to get better. The idea was simple in my head:
- Grab an article.
- Scrape the text.
- Summarize with AI.
- Translate to Spanish with AI - nary a project I do doesn’t shoe horn language learning in somehow.
- Use Open AI’s wonderful new text to speech API to get a natural, not robot-y, sounding mp3 file.
- Store audio files and data throughout the day and splice them together at the end.
- Give user a self-tailored podcast of all their articles they added throughout the day.
But in practice I ran into quite a few headaches.
- Had to store tokenizers for a natural language processor grabbing the articles (NTLK/punkt) in order to not have to download punkt on every server call (expensive compute time)
- Pydub, which I used for splicing audio files together, relied on ffmpeg and ffprobe. This caused zero issues on my Windows machine, but I had to store and point to the binary files when running my functions on firebase (Linux)
- Audio bugs when splicing files together that had slightly different metadata
In the end, I really liked my design. I let authenticated users add articles and podcast generations requests to the DB via button click and then use Firebase Function’s on_create feature to detect requests and complete the work in the background. This meant users could dump links throughout the day and not have to wait on a pesky loading screen before adding another article or exiting out of the app. By the time a user wanted to generate their podcast, they would get in only a few seconds because the audio was already created and only needed to be stitched together.
🧠What I Learned (New)
- Firebase Serverless Functions
- Firebase Firestore
- Firebase Storage
- Firebase Auth
🧠What I Learned (Continued Practice)
- Open AI API
- NoSQL DB rules and concepts
- Next JS (SSG)
- React
- Python
- Typescript
🛠️ Building a card game with instant feedback using Firebase Realtime DB
2023-10-27 00:00:00 +0000
🎉 Solo Cartas Malas
Solo Cartas Malas uses Firebase Realtime DB to let multiple people play a game of Cards Against Humanity online.
🚀 Inception
I wanted to play a Spanish version of CAH to practice my Spanish with friends. I knew Firebase used nosql dbs and thought that storing all of the questions and answers in a json file and uploading it might be an easy approach. After I got the hang of CRUDing the player’s hand with cards it became a breeze to add all of the relevant db listeners for changes in the db so that users could interact with each other instantly. Next, I had to create my cards. Putting existing cards into Google Translate wouldn’t be good enough because these types of games rely on a language’s nuance so a direct translation just isn’t funny. To solve this I thought up a rule set to make sure prompts and responses matched up grammatically and then I was able to think up my own cards and also use ChatGPT to generate some ideas. Since ChatGPT “speaks” Spanish it was able to create some really funny cards I ended up putting in. It was great practice for my Spanish. Finally, After I had enough cards in a list I was able to prompt ChatGPT to speedily format my list into a json file which I uploaded to the NoSQL DB directly.
Warning! These are using Cards Against Humanity style cards, meaning most of the content is very, very inappropriate.
🧠What I Learned
- Firebase Realtime DB
- NoSQL DB rules and concepts
- Next JS (SSG)
- React (continued practice)
🛠️ Building a Web App to Create Quizzes with AI
2023-04-13 00:00:00 +0000
🎉 Crispy Quiz
Crispy Quiz creates article/content-specific quizzes to test knowledge retention and comprehension.
🚀 Inception
This project was initially designed to help test my Spanish comprehension on articles I had just read. Upon hearing how much ChatGPT was disrupting education and teachers’ ability to accurately assess their students, I realized my project could be used to turn the tides in teachers’ favor. Now, teachers can quiz their students on specific materials to ensure they’re completing their assignments and understanding them properly.
🧠What I Learned
- React
- Serverless Functions (Google Cloud Platform)
đź’ˇ Other Interesting Technologies/Resources Used
- OpenAI API
- NLTK
- Netlify
🛠️ Spanish Phonetic Converter
2021-07-12 00:00:00 +0000
🎉 IPA Spanish Phonetic Converter
IPA Spanish Phonetic Converter Convert Spanish text to it’s phonetic spelling to improve pronunciation.
🚀 Inception
This was my first personal project that I followed through to the finish line. I had taken a phonetics class and became interested in how almost “programmatic” our pronunciation of words changes depending on the surrounding phonemes. I knew the subject was incredibly niche, but as it was my first completely original idea I decided to see it all the way through
🧠What I Learned
- Android SDK