ス△△ド△ーニング風の囲碁英語教材を AI フル活用で作ってみました

Twitch などで英語の囲碁配信をしようと考えてましてそのための用語集、フレーズ集などを AI を使ってつくっていたのです。
そこで、AI って英語のテキスト読み上げもできるんだから、本格的な教材も作れちゃうんじゃない? と思い立って作ったのがこれです。

まず、作っていたフレーズ集を次のようなテキストにしました。

This fight will decide the game.
この戦いが勝負を分けます。
This fight will decide the game.

Whether this group lives or dies is the key.
このグループが生きるか死ぬかがポイントです。
Whether this group lives or dies is the key.

The liberties are tight.
ダメが詰まっています。
The liberties are tight.

I’ll play here.
ここに打ちます。
I’ll play here.

ここで AI に相談でしたらこんなプログラムを作ってくれました。

英語→日本語→英語 の順で読み上げ、行間に無音を挿入し、1本の MP3 に自動連結する「プロ仕様」Pythonスクリプトです。

  • OpenAI TTS(gpt-4o-mini-tts)を使用

  • 英文は英語ボイス(alloy)、日本語文は日本語向けボイス(例:verse)に自動切替

  • 失敗時のリトライ&レート制御、長文の自動分割、進捗ログ付き

  • 入力はプレーンテキスト(1行=1フレーズ)。あなたが作成した go_streaming_audio_script.txt にそのまま対応

これができたところで

必要なら、章ごとにファイル分割chapter_1.mp3 など)や、
BGMの下敷き(pydubで-18 LUFS相当のBGM合成)も追加実装できます。

と提案されたので、じゃ、BGMの下敷きをお願い、と依頼したところ・・・

了解です!
先ほどの「英→日→英 リピート教材 MP3 生成スクリプト」に BGMの下敷き(ループ/音量調整/自動ダッキング) を実装した“プロ仕様”版をお渡しします。

  • BGMは自動で全長にループ&トリム

  • ナレーションが鳴っている間は ダッキング(BGMを指定dBだけ自動減衰)

  • 無音区間(フレーズ間の休符)では少し持ち上げる自然な聞こえ

  • イントロ/アウトロだけBGMを少し大きめに設定可能

  • パラメータはCLIで可変

依存: requests, pydub, ffmpeg(pydubが内部で使用)

これでできあがったのがこの Python コードです。ここまで読んでくださったあなたに特別にお渡ししてしまいましょう。zipファイルを展開すると Python コードがでてきます。
利用には python についての知識と環境は必要ですけど、これを使えば同様の英語教材が量産できちゃいます。

make_speedlearning_mp3_with_bgm.zip

目次

▶️ 使い方

1) 依存を用意

pip install requests pydub
# ffmpeg を未導入なら
# macOS: brew install ffmpeg
# Ubuntu: sudo apt-get install -y ffmpeg

2) APIキー

export OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

3) 実行例

python make_speedlearning_mp3_with_bgm.py \
--input go_streaming_audio_script.txt \
--output go_stream_speedlearning_bgm.mp3 \
--en-voice alloy --ja-voice verse \
--gap-ms 800 --section-gap-ms 1500 --merge-triplets \
--bgm path/to/your_bgm.mp3 --bgm-gain-db -14 \
--duck-db -12 --raise-on-silence-db 2 \
--duck-threshold-dbfs -35 --chunk-ms 100 \
--intro-ms 2000 --outro-ms 2000 --intro-gain-db 3 --outro-gain-db 3

パラメータの目安

  • --bgm-gain-db -14 … 全体のBGMをやや小さめに

  • --duck-db -12 … ナレーション時に-12dB程度まで下げる(聞き取りやすさUP)

  • --raise-on-silence-db 2 … 無音区間でBGMを+2dB(間を持たせる)

  • --duck-threshold-dbfs -35 … この音量以上で「発声あり」とみなす閾値

  • --chunk-ms 100 … 100ms単位で判定(小さすぎるとパンピング感が増える)

あと、BGM音源が必要なので、Suno でインストゥルメンタル、英語教材のBGMでリラックスできる曲みたいなことを指示して作曲してもらいました。

最終的にできあがった音源を stand.fm にアップロード。事前に設定済なので自動的に spotify、amazon audible、apple podcast、YouTube にも配信されました。

#image_title

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

囲碁オンライン対局場開発/つぶや棋譜/クラファン13路盤プロ選抜トーナメント企画で第32回日本囲碁ジャーナリストクラブ賞/全日本囲碁協会理事/株式会社きっずファイブ代表取締役/京都大学理学部(宇宙物理)卒

コメント

コメントする

目次