言語学習アプリのコンセプトを固める(2)

新年が明けて、今年中に英語をネイティブ並みに引き上げる方法を検討している。
Qiitaとは別に、語学学習については別にブログを書いていて、そちらも並行して検討中である。
（おそらく、ここまで日本人の英語能力に危機感を感じて、それを何とかＩＴを駆使して解決したいと考えている人間は、他にいないのではないかと考えている）

【参考サイト】

https://qiita.com/EasyCording/items/a9d0b2095f5143e7fa13

https://motochan1969.hatenablog.com/

# これまでの検討

戦略としては、大きく分けて三つある。

## ヒアリング

一つ目は、ヒアリングであり、ほとんど骨伝導ヘッドホンを２４時間装着して、英語のヒアリングを続けている。
コンテンツはYoutube上と、最近はAudibleのコンテンツをMP3に落として聴いている。

約半年間を経過して、そこそこ耳慣れしてきたのではないかと思う。課題としては、アメリカ英語は良いが、ブリティシュ英語はやはり聞きにくい。何故かというと、アメリカ英語はテンポが良いが、ブリティシュ英語は、ぼそぼそと呟くような発音だからだ。。。

とりあえず、ヒアリングは性別や話し手にかなり依存するので、先ずは自分が好きな人を目標に、物まねをしていけば良い。
（明石家さんまのような話がしたいなら、さんまのしゃべくりを1日中やればいいのだ。。。）

## アウトプット

2つ目は、アウトプットである。
これについては、自身で企画している山のＳＮＳグループがあり、今年からは英語での投稿を継続している。
山の単語はほとんどテンプレートのようになり、だいたいは言いたいことをすらっと書くことはできるようになった。
【参考サイト】
https://www.facebook.com/groups/2946295735638162

もう一つは、自身のブログにおいても、日本語でサクッと書いた後に、一度、英語で考えてみて、Translaterでチェックさせるというのを始めている。
やはり最終的には、言いたいことを日本語のように言いまわせて、英語が口から出てくるのが理想的だ。
まだ、その段階にはいかないが、同時通訳者なんかは、ほとんど頭の中でそれをやっているから超人だと思う。

【参考ブログ】
https://lifehacking1919.hatenablog.jp/

## リーディング

現在、ここが足りないのだと認識している。
例えば、ヒアリングをするにしても、結局はそれを文字として受け止められて、初めて頭の中に意味付けが生成する。
つまり、ヒアリング能力を高めるにも、やはり英文を読解するのと同様な、文章解析技術が必要になるのである。

```plantuml
 @startuml
start

:ヒアリング;
if (アメリカ英語) then (true)
    :Youtube、Audibleで\n英語リスニング;
else (false)
    :ブリティッシュ英語の\n発音に慣れる;
    note left
        ブリティッシュ英語は
        ぼそぼそした発音が
        難しい
    end note
endif

:アウトプット;
partition アウトプット施策 {
    :山のSNSグループで\n英語投稿;
    :ブログを英語化;
    note right
        最終的には英語が
        自然と出るように
        なることが理想
    end note
}

:リーディング;
note right
    文章解析の能力が
    ヒアリングにも必要
end note

stop
@enduml
```
# 本題
ここからが本題である。
こういう内容をQiita上にわざわざ書いているのは、このような問題解決には、何らか学習補助をするツール開発が念頭にあるからだ。

## 課題感

ヒアリングの課題は、聞いた音声の中で分からない単語が、ほったらかしになってしまうことだ。
つまり先ほど、長文のリーディングでも書いたが、自分の脳内辞書に、音声、スペル、意味付けのセットとして、焼き付けなければならない。
この作業をお怠ると、いつまで経っても学習は進まないのである。

単語の抽出はどうすればいいだろうか？
ＭＰ３のオーディオファイル　→　文字化　→　自分の脳内辞書のクエリ　→　該当しない単語抽出　→　ネット辞書検索　→　学習用セット作成　→　ヒアリング
というような、流れが理想的である。

ここで一瞬、自分の脳内辞書のクエリと言うのがあるが、ここは流石に人間サイドのことなので、システム的には難しい。
ＭＰ３をヒアリングしながら、ここが分からない！という場所をマーキングしたり、自分との対話が必要だからだ。
仮に電子的にやるとすれば、TOEICの単語集など、何らかの辞書との対比で、重要単語を抽出できればいいかもしれない。
この辺りは、ＮＬＰのTFIDFを使って、文章の特徴語を抽出するようなことができれば、良いのかもしれない。

いずれにしろ、自分は一年間で独学で英語学習をネイティブ並みに高めると言う、無茶な目標を掲げている。
途中で息切れしないような、実現可能なシステムにする必要がある。

## 音声からのテキスト化

この部分は以下の方法で実現できる。
Googleドキュメントは、ときどき停止するので、お金をかけてテキスト化ソフトを買うのもありだ。

【参考】
https://www.notta.ai/blog/mp3-to-text

## キーボードの入力支援

ブログでもそうだが、主としてキーボードをたたいた瞬間に、単語や文章が英語に変換されて、これが直ぐに自分の脳内辞書とマッチングできたらどうだろうか？
こうなると日本語入力システムを考えるという、やや大がかりな仕掛けになってしまう。
例えば、音声入力でも良いかもしれない。逐次に翻訳されて、日本語もしくは英語がダブルで記載される。
これならば、ブログやチャットもどんどん楽になるだろう。

```plantuml
@startuml
left to right direction

actor 利用者

rectangle "英語学習支援システム" {
    usecase "MP3ファイルのテキスト化" as UC1
    usecase "重要単語の抽出" as UC2
    usecase "単語学習" as UC3
    usecase "キーボード入力支援" as UC4
    usecase "音声入力支援" as UC5
}

利用者 -- UC1
利用者 -- UC2
利用者 -- UC3
利用者 .> UC4 : 「extends」
利用者 .> UC5 : 「extends」

UC1 ..> UC2 : 「include」
UC2 ..> UC3 : 「include」

note left of UC1
  MP3ファイルから
  テキストを抽出
end note

note left of UC2
  TF-IDF等で重要単語を
  特定、TOEICとマッチング
end note

note left of UC3
  分からない単語を
  学習セットに追加
end note

note right of UC4
  キーボード入力時に
  英語変換、辞書マッチング
end note

note right of UC5
  音声入力による
  英日ダブル表記
end note
@enduml
```