Skip to content(if available)orjump to list(if available)

Show HN: Personalized Duolingo (Kind of) for Vocabulary Building

Show HN: Personalized Duolingo (Kind of) for Vocabulary Building

14 comments

·January 20, 2025

Hi! Wanted to share the project I really wanted to have. TLDR; this app lets you create your own list of words and you get a Duolingo-like experience (kind of, still needs a lot of features) practicing those words in their context.

My English is not the best but not the worst either. But I realized I can't boost it up after a certain level! In my belief, in order to truly learn a language, you need to be exposed to that language often. Vocabulary is the key factor here if you really want to improve in any language.

My experience is that when I read a book to improve my English vocabulary, I encounter words that I don't know so often and my reading gets disturbed. I go look for the meaning, come back, put it in context, re-read it, etc. It didn't work for me. So I tried listening to audiobooks - I listen to the book and read along, and whenever I encounter a word, I write it down. I get these 50 words in 2-3 pages and I ask ChatGPT to give me their meanings. I read them, take the book, and now read it myself. That helps for sure, but still after a while I lose those words because I never encounter them again. Well then, in order to not forget those words, I need some kind of exercise, right? A flashcard app maybe? Well, I still need to go out there, ask ChatGPT to create questions, put them in a flashcard app, etc. It's still time-consuming and this is supposed to be fun!

I need to be exposed to English in my daily life. I just need to save the words somewhere and whenever I want, I need to be able to practice them in a fun way, in Duolingo style maybe? So then I realized would it be better to store words in their own context? I mean, say I read Harry Potter and have a list of words I encountered in it, say I watch Breaking Bad and have a list of words I encountered watching it. I believe seeing those words together and practicing together makes it easier to remember them.

But I shouldn't be the one adding the meaning of the word and the one to generate exercises, right? It all should be automated. The exercise part will be handled by LLM for sure, but for the meaning of the word, I can fetch from a dictionary? But I really don't like the dictionary definitions and one word can have multiple meanings in their own context. So then I need to use LLM for this task too and have the word's meaning in its own context.

You create a list for your context, you add words, meanings get added automatically, and I see the word added in a different color (coloring is also a method used to remember words). It all takes seconds. And whenever I want to practice these lists, I can use learn mode to learn and test my knowledge in quiz mode. So I basically built this app ((thanks to Claude 3.5 Sonnet)). I want it to be like Duolingo, but of course I still have a way ahead to go, but wanted to share it in hopes of getting contributors.

You can read more in the repository. I would love to get your thoughts on this.

sebnun

Great work, I had a similar need, and built a similar app (using podcasts) [1]

I originally planned to add some kind of SRS to it, but I found that I learned much better just reading things in context instead of explicitly using SRS to memorize them. Steve Kaufmann (creator of LingQ) explains this better here [2]

[1] https://www.langturbo.com

[2] https://www.youtube.com/watch?v=t26IPxExmzs

arbayi

Thank you so much both for your comment and for sharing your app! (there are definitely great tools out there that we're not aware of) I am very happy to find your app because I actually needed something like this! I enjoy listening while working and being able to see the transcription alongside it, with word definitions in context - this kind of learning really works for me! It's fantastic how it supports all those languages - you can listen, read, and look up definitions all in one place. Looking at this, the one I shared above looked very basic. You handle transcription, media playing, testing pronouncation, LLM interaction I guess for contextual meaning and examples... ! The only question I have (sorry if this already exists - but i couln't find it) but is there a chance I can see a list of words I've encountered and marked as known?

And for the second part, I'm planning to include SRS features @markvdb pointed out in comments, combining both contextual learning with SRS would be interested I guess.

claylimo

Similar to LingQ there is Migaku which can do this for YouTube and other sites. It definitely has significantly aided my learning and made it a zero friction and even fun experience to learn another language.

arbayi

Thank you for sharing! Looking at their blog, I saw this post about learning Japanese vocabulary (https://migaku.com/blog/japanese/how-to-learn-japanese-vocab...). They share a Japanese Netflix Frequency List - (https://docs.google.com/spreadsheets/d/15b3j9--RJ1K5hI9vz_2L...)

"To recognize 99% of all the words in Netflix's subtitles, you'd need to know 37,247 words"

Interesting approach! I really don't know how they managed to gather this list, but it's an interesting and clever method.

Alex-Programs

There's also https://nuenki.app (disclaimer: I made it), which applies the same approach to every single website*. It translates appropriate-difficulty sentences into your target language, and you can hover for definitions, pronunciations, etc.

*other than those blocked for privacy reasons

arbayi

I actually want to learn German, but I want to learn it by reading German texts and starting from zero, even though that makes it challenging. I need to look up definitions and such, but translating the entire page defeats the core purpose. This app in my case is just perfect match! Thank you for sharing!

nikkwong

This looks neat. If you’re going to add Duolingo style features, please don’t add fill-in-the-blank or word matching to the question types; or at least make them optional. They are an incredibly frustrating waste of time on Duolingo—they take up a ton of time to solve and don’t actually improve comprehension. My biggest gripe with Duolingo is that half of the questions asked in a lesson are questions like these which have the pretense of helping you learn but don’t actually deliver. I think if you instead came up with some very difficult question types that really challenged someone’s comprehension, it would be stickier than Duolingo (especially for the HN crowd who is actually trying to learn) and not just here to “play a game” like a large portion of the Duolingo audience.

arbayi

Thank you! I am very interested in this project and want to keep working on it, hopefully getting help from open source contributors.

I actually had this idea of using Duolingo's style exercises, but now with your comment, I realize some might not be appropriate for individual learners with different goals.

The cool thing would be to have customizable exercise types, where users can choose which ones they want and which ones they don't want!

I will add this to the roadmap in the README, pointing out this comment! Thanks again!

markvdb

Thank you for your contribution to the FOSS learning space.

Here's a few random suggestions: - spaced repetition. Again, anki style. - audio. Can you make it easy to record a phrase, anki style? Or maybe even make AI pronounce them correctly?

I would something like that.

arbayi

Thank you so much! I will definitely add those ideas to the roadmap in the README (pointing out this comment).

I believe the spaced repetition feature must be prioritized because that's the most important thing in this app. I mean, what's the purpose of seeing the words over and over again if I already have confidence with them?

For the pronunciation feature, I had similar work before and there are great open source tools and libraries we can build upon that analyze your pronunciation and spot where you made mistakes. We can use open source TTS libraries to pronounce the correct version.

I also would definitely want to see audio questions in exercises similar to Duolingo, and it would be great to work on those features.

frizlab

Apologies if this answered in the readme but does this support other languages than English?

arbayi

Hi! I actually forgot to mention this in the README, thank you for pointing it out.

The app would work for any language, but the definitions and exercises will be written in English. I created a list just now for German words and added the German word "Zeitreise". It generated this definition:

<<"Zeitreise" in a German mystery series means time travel. It refers to the act of a character or characters moving through time, either to the past or the future, often as a central element of the mystery's plot.>>

Exercises were asked in English.

"What does "Zeitreise" mean?":

- Time travel - Train journey - Long wait - Difficult puzzle

Maybe a feature where you can choose the language would be cool. I mean, someone might prefer to learn German using German, or say Spanish using Turkish.

Again, thank you for pointing it out. I will update the README and hopefully add inference language preference feature.

rebalh

[dead]