Duolibri Blog

Duolibri goes live!

After several years of experimentation and development, Duolibri is now publicly accessible!

I'm looking forward to having people try out Duolibri and give me some feedback. The prices for full books are all discounted during this initial period.

Survey of book reading apps for language learning

Why did I develop Duolibri when there are so many other apps out there? I spent years trying other apps and here are the results of that search.

Over the past few years I have been searching for apps to help me re-read novels in languages that I am trying to improve. In my case it's been German, French, and Italian. I'm at varying levels of intermediate in these languages I found reading novels directly in the foreign language too hard and found traditional parallel texts too slow and awkward. I want to read the novel and not agonize over every word. Basically what I want to do is extensive reading, with more-or-less the Listening Reading (LR) technique.

Over the past few years I have been searching for apps to help me re-read novels in languages that I am trying to improve. In my case it's been German, French, and Italian. I'm at varying levels of intermediate in these languages I found reading novels directly in the foreign language too hard and found traditional parallel texts too slow and awkward. I want to read the novel and not agonize over every word. Basically what I want to do is extensive reading, with more-or-less the Listening Reading (LR) technique.

I thought I'd share some of the results of my search for useful apps since I've spent quite a bit of time on this. These are the key features that I am looking for:

  • Longer texts & books
  • Parallel text (with professional translation on one side)
  • Audio book synchronized with markers in the text so you don't get lost
  • Embedded aids to understanding like optional in-line word/phrase translations to maintain your comprehension and to avoid stopping

Features to keep track of vocabulary knowledge (known and unknown words, etc.) aren't as important to me. I don't mind paying for books or subscriptions. Language learning is very time consuming and I don't mind paying for something that makes this more efficient.

I'll give my conclusions first -- I didn't find an app that does everything I'm looking for. I feel that computer aided tools can do more to help with the reading/listening process and we're only partly there with existing tools. A lot of progress has been made with apps for beginning learners, while apps for intermediate learners have a ways to go. A few years ago, when I couldn't find something I liked, I started developing prototype software for my own use. After much iteration, I found my prototypes were starting to be quite useful to me. That is what eventually evolved into the Duolibri software you see today. It ended up being a lot more work than I expected and I learned more about python and javascript than French and Italian! In the meantime, I'd appreciate any feedback from others on software resources to support this kind of reading. If and when my software is ready for others to use it, I'll let everyone here know.

I've listed some of the software and apps that I looked at below. Some things to keep in mind:

  • Some of these tools have many other features, I only considered the features that were directly related to my wishlist of features above. Pretty much all the apps have some way to look up words in a dictionary or translate individual words.
  • I only included apps that help you read texts of some length in order to learn.
  • These aren't proper reviews, these are just short summaries from my search for a tool to do something specific.
  • There are some great lists of language apps on the web but I couldn't find one that covered all the candidates for what I'm looking for (for example reddit and this site)
  • At first I tried to list the apps in order of applicability to my needs, but I largely failed, so the ordering of the list doesn't have much meaning.

Beelinguapp has a broad selection of shorter parallel texts. It has audio and very nice synchronization. Beelinguapp has Android and iOS apps and has free and paid (via subscription) versions.

LingQ Is a full learning system with many resources including full novels. It includes side-by-side translations as well as audio, but doesn't show synchronization. It has has vocabulary functions. LingQ runs in a browser or as iOS and Android apps and is paid via subscription.

Bilinguis has 5 full novels with parallel text and audio in various languages. It doesn't show audio synchronization and doesn't have vocabulary functions. Bilinguis runs in a browser and is free but with ads.

Dive into Espagnol is a web app with a variety of full novels with translations and audio. Translations are shown between lines and synchronization is shown line by line. There is one free book, otherwise it is pay by subscription. No dictionary or word aids. Spanish only.

Learning with Texts (LWT) is a software tool that lets you read arbitrary texts. You can add your own texts and audio (but it doesn't show audio synchronization). LWT has vocabulary functions (keeps tracks of words you know and don't know, let's you make flashcards, and has a SRS). It doesn't seem to have a parallel text view (both languages simultaneously). The software is open source and you need to install and run it yourself. It seems LWT has been removed from the above link very recently, but the software can still be found on mirror sites.

Foreign Language Text Reader (FLTR) has features similar to LWT (it uses some code from LWT). It is also an open source project. It runs as a local Java app. Last sentence for LWT above applies here as well.

Parallel Text Reader has a variety of full novels. It has audio only for a few books and plays for only one paragraph at a time. The translation is shown for a paragraph when selected. Parallel Text Reader is available as iOS and Android apps and is free (I think).

Lexo allows you to read shorter texts with audio (one sentence is shown at a time). It has vocabulary functions (flashcards, etc.) It runs in a browser (mobile friendly) and is free to use (via donation).

Libera allows reading with parallel text, and synchronized audio (incredibly it has word-by-word synchronization). It seems to only have a couple of books. Libera is an iOS app and is paid by buying individual books.

Language Tools has a collection of learning resources including a reading tool and a marketplace for teachers. It seems to be changing its name to OPLingo. The reading tool has vocabulary functions (highlighting, statistics). I didn't see any novel-length text. But you can add your own text and audio. It supports audio and video but doesn't show synchronization. Language Tools runs in a browser or as iOS and Android apps and has free and paid (via subscription) versions.

By the way, there is a comparison chart for LWT, LanguageTools, LinqQ, and Readlang in this post.

Parallel Books has full classic novels with side-by-side translation. No audio or vocabulary features. It is an iOS app and it seems to be free.

Paralleltext.io has full books with side-by-side translations. It has audio but is not free-running (you need to click each sentence). The audio seems computer generated and the quality is variable.

Paralelus has full novels in several languages. Only one language is displayed at a time and you swipe to switch languages. There is no audio. Paralelus is an Android app and is free (but has ads).

Doppeltext has full novels with translations available if you tap on a sentence. It doesn't have a full parallel text view or audio. Books can be purchased and read in a browser or downloaded in various formats and read in iBooks or Kindle.

Uncharted has full novels with word definitions but no full text translation or simultaneous display. There is no audio. Unchart has iOS and Android apps and has free and paid (via subscription) versions.

ReadLang is an aid for learning languages while reading text in a browser. It has a clean non-intrusive interface to show translations on-demand. It has vocabulary functions (definitions, stats, flashcards). ReadLang has a Chrome extension. It has free and paid (via subscription) versions.

Lingro is somewhat like ReadLang. It is also an aid for reading on the web (translations, word functions, flashcards, etc.) It seems a bit dated.

Jorkens is a software project for reading epubs with translations, lemmas, audio books and text-to-speech.

There are many more apps and sites that let you read books with translations for words or sentences that you see when you click/tap. If you search in the Apple App Store or the Google Play Store you'll find a bunch of them easily. One example is Mytoori (was called Duolir at some point).

There are a number of sites that host or sell e-books with embedded translations that can be read in standard e-reader software or devices. Some examples are:

  • Inter Linear Books
  • Easy Readers
  • Languages on the Web
  • Farkas Translations
  • Il Nattatore sells audio books in Italian. What makes them interesting is that they offer some books in EPUB 3 format which supports both text and audio with audio synchronization. EPUB 3 with text & synchronized audio is supported by a number of apps now. The first one that I came across a number of years ago is Menestrello. I haven't seen EPUB3 books that support a parallel text view as well as synchronized audio.

Of course there are lots of apps that use short texts or dialogues, usually with audio, to teach languages starting at the beginner level (like Assimil, Duolingo, Fluent Forever, FluentU, Living language, Michel Thomas, Pimsleur, Rosetta Stone, etc, etc.)

At one point or another, I came across these apps that seem to have died in the meantime: Lingualy, Bliu Bliu, and DbookApp.

Extensive Reading and the Listening-Reading (LR) Method

There are two language learning techniques that are relevant to what Duolibri is doing. Why are these techniques so different yet so much more engaging than the typical way languages are taught in schools?

When reading materials in the language you are learning there are two general approaches:

  • Intensive Reading = looking up words as you go.
  • Extensive Reading = reading without a dictionary and guessing/ignoring words you don't know.

A lot of people start with an intensive approach, get bogged down on the first page, and give up. Typical language courses and especially school language classes use intensive reading almost exclusively.

Extensive Reading

Normal language is, by nature, repetitive and reading is a natural form of spaced repetition. Regular books aren't written with a language course style repetition interval in mind but it does have a tendency to repeat the most relevant words the most. Best of all, it does it all in context.

Extensive reading makes use of these characteristics of natural language to expose you to more of the language in a less tedious way.

Extensive Reading has been described with the acronym READ:

  • R ead quickly and
  • E njoyably with
  • A dequate comprehension so they
  • D on’t need a dictionary

When attempting extensive reading it's important to select texts:

  • that you're interested in
  • where you understand the context and overall subject matter
  • where the level isn't way to far beyond your current knowledge level

Start with extensive reading instead. If the text really is too hard you may have to switch to intensive reading for a while, but you can hopefully gauge overall difficulty, some of the plot, and your interest level.

Listening - Reading (LR) Method

The Listening - Reading (LR) Method is a specific method that makes the extensive reading method easier. The inputs are:

  • the text in the foreign language on the left side of the page/screen
  • the text in your native language on the right side of the page/screen
  • audiobook of the text in the foreign language

These are the elements of the the method:

  • Make sure you've read the text in your native language first so you know the story and the context.
  • Listen to the audiobook and read along in the foreign language
  • Listen to the audiobook and read along in your native language
  • Listen multiple times

Various people recommend doing these steps in different orders. But I think the best technique varies depending on the abilities of the individual and the difficulty of the text.

The selection of the texts to read is important:

  • The texts should be long (e.g. novel length)
  • Texts that you are interested in and like

It does NOT matter whether you understand each single word. In the beginning concentrate on the plot not grammar points or vocabulary The more you hear and see at the same time, the more exposure you will get.

The LR method was discussed in detail in this epic thread on the language learners forum. If you google search for Listening Reading Method you can find more resources such as here and here. There is lots of detailed discussion on-line about exactly what constitutes the LR Method and I'm sure some would disagree with some parts of my summary here. But I think the elements of the method are very powerful in any case.

Reflecting on my own language learning experiences

I've had various language learning experiences over the years. Why were some of them super effective while others were massive wastes of time?

Like many people, I took a language class in grade school. Unlike many of my school classmates, I was actually interested in learning another languages (I was one of the rare "keeners"). Despite this, I learnt shockingly little during 8 years of French class in school (grades 5 to 12).

Later on I went to university, went travelling, and entered the work place where I experienced much faster and more efficient forms of learning. The incredible inefficiency of language instruction has always really bothered me. I'm not a teacher or an educator so it's not my field. However I am an engineer and I brain is bothered by inefficiency and I'm always thinking of ways in which things could be done better.

Here I'll reflect back on some of the language learning experiences I've had in my life and try to pull out some lessons from them. Learning is inherently personal and everyone learns differently. So my lessons won't make sense for everyone.

By the way, the diversity of learning is one reason I'm really excited about the promise of technology in education. Technology should allow much more personalized and efficient learning (although the opposite often happens when technology is first introduced to a problem).

Learning German as a child - Age 0 to 5 My parents spoke German at home and by the time I was 5 I could understand German very well. Once I entered the school system (all in English), German was relegated to just listening to my parents. I always spoke in English and my German speaking was so-so at best. Learning at home as child is obviously the best way to learn a language, but isn't really something one can repeat exactly later in life.

Learning French in Grade 5-12 Overall outcome: it was mostly wasted time. I could have learnt the same amount in a one year first year university course. It seems like an incredible waste. Some of the bad things:

  • One one hour every day or two.
  • Hardly any speaking practice.
  • Heavy emphasis on highly scripted lesson structures based around fixed vocab lists and grammar.
  • Class sizes were fairly large (30-30 kids) and most of the class was fairly uninterested in the subject.

University Language courses: In university I took one French course and one German course. This was abnormal for an engineering student, but I told you I was keen on languages. These were quite useful. Some positive factors were: smaller class sizes. More of an emphasis on speaking Some negative factors:

  • Only maybe 5 hours a week sandwiched in the middle of a heavy course load of other classes.
  • The classes really had a main objective of preparing students for the next course in the sequence (French 100, then 200, then 300, etc.)
  • - No language exposure outside of class (I supposed I could have joined the French club, there's a lot going on at University!)

Italian course in Italy I took an Italian course at a language school in Italy once. I was only there for a week, which is way too short, but ended up being hugely useful. Some positive factors were:

    I was already at an intermediate level in Italian It was fairly intensive I was on my own (no friends or family to talk to outside of class) My classmates didn't all speak English. We actually spoke a bit of Italian outside of class. Class sizes were small and much more unstructured. We were highly encouraged to talk and the topics were chosen mainly to encourage us to talk. The students were mainly there because they wanted to be there.

French course in France: Later on, I took a similar language school course in France. This one was also too short: 2 weeks. It was also quite useful, but less so than the earlier Italian one. Some reasons why include:

  • I was there with my spouse and we spoke English with each other outside of class
  • English was the common language among the students and we spoke English outside of class.

We did stay with a family which was useful since speaking English was forbidden by the lady of the house (if a bit intimidating).


One very useful type of experience that is quite rare is social interactions in the the target language when you're at an intermediate level. Trying to do this with groups of native speakers is frustrating and boring for them. It can work quite well if you're with other learners that are just a bit better than you are. I find alcohol helps a lot to get everyone to try speaking more.

Based on my experiences, here are some factors that positively impact learning:

  • Motivation and interest
  • Surrounded by other people that are at the same level or better than you. Being surrounded by only native speakers can be tough.
  • Intensive (enough hours in week), immersive (forced to stay in target language environment for periods of time)
  • Things like grammar and vocab is best learned in the context of interesting situations. Things like spaced-repitition-systems work.
  • Interesting situations, and comedy. As a trivial example, one of the best things about Duolibri (in addition to the gamification) are the funny phrases.
  • Language materials that are interesting and where I already know the context work well. Podcasts about my areas of interest work well. I usually like reading newspapers, but foreign general newspapers don't work well, since the political and local interest articles assume a bunch of context that I don't know (don't know the names of the politicians, etc.)

Given that I have experienced these things as a non-educator, it boggles my mind that we would still be teaching languages in old fashioned ways in school (e.g. this week memorize the chapter 6 vocab list and do these fill-in the blank exercises, etc.).