月額3万円「ChatGPT o1 pro mode」でTOEICリスニングアプリをプロが作ってみた結果
こんにちは、工学博士のきたたくです。
最近、月額3万円の「ChatGPT o1 pro mode」を課金したのをきっかけに、「どうせなら何か形にしてみよう」と思い立ちました。せっかくの高性能AIを活用するなら、実用性のあるものを作りたい――そうしてたどり着いたのが、TOEICリスニングアプリの開発です。この記事では、アプリ完成までのプロセスと、開発を通して得た知見をご紹介します。
アプリ開発のきっかけ
実は私、英語が苦手なのにアメリカのMBAプログラムに入学してしまいました。そしてなんと、TOEICの点数条件(700点)があり、これをクリアしないと卒業できません!
※入学要項にも記載がありましたが…
急ぎTOEIC対策を始めましたが、市販のアプリはどれも「英語力を伸ばす」方向(至極真っ当なことは言うまでもない)に焦点が当たっており、「とにかくTOEICの点数を上げる」という私の軽薄な目的に合うものが見つかりませんでした。ないなら自分で作るしかない! そう思い、手を動かし始めたのが今回のアプリ開発です。
開発したアプリ:「ペンギンと学ぶTOEICリスニングPart1」
このアプリは、自分用に特化した仕様で、シンプルにひたすらTOEIC類似問題を解けることを目指しました。無料で200問のリスニング問題が収録されており、最低限の解説も付けています。現在、Google Playで公開中です(iPhone版はAppleの審査中…しばしお待ちを)。
アプリ開発に使用したツールと流れ
今回は、以下の環境と手順でアプリを開発しました。
使用ツール
ChatGPT o1 pro mode: メインのアイデア生成とコンテンツ作成、プログラミングに利用。
Visual Studio Code + GitHub Copilot: 開発環境。
Unity: アプリの構築とデザイン。
Python: JSONデータの生成と音声ファイル作成。
画像生成AI: 問題に関連するイメージを作成。
LevelPlay: 広告表示の実装。
開発手順
STEP1:TOEIC風リスニング問題の生成
最初に、ChatGPTを活用してTOEIC風のリスニング問題を作成しました。その際、プログラムで扱いやすいように、データをJSON形式で出力しています。
JSON(ジェイソン)は、コンピュータ同士がデータをやりとりするための「ルール」の一つです。簡単に言うと、「データを整理して書くための方法」です。
たとえば、友達にゲームのキャラクターの情報を伝えるとします。
キャラクターの名前は「ドラゴン」
HP(体力)は「100」
MP(魔法ポイント)は「50」
これをJSON形式で書くとこうなります
{
"キャラクター名": "ドラゴン",
"HP": 100,
"MP": 50
}
コンピュータは、JSONを見ると「これが名前で、これが値だな」とすぐに理解できます。
リスニング問題の作成プロセス
TOEIC風のリスニング問題を作るため、ChatGPTsを作成(ChatGPTモデルをカスタマイズして特化型のAIを作成する仕組み)。この特化型のGPTモデルを利用し、問題データを効率よく生成。そして、生成されたデータをJSON形式で大量に出力させ、アプリに組み込めるよう準備を進めました。JSON形式にすることで、問題や選択肢、解説などをスムーズに管理・統合できるようにしています。
以下は実際に生成したJSONの一例です。
{
"description": "A man is sitting on a bench in a park, reading a newspaper.",
"choices": [
"The man is swimming in a pool.",
"The man is sitting on a bench.",
"The man is riding a bicycle.",
"The man is cooking in a kitchen."
],
"answer": 2,
"explanation": {
"text": "この問題では、男性が公園のベンチで新聞を読んでいる場面が描かれています。選択肢Bが正解です。",
"vocabulary": [
{
"key": "bench",
"value": {
"meaning": "座るための長い椅子。",
"pronunciation": "ベンチ"
}
},
{
"key": "newspaper",
"value": {
"meaning": "ニュースを印刷した紙媒体。",
"pronunciation": "ニュースペーパー"
}
}
]
}
}
Step2:画像生成
JSONデータをもとに、画像生成AIで視覚的な要素を制作。
実際のTOEICの問題は白黒写真のため、プロンプトで「Mono Tone」を指定しました。
Step3:音声ファイルの生成
リスニング問題を成立させるために、Pythonを使って問題の音声ファイルを作成しました。当初は、アプリ内で合成音声(テキストから音声を生成する機能)を直接動作させることを検討しましたが、AndroidとiOSで安定して動作する適切なライブラリが見つからなかったため、音声ファイルをあらかじめ生成する方法を採用しました。
音声ファイル生成には以下のPythonプログラムを使用しました。このプログラムは「ChatGPT o1 pro mode」に依頼して作成したもので、一度の試行で問題なく動作するコードが生成されました。偉い!
import json
from gtts import gTTS
import os
# JSONファイル名
json_filename = ''
# 出力先ディレクトリ作成
output_dir = ''
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# JSON読み込み
with open(json_filename, 'r', encoding='utf-8') as f:
data = json.load(f)
# problems配列を取得
problems = data.get('problems', [])
# インデックスからA,B,C,Dへの対応マッピング
choice_labels = ['A', 'B', 'C', 'D']
for i, problem in enumerate(problems):
# 問題番号 i+1
question_number = i + 1
choices = problem.get('choices', [])
for j, choice_text in enumerate(choices):
# 0 -> A, 1 -> B, 2 -> C, 3 -> D に対応
choice_label = choice_labels[j]
# ファイル名を作成
filename = f'Question_{question_number}_Choice_{choice_label}.mp3'
filepath = os.path.join(output_dir, filename)
# テキストから音声生成
tts = gTTS(text=choice_text, lang='en')
tts.save(filepath)
print(f'{filepath} を保存しました')
Step4.Unityを使ったアプリ開発
TOEICリスニングアプリの仕上げとして、ゲームエンジンであるUnityを使い、問題データ・画像・音声を組み込んでアプリとして形にしました。
Unityとは?
Unityは、ゲームやアプリの開発で広く使われているゲームエンジンです。もう1つの代表的なゲームエンジンとしてUnreal Engineがあります。この2つは業界の「二大巨頭」として知られています。ちなみに、Unreal Engineの主要株主であるテンセントが米国から中国軍の関連企業に指定されたことが最近話題になりましたね。
Unityには、MusuAIという生成AI機能も搭載されていますが、今回は使用していません。開発においては、Unity上のプログラムをChatGPTに作成してもらい、一発で動作するコードが生成されました。ここはChatGPTの大活躍ポイントです!
Unity開発で手動が必要だった部分
とはいえ、完全に自動化できたわけではなく、人の手で調整が必要な部分もありました。以下のような作業は、現在の技術ではまだAI任せにできませんでした。
UI(ユーザーインターフェース)の作成・配置
ボタンや画面の配置を整える作業は、デザインや使いやすさを考慮するため、手動での調整が必要でした。
Unity上の細かい設定
ゲームの挙動や画面遷移の設定などはGUI(グラフィカルユーザーインターフェース)で操作しました。将来的には、こういったGUIの操作もAIが自動化してくれるでしょう。既にブラウザを操作するAIが出ていますし。
デバッグ(問題の修正)
ChatGPTが生成したコードはほぼ動作しましたが、いくつか修正が必要でした。例えば、「レベル1の最後の問題をクリアした後に、レベル2の問題に進む処理」が抜けていました。これは、プロンプトでの要件指示漏れが原因です。
アニメーションの調整
正解・不正解のアニメーションもChatGPTにプログラムを生成してもらいましたが、初回の出力ではアニメーションがアプリの雰囲気に合わない、やや下品な仕上がりだったため、人の手で調整しました。
このように、ChatGPTを活用することで大幅な効率化が実現しましたが、デザインや細かい挙動の調整にはまだ人の手が必要な場面がありました。今後、こうした部分もAIが自動で対応できるようになれば、さらに開発が簡単になるでしょう!
Step5:広告・IAPの導入
アプリ内広告を導入するために、Unity LevelPlay(ユニティ レベルプレイ)を利用しました。LevelPlayは、Unityが提供する広告収益化プラットフォームで、アプリに広告を組み込む仕組みを簡単に実現してくれます。
Step6:Google Playで公開
Android向けにビルドして公開。審査はスムーズに通過しました。
Step7:AppStoreで公開…予定
Appleの審査は難航中です。アプリ開発において最大の難関がAppleの審査です。
3日でアプリ完成!? 開発を終えての感想
1日数時間の作業とはいえ、わずか3日でアプリを完成させられたのは、自分でも驚きでした。特に、ChatGPT o1 pro modeを活用することで、アイデアの具体化やプログラミングが驚くほど効率的に進みました。
このアプリを「ChatGPTにすべて投げる感覚」で外注した場合を想像してみると、要件が不明瞭で、問題数も多いことから、かなりのコストと時間がかかるでしょう。私自身、かつてアプリ開発会社を創業・売却した経験がありますが、現在の規定や業界事情を考えると、受託開発でAIを活用している企業はまだ少ないと思われます。特に、プログラムの資産流出懸念などの理由から導入が進んでいないのが現状です。
仮に今回のアプリを外注した場合を試算すると、開発期間は2〜4ヶ月、費用は200〜400万円程度はかかるのではないかと推測されます。今回の取り組みで感じたのは、AIの力を適切に活用すれば、自分でアプリを作る方が圧倒的に効率的で、コストを抑えられるという点です。
今回のプロジェクトを通じて、AIを活用した自己開発の可能性を大いに実感しました。
未来のアプリ開発:個人が主役の時代へ
これからの時代、アプリ開発はこれまで以上に個人レベルで挑戦しやすくなるでしょう。今までは「こんなアプリを作りたい!」と思っても、自分では作れず、外注しようとすると数百万円もの開発費用がネックとなり、多くの人が夢を断念していました。さらに、完成後には「保守費」という名目で定期的な費用がかかることも一般的です。
しかし、AIを活用したアプリ開発の進化により、こうした状況は大きく変わりつつあります。今では、プログラミングの基礎とAIツールを活用することで、アイデアを形にする力を個人が持てる時代が始まっています。
プログラミング知識とAIで可能性を広げる
AIの力を活かすためには、最低限のプログラミング知識が重要です。これを学ぶことで、AIをツールとして活用し、自分のアイデアを効率的に形にすることが可能になります。プログラミングを学ぶことは決して無駄にはならず、むしろAI時代の大きな武器となります。
「プログラミングなんて難しそう」と感じる方も多いかもしれませんが、初歩的なスキルでも十分に成果を出せるのが現代のAI活用の魅力です。ぜひ、自分のアイデアを実現する第一歩として、挑戦してみてください!
サポートリソースも活用を!
プログラミングやAIの使い方については、私の著書やYouTubeチャンネルで詳しく紹介しています。初心者の方でも理解しやすい内容となっていますので、ぜひ参考にしてみてください。
未来のアプリ開発に向けて、一歩踏み出すお手伝いができれば幸いです!
著書
・知識ゼロからのプログラミング学習術
・知識ゼロからの生成AIを活用した不労所得マシンの作り方
・タスク管理の結論
ちなみに、ChatGPT o1 promodeのコスパを検証した動画もだしています。よかったらご覧ください。