Language Drills with Raspberry Pi

Dmitri Popov

Productivity Sauce

Jun 27, 2013 GMT
Dmitri Popov

After a long pause, I'm back to my favorite pastime: learning foreign languages. But this time, I've enlisted Raspberry Pi as a little language learning tool. Currently, I'm using an audio language course, and Raspberry Pi helps me memorize the words and phrases I learn. The way this works is very simple. I chop each audio lesson into sentences and phrases using Audacity and save them as MP3 files in a separate directory. Raspberry Pi is hooked to a breadboard with a push button and a resistor as shown on the diagram.

When I push the button, a Python script picks a random mp3 file and plays it. The script is rather simple, and it uses the mpg321 player to play mp3 files.

#!/usr/bin/env python
 from time import sleep
import os, random
import RPi.GPIO as GPIO
 GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
while True:
 if (GPIO.input(17) == False ):
  randomfile = random.choice(os.listdir("./mp3"))
  print randomfile
  os.system('mpg321 ./mp3/'+ randomfile +' &')
        sleep(0.1);

The script requires several packages which can be installed using the sudo apt-get install python-dev python-rpi.gpio mpg321 command.

This is just a very rough prototype, and there are a lot of things that can be improved and tweaked. For example, I'm thinking about using an LDR (light-dependent resistor) to play a random file when light hits it. This way, I can place Raspberry Pi into a fridge, so it plays random files every time I open the door. Another possibility is to hook up a dot-matrix LCD screen and make Raspberry Pi display random words and phrases. Honestly, with so many ideas, I'm not sure whether I have time to learn Japanese.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News