教科書作成の流れ
以下は標準的な流れですが、個別のタスクを独立に実行しても問題ありません。
- オンライン講義の準備を行う。
・ 講義スライド
ppt2md.pyとpandoc.pyにより、Markdown, MS-Wordファイルに変換して使用します
> python pptx2md_with_figures.py -i pptxファイル名
-o Markdownファイル名
画像ファイルは、デフォルトで
images ディレクトリに保存されます
このMarkdownファイルは、make_textbook5.pyで教科書を作る際に、読み上げファイルと一緒に読み込ませることができます
> python pandoc.py --convert docx --infile Markdownファイル名 --template template_text.docx
・ 講義原稿
- Zoomなどでオンライン講義を録画・録音する
- 録画ファイルを音声ファイルに変換する
(文字起こしサービスでは録画ファイルを受け付けるものも多いですが、ファイルサイズ削減のため音声ファイルに変換することを推奨します)
mp4からmp3ファイルの作成
> python to_audio.py mp4ファイル名
- 音声ファイルから文字起こし
・ python と whisper (local版)
をインストールし、transcribe_smple.pyを使う
>python transcribe_smple.py 音声ファイル名
--model large
(--model smallでも、生成AIで修正が入るので、大丈夫かもしれません。
--langが指定していない場合は自動判定しますが、間違える可能性が高いです)
日本語音声を指定:
>python transcribe_smple.py 音声ファイル名
--model large --lang ja
英語音声の場合:
>python transcribe_smple.py 音声ファイル名
--model large --lang en
・ OpenAI Whisper
・ Google Speech-to-text
・ その他文字起こしサービス・ソフトウェア
- 文字起こしファイルから生成AIで教科書用テキストとスライドをMarkdown形式で出力
生成AIのプロンプト例 (日本語テキストを出力):
あなたは半導体工学を専門とする大学教授です。
以下の「文字起こしテキスト」には、音声認識による誤字・誤変換が含まれています。
このテキストを、半導体工学の講義として論理的かつ正確な内容になるように
全面的に修正・校正してください。
その上で、以下の2種類のMarkdownファイルを生成してください。
**[要件]**
1. **教科書用ファイル**:
講義内容を、教科書の章のように詳細かつ体系的に記述する。
見出し、箇条書き、太字などを適切に使い、可読性を高める。
専門用語は正確に記述し、必要に応じて簡単な解説を加える。
丁寧語(です・ます調)で記述する。
2. **スライド用ファイル**:
上記の教科書用ファイルに対応したプレゼンテーションスライドの形式で作成する。
各スライドは要点をまとめた箇条書きを中心とする。
**講義で言及されている数式や、関連する重要な数式を積極的に
`LaTeX` 形式で記述する。
**スライドの区切りとして 空行+`---`+空行 を使用する。
**[出力形式]**
生成する2つのファイルの内容は、以下のカスタム区切り文字で明確に分けて出力してください。
[TEXTBOOK_START]
(ここに教科書用ファイルの内容を記述)
[TEXTBOOK_END]
[SLIDES_START]
(ここにスライド用ファイルの内容を記述)
[SLIDES_END]
--
# 文字起こしテキスト
{lecture_text} <=
文字起こしテキストを入れる
生成AIのプロンプト例 (英語テキストを出力):
あなたは半導体工学を専門とする米国大学教授です。
以下の「文字起こしテキスト」には、音声認識による誤字・誤変換が含まれています。
このテキストを、半導体工学の米国英語の講義として論理的かつ正確な内容になるように
全面的に修正・校正してください。
その上で、以下の2種類のMarkdownファイルを生成してください。
**[要件]**
1. **教科書用ファイル**:
講義内容を、教科書の章のように詳細かつ体系的に記述する。
見出し、箇条書き、太字などを適切に使い、可読性を高める。
専門用語は正確に記述し、必要に応じて簡単な解説を加える。
丁寧語(です・ます調)で記述する。
2. **スライド用ファイル**:
上記の教科書用ファイルに対応したプレゼンテーションスライドの形式で作成する。
各スライドは要点をまとめた箇条書きを中心とする。
**講義で言及されている数式や、関連する重要な数式を積極的に
`LaTeX` 形式で記述する。
**スライドの区切りとして 空行+`---`+空行
を使用する。
**[出力形式]**
生成する2つのファイルの内容は、以下のカスタム区切り文字で明確に分けて出力してください。
[TEXTBOOK_START]
(ここに教科書用ファイルの内容を記述)
[TEXTBOOK_END]
[SLIDES_START]
(ここにスライド用ファイルの内容を記述)
[SLIDES_END]
--
# 文字起こしテキスト
{lecture_text} <=
文字起こしテキストを入れる
上のようなプロンプトでmake_textbook5.pyで修正を実行する例
(Gemini 2.5Flashがデフォルト):
>python make_textbook5.py -i
文字起こしテキストファイル名 -t
テキストMarkdownファイル名 -s スライドMarkdownファイル名
講義スライドのMarkdownファイルを読み込ませることもできます
(Gemini 2.5Flashがデフォルト):
>python make_textbook5.py -i
文字起こしテキストファイル名 -im
講義スライドMarkdownファイル名 -t
テキストMarkdownファイル名 -s スライドMarkdownファイル名
- pandoc
を使い、Markdownファイルから MS-Word、MS-PowerPoint ファイルに変換
pandocを使った変換例
> pandoc -t docx テキストMarkdownファイル名 -o 出力Wordファイル名 --reference-doc Wordテンプレートファイル名
pandoc.pyを使った変換例
pandocでtemplateファイルを作成してあるものとします。
> python pandoc.py --convert docx --infile テキストMarkdownファイル名 --template テキストtemplateファイル名
> python pandoc.py --convert pptx --infile スライドMarkdownファイル名 --template スライドtemplateファイル名
- MS-Wordファイルを修正しながら、講義スライドをMS-Wordに変換したファイル、pandocで作成したスライドファイルを入れ込む
- 必要があれば、MarkdownファイルからHTMLファイルを作成
> python pandoc.py --convert html --infile
Markdownファイル名 --mathml
注: pandoc単体でもHTMLファイルに変換できますが、数式の表示がうまくいかないことがあることと、
完全なHTMLではなく、<body>タグ要素だけの出力のため、pandoc.pyで完全なHTMLに治しています。
その際、<head>でMathJaxを読み込むようにしていますが、--mathmlを指定した場合は不要なので削除きます。
講義用生成AI Google NotebookLM の利用
履修学生の自主的な予習・復習には NotebookLM
が利用できます
- NotebookLM から利用開始 (Googleアカウントで利用を始められます)
- 講義資料を準備
・ 講義スライド (PDFに変換)
・ 録音ファイル あるいは 文字起こしファイル
(ファイルはテキストで張り付けるか、PDFに変換)
NotebookLMの音声認識はレベルが高いので、録音ファイルを学習させることで十分です。
精度を上げた録音を認識させる場合は、文字起こしファイルを修正して学習させます
・ 教科書ファイル (校正済み、PDFに変換)
・ 必要であれば: スライドファイル (校正済み、PDFに変換)
・ その他、関連資料
(信頼性の低い資料を追加すると、ハルシネーションの原因になります)
- 「ノートブックを新規作成」
で2.のファイルを学習させる
- Studioで 「音声解説」、「動画解説」 を作成
必要に応じて、音声・動画ファイルをダウンロードし、講義Webページから再生できるようにする
- 「共有」 メニュー 「ノートブックへのアクセス」
から共有できます。
ダイアログ下部の「リンクをコピー」でリンクを取得できます。
アクセス範囲:
・ リンクを知っている全員
上記のリンクを配布すればアクセスできます。
・ 制限付き
gmailアドレスをグループに追加できます
(東京科学大の isct アカウントは使えません)。
- 「チャット」より、プロンプトを投入できます。
注意:
基本的に、3.で学習させた資料からしか回答は得られません。
学習効果を上げるため、講義資料以外の関連資料を学習させることを推奨しますが、
不正確な内容を学習させるとハルシネーションの原因になります
関連プログラム
教科書作成関連プログラム
参考