Консольный английский. Урок 1. "Награбить" английских фраз

Люблю когда написанная программа делает именно то, ради чего создавалась, и затраченное на нее время со всей очевидностью окупается (бывает такое очень и очень… не всегда). Вот сегодня, например, написал скрипт, вытягивающий с полезного сайта нужные ресурсы.

Сайт этот — audio-class.ru/. Он помогает быстро освоить или подтянуть разговорный английский. Я туда зашел как раз с этой целью: понадобилось освежить речевые навыки. Чтобы не выглядеть наглым пиратом и неблагодарной скотиной, искренне хочу поспособствовать посещаемости этого отличного ресурса, который его авторы развивают, как говорится, не за страх, а за совесть. Отличный контент, с юмором всё сделано, доброжелательно и без всякой рекламы. Спасибо, чуваки, энергии вам в вашем благородном деле!

Теперь о шкурном интересе. Одной из самых важных фишек вышеупомянутого сайта является сборник озвученных фраз, запоминание которых на слух и является, как известно, залогом успеха в изучении языка. Всё там прекрасно работает: небольшие аудиофрагменты звучат прямо с веб-страницы, только успевай глазами соответствующий текст читать. Всего 8 страниц по 50 фраз, итого 400. Но есть недостаток. Память у меня пока еще довольно цепкая и при повторном прослушивании я поймал себя на том, что помню не саму фразу, а ее положение на странице. А хотелось бы рандомно… Вот эта мысль и толкнула на небольшое «преступление»: решил выкачать все аудиофрагменты и прослушивать локально.

Пощуал страницы firebug'ом — да, предчувствия оправдались. Аудио контент представляет собой mp3-файлы, разложенные по 8 каталогам. Причем файлы последовательно пронумерованы, а следовательно

#!/bin/bash

COUNT=1

function pump {
  wget "http://audio-class.ru/mp3files/vocabulary/voc$1/$COUNT.mp3"
	COUNT=$(($COUNT + 1))
}

for PAGE in {1..8} 
do
    echo "========== Page $PAGE =========="
    while [ $(($COUNT % 50)) -ne "0" ]
    do
         pump $PAGE 
    done
    pump $PAGE 
done

mkdir -p files
mv *.mp3 files
tar cvfz english.tgz files


На написание скрипта ушло минут 15.Сам не поверил, когда это всё сработало с первого раза. Впрочем, с первого раза как надо никогда ничего не работает. Так и на этот раз: вместо 400 файлов выкачалось 350. Где еще 50? Оказалось, что на 6-й странице авторы, почему-то, отошли от числовой нумерации файлов и решили называть файлы словами. Посему вторая часть марлезонского балета:

wget -O - http://audio-class.ru/english-collocations/vocabulary-06.html | egrep -o [a-z0-9_\ ]+.mp3 | while read l ; do wget "http://audio-class.ru/mp3files/vocabulary/voc6/$l"; done


Что, опять не 50, а 47?! Вот тут на сцену выходит великое правило программирования, доступное только посвященным: "А и хрен с ним, с рублем-то!". Не стоят менее 1% файлов того, чтобы ради них еще огород городить. Задача вполне себе выполнена, надеваем наушники и


cd files/
mpg123 -z *.mp3


Комментарии (4)

RSS свернуть / развернуть
+
0
Я так понял текст у них в mp3 теге хранится? А перевод только на самой странице?
avatar

Sergei_T

  • 17 апреля 2013, 16:49
+
0
Да, именно так. У них удобно сделано: включаешь проигрыватель, он тебе сверху вниз все фразы произносит. Глазами можно перевод смотреть. Быстровато, конечно, паузу бы регулируемую там организовать, но в целом отличный тренажер. Естественно, использовать его нужно в совокупности с другими методиками, коих немало и среди мобильных приложений, и просто среди книг, фильмов, песен. В этом отношении наше время как никогда благоприятно для самостоятельного изучения языка: всё доступно, только не ленись. Я, например, попутно перечитываю книгу "Осторожно: hot dog", слушаю с ребятенком английские песенки, выполняю тесты на смартфоне и т.п.
avatar

yababay

  • 17 апреля 2013, 17:18
+
0
Молодца, кстати сына к программированию не преобщаешь еще?
avatar

Sergei_T

  • 17 апреля 2013, 18:02
+
0
Рановато, наверно. Сам потом разберется что ему интересно.
avatar

yababay

  • 18 апреля 2013, 11:05

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.