Hacker News new | ask | show | jobs
by giorgosera 2094 days ago
Almost a year ago I decided to start learning Russian so that I can talk with my girlfriend in her native language (the things we do for love )

Initially I tried the usual things like Duolingo, Babbel and some other apps. Out of those things the only one I found useful was Duolingo because it can get you started pretty quickly.

However, I got stuck after that. I couldn't see myself making any progress. Then I stumbled upon the Comprehensible Input theory and TPRS and since then I've been studying Russian using a method that loosely follows these. Here's what I do:

- I find short stories, news articles, social media posts etc online. - I read those texts and mark down the new words as I learn them. I add those words in a flashcard app and I practice them using SRS. I use an app called Ulangi. - I ask my girlfriend (a native speaker) to ask me short questions about the text and I have to answer in my target language. - Once I feel comfortable with that text I repeat the process with the next one.

And it works (at least for me). I grew my vocabulary immensely, I can acquire grammar rules naturally (like I did with my native language) and I get to actually speak the language from day 1. As an added bonus I get to learn a lot about the culture of my target language.

However, translating and saving words in my vocabulary became tedious so I decided to automate this whole process. So I started building a tool for me. I, then, realized that this might be useful for others so I made it public. You can use it for free at Talkabl.com

4 comments

This is excellent! Lots of potential here.

On mobile, I just tested the default French lesson. Right now, the 'dictionary' seems to be displayed dependent on where the last appearance of the word in the text. This means that if I select a word in the first paragraph but the word also appears in the last paragraph, I have to scroll to the bottom to see its definition (and add it to 'my list'). (ex: 'protestaires' in the default FR lesson) The column, in mobile view, gets bumped to the bottom.

I don't think you have to go as far as a modal window - something as simple as 'position:fixed' would let it pop on top of the text (though right now, the dictionary box doesn't have a defined independent class and is not contained). It's probably best for the large-screen view as well: you don't want your text body to be moving around while reading.

But seriously, this is one of the simplest, smartest and most extensible language learning tools I've come across. Thank you for sharing it.

edit// It's a FF/Webkit quirk, but because the parent element (.bx--content) has 'transform' property applied to it, it will prevent the child div from actually responding to 'position:fixed'.

Hey there! Wow thanks for the kind words :) Really glad you liked it.

Yes, I know that the dictionary experience on mobile is suboptimal. When I started this project I thought most people would access it on desktop but I couldn't be more wrong :) Most people use it on mobile. I released this week a couple of audio fixes for mobile browsers but didn't get to the dictionary issues. I will fix it pretty soon!

Thanks for noticing and keep using it and sharing your thoughts.

Awesome. An attempt to create a lesson fails with: "An error occured while creating the lesson Network error: Failed to fetch"

So I retried. Now I have two of the same lessons. How can I delete?

Also, is the text-to-speech defined by the voices on the local machine? Because I'm getting the playback in native language only. (The target lang voice is installed...) (edit: had french/canada installed and I guess it doesn't count...)

Also, is there a more appropriate place for me to provide feedback/ask questions?

Atm there is no delete button but I'll add that to the backlog. Thanks for sharing!!

The text-to-speech uses Speech synthesis from the Web Speech API and I wish it worked seamlessly on all browsers but it doesn't. Are you using it on mobile? If yes and your device is a Samsung one please check that you are using Google's TTS engine and not Samsung's.

"You can pick which one by going to the Settings app, then Controls->Language and input->Text-to-speech options. Select the gear icon next to Google Text-to-speech Engine, then under Language you can update the exact locale you want to use. If you select "Install voice data" you can even select from a sample of different voices for some locales. You need to restart the device after changing this setting for it to take effect."

Yes, please shoot me an email at admin @ talkabl.com and let's pick it up from there :) Looking forward to hearing your thoughts.

Very interesting. It is great that one can export it to Anki too. Does it handle incremental exports properly? For example, I export the vocabulary today with 10 words and import it to Anki. Then I add 5 more words and export the whole set again. If I import it into Anki, will Anki remember my history with the old words?
Hey there! I'm not sure it can handle the incremental exports. I'll have a look and check if it can be done. Thanks for the pointer.
That looks great! Definitely warrants its own submission in my opinion.

What do you have to do in order to support extra languages? Perhaps ensure font support if loading from web, and the dictionary comes from Wiktionary so you do need to know what language it is, but other than that should 'just work', anything else?

Hey thanks :) I didn't submit it yet in HN but tried to do so in more relevant communities such as /r/languagelearning etc. Buuuut, HN surely has a lot of people interested in language learning too so I will submit it at some point :)

Regarding new extra languages - good question :) Thankfully because of the way the code was written, not a lot of work is needed to support a new language. I went from just 1 language (Russian) to the ones I support now in just 1-2 days worth of work. Having said that, some languages are trickier. For example, Japanese needed more work on how the tokens (words/characters) are parsed and split in the UI (to be honest I'm still not sure about how well it works). Also, not all languages are created equal according to Wiktionary. Some languages have way more Wiktionary entries than others (e.g. Korean has fewer entries than Russian). Also, I use some NLP libs for tokenization and lemmatization which vary in accuracy depending on the language.

The whole idea of the project is to experiment with how much can language learning be automated. Can we enable more people to learn a new language if they do not have access to native speakers or teachers? So automating some parts might need some sacrifices in the quality of the material but quite frankly from my own experience the benefit outweighs the occasional wrong word here and there :)

> You can use it for free at Talkabl.com

I picked French and clicked the "Listen to the lesson" button. But what I got was my computer speaking French words as though they were English. Even my French accent, almost fifty years after failing my high school French exams, is better.

:-)

Can anyone tell me how to make it speak French French instead of Franglais? Apart from that it looks interesting.

Hey :) hahaha indeed the text to speech feature might sound unnatural sometimes. I use the Web Speech API but unfortunately it doesn't work on all browsers seamlessly.

Are you using it on mobile? If yes and your device is a Samsung one please check that you are using Google's TTS engine and not Samsung's.

"You can pick which one by going to the Settings app, then Controls->Language and input->Text-to-speech options. Select the gear icon next to Google Text-to-speech Engine, then under Language you can update the exact locale you want to use. If you select "Install voice data" you can even select from a sample of different voices for some locales. You need to restart the device after changing this setting for it to take effect."

Let me know if you got it working. You can also switch browser to check if it works on a different one. I really wish Web speech API was more consistent.

I had to install the French voice from Microsoft. But Firefox still spoke English even when I chose French in the Windows Speech Settings. It works in Microsoft Edge but there is a different problem there: it won't stop when I hit the pause button.
thanks for sharing! Cross-browser compatibility for the web speech API is really an issue. Unfortunately, different browsers behave differently (and not in a predictable way).

I'll have a look at this though. Thanks for sharing.

I was using it in Firefox 81.0, 64 bit on Windows 10.