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