2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

プログラマのための英語・外国語Advent Calendar 2017

Day 13

聞き取れない英語のセリフを何回も聞きまくる方法

Last updated at Posted at 2017-12-15

前回の記事はアニメで英語のリスニングをする方法を書きました。
[ネタバレ注意]アニメで始める英語リスニング

リスニングをしていると難しくて聞き取れないセリフって必ず出てきますよね。セリフが長かったり、話すスピードが早かったり。

そんなセリフを何回も何回も聞きたい。それも手軽に。

というわけで、そんなコードを書いてみました。

シチュエーション

まず英語の音源ですが、英語の音声ファイル(mp3とか)とか動画ファイル(mp4とか)が Mac に入っている状態を想定します。そして、コマンドラインからコマンドを叩くと、ファイルの特定の箇所のセリフが再生されるようにします。Mac じゃなくて Windows でも同じように動くと思うんで、そこは適当に読み替えてください。

とりあえず説明に使える音源を用意してみる

ネットでダウンロードできる英語音源をググっていたら、こんなサイトを見つけました。

LoadMp4.Com

英会話_Mp4_HD_Video_Download_-_LoadMp4_Com.jpg

なんか怪しいですね。権利とかの問題はちゃんとしてるんでしょうか?

わからないけど、とりあえず一番上の実用英会話フレーズ1000 聞き流し(日・英語音声付き)から mp4 ファイルをダウンロードします。

mplayer

次にコマンドラインで音や動画を再生してくれる mplayer を Mac にインストールします。

$ brew install mplayer

mplayer はオプションに開始時間と再生秒数を指定することで、特定の箇所の音を再生できます。

$ mplayer -novideo -ss 00:00:10 -endpos 5 english.mp4

-ss が開始時間で、 -endpos が再生秒数です。 -novideo はファイルが動画だった場合に音だけ再生してくれるオプションです。

好きな箇所を再生するようにコードを書く

いちいち長いオプションを書いて実行するのは面倒くさいので、簡単に再生するようなコードを書きます。

play.py
# -*- coding: utf-8 -*-
import os
import sys


soundFile = "english.mp4"
soundList = [
    ["00:00:04", "8"],      # 私もそう思った
    ["00:00:14", "10"],     # あなたはどのように休みを過ごしましたか?
    ["00:00:25.5", "9.5"],  # 彼女はますます美しくなりました。
]


def playMplayer(file, seekTile, playTime):
    # -ss 開始時間を HH:MM:SS で指定
    # -endpos 再生時間を秒で指定
    os.execvp("mplayer", ["mplayer", "-novideo", "-ss", seekTile, "-endpos", playTime, file])

    # Ctrl+C でターミナルの表示が崩れるので os.execvp に変更した
    #cmd = "mplayer -novideo -ss {} -endpos {} {}".format(
    #    seekTile, playTime, file)
    #subprocess.call(cmd, shell=True)

def play(no):
    sound = soundList[no]
    playMplayer(soundFile, sound[0], sound[1])


def main():
    no = int(sys.argv[1])
    play(no)


if __name__ == "__main__":
    main()

ダウンロードしたファイルを english.mp4 に変えて、同じディクレクトリにこのコードを置いて実行すると、こんな感じで音がなります。

$ python3 play.py 0

↓音が鳴る
私もそう思った。
That's the way I look at it, too.
$ python3 play.py 2

↓音が鳴る
彼女はますます美しくなりました。
She became more and more beautiful.

おわりに

わりと面倒くさいですね:stuck_out_tongue_closed_eyes:

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?