英語の瞬発力と表現力を鍛えるためのAI活用型トレーニングアプリです。
- 日本語の文章を瞬時に英語に変換するトレーニング
- AIによる柔軟な正誤判定(複数の正解パターンを許容)
- 詳細なフィードバックと質問機能
- 🔊 模範回答の英語読み上げ機能
- トピックに沿って約1分間英語で話すトレーニング
- 文法、表現、構成の3観点からのAI添削
- WPM(発話速度)とCEFRレベルの判定
- 🔊 模範回答の英語読み上げ機能
- 苦手な文法や間違えた問題を自動抽出
- 効率的な復習システム
- 🔊 模範回答の英語読み上げ機能
- Pocket TTSによる高品質な英語音声合成
- 模範回答の発音を確認可能
- 複数のボイスから選択可能
- CPUで高速に動作(GPUなしでも利用可能)
- Python 3.11以上
- LM Studio(ローカルLLMサーバー)
- ffmpeg(音声ファイル変換用)
本アプリはQwen3系モデルに最適化されています。以下のモデルを推奨します:
| モデル名 | VRAM目安 | 特徴 |
|---|---|---|
| qwen3-8b | 8GB | 軽量で高速 |
| qwen3-vl-8b-instruct | 8GB | マルチモーダル対応 |
| qwen3-14b | 12GB | バランス型 |
| qwen3-30b-a3b | 16GB | 高精度(MoE) |
以下のモデルは応答形式の違いにより動作しない可能性があります:
- Gemini系モデル
- Claude系モデル(ローカル非対応)
- GPT系モデル(ローカル非対応)
Qwen3はデフォルトで「Thinking Mode」が有効になっており、応答前に<think>...</think>タグ内で思考プロセスを出力します。本アプリではプロンプトに/no_thinkを追加することで、この機能を無効化し、JSON応答を正しく取得できるようにしています。
uvは高速なPythonパッケージマネージャーです。
curl -LsSf https://astral.sh/uv/install.sh | shcd speakforge
uv sync初回起動時に自動でダウンロードされますが、手動でダウンロードする場合:
# modelsディレクトリにggml形式のモデルを配置
# 推奨: base または small モデルモデルはwhisper.cppのggml形式を使用します。
- LM Studioを起動
- 任意のモデルをロード(日本語対応推奨)
- Developer タブでサーバーを起動(デフォルト: localhost:1234)
uv run speakforgeブラウザで http://localhost:7860 を開いてください。
Pocket TTSを使用した英語読み上げ機能により、模範回答の発音を確認できます。
- 口頭英作文: 模範回答(英語)
- 独り言英会話: AIが生成した模範回答(英語)
- スマート復習: 模範回答(英語)
| ボイス名 | 特徴 |
|---|---|
| alba | 女性、落ち着いた声(デフォルト) |
| marius | 男性 |
| javert | 男性 |
| jean | 男性 |
| fantine | 女性 |
| cosette | 女性 |
| eponine | 女性 |
| azelma | 女性 |
.envファイルで以下の設定が可能です:
TTS_ENABLED=true # TTS機能の有効/無効
TTS_VOICE=alba # 使用するボイス
TTS_TEMPERATURE=0.7 # 音声生成の温度
- 初回起動時にPocket TTSモデルが自動ダウンロードされます(約100MB)
- CPUで動作するため、GPUは不要です
- Apple Silicon(M1/M2/M3/M4)で特に高速に動作します
data/sentences/ および data/monologue_topics/ 内のJSONファイルを編集することで、
独自の例文やトピックを追加できます。
{
"category": "カテゴリ名",
"sentences": [
{
"id": "unique_id",
"japanese": "日本語の文章",
"english_examples": ["英語の模範回答1", "英語の模範回答2"],
"difficulty": 1,
"tags": ["文法タグ", "場面タグ"]
}
]
}{
"category": "カテゴリ名",
"topics": [
{
"id": "unique_id",
"title": "トピックタイトル",
"description": "説明",
"hints": ["ヒント1", "ヒント2"],
"difficulty": 1
}
]
}.envファイルで設定可能な項目:
LM_STUDIO_BASE_URL=http://localhost:1234/v1
LM_STUDIO_MODEL=qwen3-vl-8b-instruct
WHISPER_MODEL=base
WHISPER_LANGUAGE=en
TTS_ENABLED=true
TTS_VOICE=alba
TTS_TEMPERATURE=0.7
GRADIO_SERVER_PORT=7860
GRADIO_SHARE=false
- Gradio - WebUIフレームワーク
- Whisper / whisper.cpp - 音声認識
- Pocket TTS - 英語音声合成
- LM Studio - ローカルLLMサーバー
- Qwen3 - 推奨LLMモデル
MIT License
英語学習において発音確認が効果的な以下の箇所を読み上げ対象としました:
- 口頭英作文の模範回答 - 正しい英文の発音を学ぶ
- 独り言英会話の模範回答 - 自然な英語表現の発音を学ぶ
- 復習問題の模範回答 - 間違えた問題の正しい発音を確認
- シングルトンパターン - TTSモデルのロードは重い処理のため、一度だけロードして再利用
- 遅延初期化 - アプリ起動時にTTSが不要な場合はロードをスキップ可能
- State管理 - Gradioのgr.Stateを使用して、現在の模範回答を保持
- 自動再生 -
autoplay=Trueで生成された音声を即座に再生
- 結果表示後に「🔊 模範回答を読み上げ」ボタンをクリックするだけで発音を確認
- 設定タブでボイスの変更とテストが可能
- TTS機能は
.envで無効化可能(軽量動作が必要な場合)