Create mp3 to practice mental addition

Repost from my tumblelog.

This script uses the festival text to speech system, SoX and lame to generate an mp3 to practice mental addition. It basically says two numbers and after a delay says the sum of those two numbers, the delay is supposed to give you time to calculate the sum mentally:


#!/bin/bash -e

# output file
output=$1

if [ -z "$output" ]; then 
        echo "usage: $0 OUTFILE"
        exit
fi

CWD=`pwd`
TMP=`mktemp -d /tmp/speed_addition.XXXX`
pushd $TMP

# pause length in seconds
pause=8

for i in `seq 32`; do
        x=$(($RANDOM % 999))
        while [ $x -lt 11 ]; do
                x=$(($RANDOM % 999))
        done
        y=$(($RANDOM % 999))
        while [ $y -lt 11 ]; do
                y=$(($RANDOM % 999))
        done
        echo "$x . + . $y" | text2wave -o add$i.wav
        echo "$(($x+$y))" | text2wave -o result$i.wav
        sox add$i.wav add_with_pause$i.wav pad 3 $pause
        sox add_with_pause$i.wav result$i.wav out$i.wav
done;

sox out*wav out.wav
lame --ta speed-math --tl speed-math --tt $output --silent out.wav $CWD/$output

popd

rm -r $TMP

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: