add_notes_voice_pptx プログラム仕様
概要: PowerPointプレゼンテーションに音声ノートを追加し、自動再生リンクを設定するスクリプト。 詳細説明:
このスクリプトは、Windows環境においてPowerPoint (win32com.client) とtkttsライブラリを 利用し、PPTXファイルのノートに記載されたテキストから音声ファイルを生成し、その音声を プレゼンテーション内の各スライドに自動再生されるメディアオブジェクトとしてリンクします。 また、外部の発言テキストファイルからノート内容をPPTXに書き込む機能も提供します。 サポートされるTTSエンジンには、pyttsx3, VOICEVOX, AquesTalkPlayer, OpenAIなどがあります。
関連リンク: add_notes_voice_pptx.py 技術ドキュメント
- ai.add_notes_voice_pptx.add_notes_to_pptx_com(pptx_path, slide_texts, temp_pptx_path)[ソース]
概要: PowerPointファイルにスライドノートを追加する。 詳細説明:
- パラメータ:
pptx_path -- str: ノートを追加する元のPPTXファイルのパス。
slide_texts -- dict: スライド番号をキー、追加するノート内容を値とする辞書。
temp_pptx_path -- str: ノートが追加された一時PPTXファイルの出力パス。
- 戻り値:
bool: ノートの追加と保存が成功した場合はTrue、それ以外はFalse。
- ai.add_notes_voice_pptx.generate_audio_files_tktts(pptx_path, voice_map, args)[ソース]
概要: PPTXノートから音声ファイルを生成する。 詳細説明:
- パラメータ:
pptx_path -- str: ノートが記載されたPPTXファイルのパス。
voice_map -- dict: 話者名とTTSボイス名のマッピング辞書。
args -- argparse.Namespace: コマンドライン引数を格納したオブジェクト。 TTSエンジンの設定や出力ディレクトリなどが含まれる。
- 戻り値:
list[tuple[int, str]]: (スライド番号, 生成された音声ファイルの絶対パス) のタプルリスト。 音声ファイルの生成に失敗した場合は空のリストを返す。
- ai.add_notes_voice_pptx.initialize()[ソース]
概要: コマンドライン引数を解析し、プログラムの設定を初期化する。 詳細説明:
argparseモジュールを使用して、TTSエンジンの選択、入力/出力ファイルパス、 音声保存ディレクトリ、読み上げ速度、VOICEVOXやAquesTalkPlayer、OpenAI固有の オプションなど、多岐にわたるコマンドライン引数を定義し、解析します。 これにより、ユーザーは様々な設定でスクリプトを実行できます。
- 戻り値:
args: argparse.Namespace: コマンドライン引数を格納したオブジェクト。
- ai.add_notes_voice_pptx.link_audio_autoplay(source_pptx_path, audio_tasks, output_pptx)[ソース]
概要: PowerPointファイルに音声ファイルをリンクし、自動再生を設定する。 詳細説明:
- パラメータ:
source_pptx_path -- str: 元となるPPTXファイルのパス(このファイルをコピーして編集する)。
audio_tasks -- list[tuple[int, str]]: (スライド番号, 音声ファイルパス) のタプルリスト。
output_pptx -- str: 音声リンクが追加された出力PPTXファイルのパス。
- ai.add_notes_voice_pptx.main()[ソース]
概要: プログラムのメイン処理を実行する。 詳細説明:
コマンドライン引数を解析し、選択された実行モード(リスト表示、マップ表示、変換)に 応じて処理を分岐させます。変換モードでは、指定された発言テキストファイルからPPTXに ノートを追加し、その後、ノートの内容から音声ファイルを生成し、最終的に生成された 音声をPowerPointスライドに自動再生リンクとして埋め込みます。 各ステップでエラーチェックとログ出力が行われます。
- ai.add_notes_voice_pptx.parse_narration_file(narration_path, monologue=True)[ソース]
概要: 発言テキストファイルからスライド番号とノート内容をパースする。 詳細説明:
指定されたテキストファイルを開き、"# Slide N" (Nは数字) のパターンを認識して、 各スライドに対応するテキストを抽出します。抽出されたテキストは、PowerPointの ノートとして使用されることを想定しています。空行やコメント行 ('#')、括弧で囲まれた行は無視されます。 `monologue`がTrueの場合、カンマ区切りでない行もそのままノートとして扱います。
- パラメータ:
narration_path -- str: 発言テキストファイルへのパス。
monologue -- bool: 独話形式かどうかを示すフラグ。Trueの場合、カンマのない行も全て読み込む。
- 戻り値:
dict or None: スライド番号をキー、ノート内容を値とする辞書。パースエラーが発生した場合はNone。