Android使ってDuo3.0を使って勉強をするために色々やったことメモ

ひさしぶりに英語学習熱がよみがえってきたので、Duo3.0使って勉強するか〜と思っていたらDuo3.0の復習CDを分割するCUEシートが見つかったので、これは、英文と和訳を歌詞として入力して、androidの音楽プレーヤーで英文・和訳を見えるようにできれば、学習しやすいじゃん!と思い、やってみました。

Duo3.0って発売して10年以上たちますが、いまだに売れ筋の単語集なのですね。

ざっくりとした手順を書いてみます。わたしはMacつかっているんですが、1.のfoobar2000のくだりはVMWare Fusionを使ってWindowsでやりました。3のくだりはWindowsでもできると思います(未確認)。

1.Duo3.0の復習CDを分割してmp3にする。

「英語の会」というサイトに書いてあったやりかたを踏襲します。Duo3.0の文ごとに分割できるCUEシートを使って分割を行っています。

で、途中から手順変えてmp3にしているのですが、必要なLAMEエンコーダーは、Windows版だとここいらからとってくると良いかと。

http://www.rarewares.org/mp3-lame-bundle.php

そして、ここにあるやりかたをスライドNo.33基本的に踏襲します。

http://eigonokai.jp/duo30-splitting-method/

スライドNo.33でWAVに一度落としているけど、”Output Format”をmp3にする。エンコーダは、さきほど見つけてきたlame.exeを使う。

これで一文ごとにばらばらになったmp3ができました。

2.DUO3.0の英文、和訳を取得する。

Scansnap等々使い、DUOの復習CDについてあった本をスキャンするなり、手打ちするなりして、英文、和訳を取得します。

(グレーな話ですが、Duoの英文、和訳がネットのどこかにあります。そのものずばりの場所を書くのは著作権上どうかと思いますのでヒント・・・。googleで、DUO3.0の和訳をひとつ入れてみれば何かしらでてくるのではないでしょうか。)

3.mp3にテキストを組み込む。

3.1.rubyとtaglibとtaglib-rubyのインストール

なんとなく書けるrubyでタグ変更をやることにしました。rubyでID3v2タグ(mp3の曲情報の規格)を編集できるライブラリを使って「ちゃっちゃと」できると思ったら大はまり。ID3v2タグを編集できるライブラリは幾つかあったのですが、まともにUSLT(Unsychronised lyrics/text transcription)タグを入れられるものが”taglib-ruby”一個しかなかった。ほかのライブラリはダメダメです。

http://robinst.github.com/taglib-ruby/

ちなみ、taglib-rubyはtaglibというライブラリのバインディングになるので、taglibのインストールも合わせて必要です。Macではbrewでインストールできました。

http://developer.kde.org/~wheeler/taglib.html

3.2.mp3に英文、和訳を組み込むためのスクリプトを書く。

一応、自分で書いたスクリプトをさらしておきます。適当に作ったので、お好みにあわせて適宜変えてみてください。Duo3.0の英文テキストがDUO3_eng.txt、和訳テキストがDUO3_jpn.txtに、つくったmp3がすべてカレントディレクトリにあると想定していて、実行するとカレントディレクトリのmp3ファイルにタグ情報を直接書きこみます。テキストの先頭には xxx. と文章番号とピリオドが入っている前提でパースしています。

日本語テキストファイルはUTF-8で保存されている前提です。USLT.language=”eng”設定がおかしいように見えますが、特に問題にならないのでこうしておきます(というか、ID3.orgを見てもどう書いて良いのかちゃんと書いてない)。

[ruby]

require "taglib"

# DUO例文英文テキストからセンテンスごとに配列に入れる
f=open("DUO3_eng.txt")
current_sentence = 0
sentences = []
while line = f.gets
if (/^(d+).(.*)/ =~ line)
current_sentence = $1.to_i
sentences[current_sentence] = sprintf "%d.%sn",current_sentence,$2
else
sentences[current_sentence] << line
end
sentences[current_sentence].gsub!(/nn/,”)
end
f.close
# DUO例文日本語テキストからセンテンスごとに配列に入れる
f=open("DUO3_jpn.txt")
current_sentence = 0
while line = f.gets
line.strip!
if (/^(d+).(.*)/ =~ line)
prev_sentence = current_sentence
current_sentence = $1.to_i
if(current_sentence-1) != prev_sentence
p current_sentence
abort("mismatch")
end
sentences[current_sentence] = sprintf "%snnnnnnn%d.%sn",sentences[current_sentence],current_sentence,$2
else
sentences[current_sentence] << line
end
end
f.close

#フレーズごとのmp3ファイルに英文の配列を入れる
for current_sentence in 1..560
filename = sprintf("%.3d.mp3",current_sentence)
TagLib::MPEG::File.open(filename) do |mp3|
printf "%dn",current_sentence
tag = mp3.id3v2_tag

tag.artist = "DUO3.0_eng_jpn"

uslt = TagLib::ID3v2::UnsynchronizedLyricsFrame.new
uslt.language = "eng"
uslt.text = sentences[current_sentence]
uslt.text_encoding = TagLib::String::UTF8
tag.add_frame(uslt)
mp3.save
end
end

[/ruby]

3.3.iTunesで確認

iTunesでmp3のファイルを開いて曲の情報→歌詞プロパティで正しく英文→日本語が出ていれば成功。うまくいかなかったらバイナリエディタとにらめっこっこしてみましょう。

4.androidに入れる。

androidでUSLTタグをちゃんと認識できるプレーヤーが意外に少ないです。私がみつけたのは、”Astro Player”というもの。スキンを変えると、かなり大きく歌詞が出ます。

Astro Player

mp3に組み込んだテキストは、英語→日本語の部分で大きく改行いれてますが、このプレーヤーでの利用を想定して、歌詞の部分をフリックすると、日本語訳ができるようにしたのでした。

うーん、満足・・・じゃなかった、これ使って勉強しないとな!

 

Android使ってDuo3.0を使って勉強をするために色々やったことメモ」への7件のフィードバック

  1. 記事を拝見させて頂きました。
    すごいですね~。
    僕も英語の勉強をしようとDUO3.0を購入して分割したとこなんですが
    こっからが本番。勉強するのがメインの目標ですもんね…笑

    Androidで活用したいと思った時に参考にさせて頂きます☆

    • お役に立てそうでなによりです!
      本当は、出版元が同じようなものを作ってくれると楽なんですがね〜・・・
      とはいえ、ここまで作ったんだから、勉強せねば!ってな気にもなります。

  2. 検索している中に記事を見て、投稿致します。
    私は、韓国ソウルのHANAHDの李斗漢と申します。
    うちがMP3ファイルを文章単位でリピート再生、一時停止しながら効率的に学習できるアプリを開発しました。そのアプリは、DUOのMP3ファイルも文章単位でリピート再生できます。
    今アップルのAppStoreで期間限定無料で公開しています。
    http://itunes.apple.com/jp/app/m2dplayer/id538442525?l=en&mt=8
    動画マニュアル
    http://youtu.be/c4LtH2RLgBw
    読売新聞紹介
    http://www.yomiuri.co.jp/net/newproducts/software/20120720-OYT8T00668.htm
    一度使ってみて下さいまして、もし良ければ他の方々にも紹介してくださいませんでしょうか。
    では、よろしくお願いいたします。

    • ソフトのご紹介ありがとうございます。
      今回紹介したAstroPlayerよりも、語学機能で必要なリピート機能とかが強化されていそうですね。
      現在、iPhoneを持っていないのですが、iPodTouchやiPhoneを買うことがあれば試してみたいと思います!

  3. 上でコメントしたソウルのLeeです。
    AndroidoのM2DPlayerアプリもGoogle Play Storeで無料ダウンロードできます。
    このアプリは、MP3ファイルを文章単位でリピート再生、一時停止しながら効率的に学習するアプリです。それで、DUOのMP3ファイルも分割しないで文章単位でリピート再生・一時停止しながら学習できます。それに、LRC字幕ファイルを使って英文・和文の字幕も大きさ・色を変えてちゃんと表示できます。
    では、よろしくおねがいいたします。

    Google Play Storeリンク
    https://play.google.com/store/apps/details?id=com.m2dplayer&feature=nav_result#?t=W251bGwsMSwxLDMsImNvbS5tMmRwbGF5ZXIiXQ

    DUO3.0のマーカーファイルダウンロード
    http://m2dplayer.com/index.php?mid=japan&document_srl=1447

    • わざわざご連絡ありがとうございます!
      Duoのみならず瞬間英作文もサポートされているのですね!
      使わせていただきます。

  4. はじめまして
    Duo3.0を使った学習を開始したばかりのものです
    私はrubyは出来ないので、Javaでやりました
    使ったのはこちらのライブラリです
    http://www.beaglebuddy.com/
    同じ課題にブチ当たる方も多いかと思って
    書き込みをのこします

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です