こんにちは。

英語学習、してますか?

シャドーイング、リピーティング、デクテーション、多読、多聴、単語、文法、瞬間英作文、長文読解、フリーカンバセーション、、、やるべきことはたくさんありますよね!

今回は自分の学習用に「リピーティング・シャドーイング専用アプリ」を作ってみました。

結論から言うと、技術的には十分に成立します

この記事では、実際に手を動かしてわかった技術面・コスト面・体験面のリアルな話をまとめます。

作ったもの

英文リピーティング練習アプリのMVPです。

大量の英文(スプレッドシートから一括インポート)を、1画面1問で順に表示。タップでAI音声が流れ、口に出してリピート。ボタンを押すと英文テキストと日本語訳が出る、というシンプルな構成です。

単語学習アプリのUIを、例文(1文まるごと)用に再構成したイメージです。

機能一覧

練習機能

機能

説明

1画面1問の表示

タップ or ボタンで音声再生

英文と日本語訳の切り替え

ボタン1発で切替

声の選択

5種類(男性2 / 女性2 / 中性1)

再生スピード

0.75x / 1.0x / 1.25x

前の問題に戻る

聞き逃しても即復習

問題一覧からジャンプ

好きな問題から開始

10問ごとのセット自動分割

達成するとチェックマーク

完了画面

「Set 何回 達成!」で達成感演出

進捗の自動保存

デッキごとにlocalStorageへ

「わかる/わからない」

回答でそのまま次の問題へ

管理機能

機能

説明

スプレッドシートから一括インポート

TSV/パイプ/プレーン文いずれもOK

行番号列の自動スキップ

Google スプレッドシート形式そのまま対応

複数デッキ管理

教材ごと・用途ごとに分割可

音声キャッシュ

生成済み音声を Postgres に保存

技術構成

フロントエンド: Next.js 15 (App Router) + React 19 + Tailwind CSS

バックエンド: Next.js API Routes

DB: Neon (サーバレス Postgres) + Drizzle ORM

AI(音声合成): OpenAI gpt-4o-mini-tts

ホスティング: Vercel

使っているAI:OpenAI のみ

音声合成は OpenAI の gpt-4o-mini-tts 一本です。

開発はClaude Codeでやってたので最初「Claude(Anthropic)で作ろう」思ったのですが、Anthropic には音声APIがないようです(2026年4月現在)。テキスト生成専用です。リピーティング練習は発音品質が体験の9割なので、ここはOpenAI一択でした。

gpt-4o-mini-tts の強みは instructions パラメータで話し方を自然言語で指定できる点です。今回はこう入れています:

"Read as a clear, natural American English speaker at a slightly measured pace suitable for a language-learning listener. Neutral, friendly tone."

結果的にGoogle翻訳と遜色ない、むしろそれ以上にナチュラルな音声が出たように感じます。

開発中に困ったこと

1. 再生スピードを「どこで」変えるか問題

「ネイティブスピードで聞きたい」「ゆっくり聞き取りたい」の両方のニーズがあります。対応は2通り:

  • A: 生成時に instructions でスピード指定 → 別音声として再生成、別途API課金

  • B: ブラウザの audio.playbackRate で再生時に変速 → 無料、即時、キャッシュそのまま使える

迷わず B を採用。0.75x / 1.0x / 1.25x のどれを選んでも、同じキャッシュ済み音声を使い回せます。音質の違和感もほぼ無し。

教訓: ブラウザ側でやれることはブラウザ側でやる。同じ理屈で「英文のハイライト」「進捗管理」もクライアント側に寄せて、サーバー負荷とAPIコールを最小化しました。

2. 同じ英文を何度も生成してしまう問題

リピーティングは本質的に同じ英文を何十回も聞き直すアプリです。毎回TTS APIを叩いていたらコストも体感速度も終わっています。

対策として、生成した音声を Postgres にキャッシュする仕組みを入れました。

key = sha256(model + voice + text)

1回生成したらBase64でDBに保存。同じ英文・同じ声・同じモデルなら2回目以降はDBから即取り出し。つまり:

  • 同じ英文の2回目以降は 無料&即時再生

  • 声を変えると別キャッシュ(それぞれ初回のみ課金)

  • 英文が1文字でも違えば別キャッシュ

これが後述するコスト感の肝です。

コスト面の問題

OpenAI gpt-4o-mini-tts の料金は大雑把に生成音声1分あたり約 $0.015(約2.3円)。

1文あたりのコスト

典型的な英文(15〜20語、再生時間約5秒)の場合:

$0.015×5秒60秒≈$0.00125≈0.2円$0.015×60秒5秒​≈$0.00125≈0.2円

デッキ1つ(100文)あたり

初回生成

2回目以降

100文デッキ

約20円

0円(DBキャッシュヒット)

これがキャッシュ設計の威力。デッキを1回作れば、何人が何回聞いても追加料金ゼロです。

100人の社員に配布した場合

項目

コスト

社内向けデッキ10個(合計1,000文)を事前生成

約200円(一回だけ)

100人が毎日2回練習しても

0円(全員キャッシュヒット)

Vercel + Neon Free Tier

$0

既存の英語学習アプリとの比較(100人 × 1ヶ月)

サービス

月額

mikan(ULTRAプラン)

¥120,000

iKnow!

¥138,000

スタディサプリ ENGLISH

¥272,800

ChatGPT Plus

¥300,000

本アプリ(自前)

約 ¥200(初回のみ)+ 月¥0

桁が違います。もし100人で使うならという前提ですが、自作アプリはありですね!
(まぁ僕は1人で勉強してるので関係ないですが、、、笑)

結局、既存アプリでよくない?

わざわざ作っておいて何ですが、個人が英語を勉強するなら既存の単語アプリでだいたい十分です。

他のアプリはコンテンツの質・ゲーミフィケーション・継続設計のノウハウが積み上がっていて、たかだか月数百円。個人が英単語や例文を覚えたいだけなら、迷わずそっちを使うべき。

……と、ここまでは想定どおりの結論なんですが、今回実装してみて気づいたのは、「自分の教材」を流し込める学習アプリは意外と無いということでした。

じゃあ何のために作ったのか

自作する意味があるのは、以下のようなケースです:

1. 既製アプリに無い素材で練習したい場合

今回のトリガーがまさにこれで、Versant 対策の例文集でリピーティング練習したい、という要望でした。

既存アプリも用意されたコンテンツで学ぶアプリで、自分の教材(Versant、TOEIC公式問題集、業務資料、書籍の例文集)を流し込むのは基本できません。

本アプリはスプレッドシートからコピペで一括取り込みできるので、手元にある教材がそのまま練習素材になります。

2. 組織の業務英語に特化したい場合

たとえば:

  • カスタマーサポート向け: よく使う応対フレーズ100選

  • 営業向け: 海外顧客対応の決まり文句

  • エンジニア向け: コードレビュー・ミーティングの英語表現

  • 接客業向け: 訪日観光客対応フレーズ

社内Wikiや研修資料から英文をコピペすれば、その日から全社員がリピーティング練習できます。

3. コストを組織レベルで最適化したい場合

100人に mikan を配ると月 ¥120,000。本アプリなら初回約¥200、以降ほぼ¥0

人数が多いほど効いてきます。1,000人・5,000人規模になると、無視できない金額差です。

4. UXを学習フローに合わせたい場合

本アプリには、リピーティング練習に特化したUXを組み込んでいます:

  • 10問ごとのセット自動分割(達成感の演出)

  • セット完了時の「達成!」画面

  • 任意の問題からの開始

  • わかる/わからないの2択回答

  • 声・スピードの細かい切り替え

これらは汎用アプリには無い、業務や教材に合わせて作り込めるポイントです。

5. まだ AI アプリに触れていない人にもリーチしたい場合

英語学習層にはITリテラシーのバラつきがあります。「ChatGPT で練習してね」と渡しても、まだ使いこなせない人はたくさんいます。

AIを裏に隠した専用アプリを用意することで、AI慣れしていない人にも届けられます。

技術的に証明できたこと

  • 高品質なAI英語音声での学習アプリは十分成立する — Google翻訳と遜色ないどころか、それ以上に自然

  • TTSキャッシュ設計で実質コストをほぼゼロにできる — 1回生成すれば全員で再利用可能

  • Next.js + Neon + Vercel で組織配布レベルのアプリが個人開発者レベルで作れる — 特別なインフラ不要

  • スプレッドシートから素材を流し込める設計は強い — 学習コンテンツ用意のハードルが劇的に下がる

  • 声・スピードの切り替えはクライアント側で完結する — サーバー再生成は不要

まとめ

AI英語学習アプリは、個人向けは既存サービスに勝てないのが現実です。無理に作らずを使うのが正解。

一方で、「組織で使う」「既製品に無い教材を使う」「独自のUXが欲しい」のどれかがあるなら、自前で作る意味は十分にあります。しかもコストは桁違いに安い。

「社員に業界特有の英語フレーズを覚えてほしい」「自社の研修教材をリピーティング練習できる形にしたい」みたいなニーズがある企業にとって、月¥200で100人に配れるこの方式は、現実的に十分アリな選択肢だと思います。

アプリ開発の無料相談はこちら