PerlとiPhoneとPodcastを駆使して最強の英語学習システムを作った
前からやりたいと思っていた表題の件、チャレンジしてみたら完成したので報告します。
Voice of AmericaのPodcastが英語学習にとてもよい件
僕は前々からVoice of America (以下VOA)のPodcastをだらだらBGMのように流し聞きするという勉強方法を実践していて、これがなかなか効果をあげていました。
https://itunes.apple.com/jp/podcast/learning-english-broadcast/id109522474?mt=2
ひとつだけ不満があって、「今流れてるこの音声の英語テキストを見たい」と思っても簡単には見つけられないことです。
VOAのウェブサイトは情報がごちゃごちゃに散らばっていて、どのページにどの記事があるのか、構造がさっぱりわかりません。検索すれば見つかることもありますが、いちいちPodcastの音声から単語を聞き取って検索するのはさすがに面倒。 自分が欲しいのは音声と英文テキスト両方がセットで入ってるPodcastなんです。 で、ないなら作ればいいやと思って自分で作ってみることにしました。
VOAのサイト内をいろいろ漁ってみる
実はVOAのサイト内に、iTunesには掲載されていないPodcast配信が多数あります。 その中から自分のニーズに最も近いものを探したらこんなのがありました。
http://learningenglish.voanews.com/podcast/?count=4&zoneId=3521
これに、英文テキストをスクレイピングしてきて付与させれば自分が欲しいものが作れそうです。
そもそもPodcastとは何か
基本に立ち返って、そもそもPodcastとは何か(どういう要件を満たせばiPhoneでPodcastが聞けるのか)を調べてみました。
調査の結果、Podcastを実現するには下記のことをやれば十分であることがわかりました。
- Appleが規定した仕様にしたがってRSS(=XML)ファイルを作る http://www.apple.com/jp/itunes/podcasts/specs.html
- それをインターネット上の公開領域に置く
- そのURLをiPhoneのPodcastアプリに入力する
Podcast用のRSSファイルを作る
ようはRSSファイルを作ればよいわけです。Perlでやればさくっとできそうです。
RSSを出力する処理については、XML::FeedPPというモジュールを使ったらわりと簡単にできました。
肝心のデータを作る処理については、さっきあげた見本となるPodcastのRSSを解析して、VOAのサイトをスクレイピングして英文テキストを取得することができました。 これが完成版のソースコードです。
これを手元で実行するとRSSを出力してくれます。 できたRSSのXMLファイルをWeb上で公開するのにはAmazon S3のWebsite機能を使いました。
ここまでやって、RSSファイルのURLをiPhoneのPodcastアプリに入力したら、VOAの英文フルテキスト付きPodcastを購読することができるようになりました!!
で、肝心の英語力は向上したの?
環境構築でエネルギーを使い果たしたので来年からがんばります。(オイ