Inspiration
I always thought that there had to be more entertaining ways of learning. The methods currently used may appear effective, but could you learn and enjoy at the same time? It is possible, and it can be applied especially to learning a language. We humans use languages for almost everything, and we do it everywhere. Their unique nature leads to a new way of learning, one that can feel engaging and enjoyable the whole time. Tale Ling aims to achieve that for anyone learning Spanish.
What it does
- Personalized Story Generation: You can find and save favorite movies, books, and TV shows. Your preferences are used to create tailored stories just for you.
- Language Learning: The learning approach focuses on vocabulary, context, and entertainment. Tale Ling is powered by AI to generate short stories, each containing a fixed amount of specific Spanish words.
- Interactive Translation: Each story segment can be translated to English for a deeper, contextual understanding of new words.
- Narrative Design:
The stories follow a standard narrative structure with a clear plot and ending, making them engaging and easy to follow. You can easily visualize your completed stories to track progress.
- Spaced Repetition System: Track words you've encountered and change their status. Words marked as 'Familiar' are repeated in new stories, reinforcing your learning, while 'Learned' words are retired.
How I built it
- Learning method: I started by experimenting with a simple method for generating English text that combines words from other languages, initially Spanish, to truly understand their meaning.
- Tailored stories: Qloo’s Taste AI™ API solved the problem of creating personalized stories that could reach any person. It helped in understanding what stories they might like and linking their preferences to useful cross-domain affinities.
- Database: I used Supabase as a convenient way to set up a database that could store stories and preferences, and keep track of words. It also let me implement basic security and user authentication.
- Backend: The main language is JavaScript, using Node.js and Express.
- Fronted: JavaScript and HTML based, and Tailwind CSS for styling. I used a free AI tool to make progress with the UI and UX parts.
- Multi-Class Classification Model: A model for tag classification was needed. I trained the model with manually labeled data from the Qloo API, using Google Colab's free GPUs and a pretrained DistilBERT model. Hugging Face Spaces helped me to deploy it.
Challenges we ran into
- Tag classification model:
- I didn't plan to train and deploy a Machine Learning model; my initial assumption was that an LLM could handle the tag classification task gracefully and accurately. My assumption was completely wrong. The solution was to train a pretrained model, using Semi-Supervised Learning to avoid labeling many tags. I started by manually labeling the tags, which was the toughest part of the process, followed by trying to increase the model's performance.
- I expected to deploy the model using a free cloud application platform, so I tried that. The server didn't support the prediction process and crashed each time. I found Hugging Face Spaces in time, and they were truly simple to implement for making API requests.
Accomplishments that we're proud of
- Overall: I managed to end the application on time, deploy it, publish the demo video, and have the GitHub documentation ready.
- Features and Bugs: I made what I found to be truly useful features and fixed the most problematic issues. Although there's one last thing I would like to fix, and some others to enhance, the web app can be used, works, and is running now.
What we learned
I can say that I learned a lot through the whole process. It was a great experience.
What's next for Tale Ling
Tale Ling was born a few days ago. There are a few paths from here to the future.
Built With
- express.js
- gemini-api
- google-colab
- gradio
- huggingface-spaces
- javascript
- markdown
- node.js
- python
- pytorch
- qloo-api
- scikit-learn
- supabase
- tailwind-css
- transformers
Log in or sign up for Devpost to join the conversation.