PPTXファイルに音声や文字のナレーションを埋め込むWindowsPC用ソフトを作っています。オーディオのナレーションを付けることを目的として作り始めたソフトでした。しかし字幕を付けられるようにしてみると、これだけでも使い道が多そうな気がしてきました。
そこで、今回の投稿ではスライドショーに字幕を付けるやり方の例を紹介します。せっかくなので開発中のソフトで使った字幕付きスライドショーを使うことにします。
なお、このソフトを「このアプリ」とか「開発中のソフト」などと呼んできました。Pythonファイルの名前は“AddAudio2pptx.py”などとしていましたが、何かもう少しそれっぽい名前で呼ぶことにしましょう。適切かどうかわかりませんが、“Powerpoint Narrator(パワーポイントナレーター)”と呼ぶことにします。注)
<注を読む>
ChatGPTで、以下のように質問しました。
「Powerpoint Narratorという名前のソフトウェアがありますか? もしあるとすれば、どのようなことをするソフトウェアだと考えられるでしょうか?」
回答は以下のようでした。
「2022年1月時点では、Powerpoint Narratorという名前のソフトウェアは存在しませんでした。ただし、Microsoft PowerPointには、スライドのナレーションを録音する機能があります。これにより、プレゼンテーションを行う際にスライドごとに音声を付けることができます。この機能を利用することで、スライドショーを再生するときに自動的にナレーションが再生されるようになります。また、Microsoft PowerPointには、アクセシビリティを向上させるための機能もありますので、それらの機能の組み合わせによって、スライドのナレーションを作成するソフトウェアとしての機能を果たすことができるかもしれません。」
<注を閉じる>
では、以下のように3つに分けて説明をしていきます。
・PPTXスライドを準備
・スクリプトを作る
・ナレーションを付ける
PPTXスライドを準備
Powerpoint Narratorは、現時点ではPPTXのスライドの自動生成や生成をサポートする機能は持っていません。まずはじめにナレーションを付ける元のPPTXファイルを準備する必要があります。
ここで想定しているのは、1枚のスライドの中に複数ステップのアニメ効果を持つようなPPTスライドショーです。数行の文字列が一度に表示されるだけのスライドが延々と続くようなスライドショーでは字幕を付けるだけのためならPowerpoint Narratorは不要です。PPTアドインのiSpring Suiteを使えばPPTのノートの記述を字幕として表示するHTMLスライドショーが作れてしまうからです。
スライドの準備についての説明は次のスライドショーでご覧ください。
1)PPTXスライドを準備
スクリプトを作る
PPTXファイルの準備ができたら、スライドショーの「スクリプト」を作ります。スクリプトは、スライド切替えやマウスクリックを示す文字列と、これらに同期して発声や表示をするナレーションのテキストを順番に並べたものです。スクリプトはテキストファイルの形で作成し保存されます。
スクリプトは複数の作り方が可能です。今回紹介するのは、現時点で一番楽で失敗が少ないと思われる方法です。
次のスライドショーをご覧ください。
2)スクリプトを作る
スクリプトは、以下の規則に従って作ります。
- 行単位で動作を記述
開始からリターンコードまでで1単位とする。 - エスケープ行
以下の文字列(全て半角)が先頭にある行は,スライド切り替えやアニメーションのためのマウスクリック(あるいは矢印キー操作)を表し,音声合成は実行しない。- #Snn:スライド番号を示す。nn:01~99(2桁の数字)
例:#S01,#S20など。 - #mm:1つのスライド内でのアニメーションのクリック番号。mm:00~99
#00はスライド切り替え時のナレーションを表す。
例:#00:スライド切り替え時のナレーション,#01:1番目のクリックのナレーション。 - #nn_mm:nn番目クリックに続く自動アニメーションの番号を示す。mm:01~99
- %:コメント行
- #Snn:スライド番号を示す。nn:01~99(2桁の数字)
- 空行は無視する
- 記述のルール
スライド番号とクリック番号を順番に並べる。スライド番号とクリック番号はエスケープ文字列を 行頭に持つ行で指定し,改行後の「コメント行でも空でない行」がナレーションとして処理される。
上記のルールは,AutoHotKeyを使ったアプリ開発(PTファイルに音声を自動で埋め込む その1 AHKによる実装)の際に作ったものです。現在のアプリはPythonでコーディングされていて,上のルールから外れた記述でも動作することがわかっています。以下にまとめます。
- スライド切替え時のナレーション
#00 という文字は略してもよい。例えば,2枚目のスライド切替え時のナレーションは,“#S02”の次の行に記述すればよい。 - ナレーションを付加しないスライドやアニメーションの番号は略してもよい
例えば,3枚目のスライドの2番目のクリックのみにナレーションを付加する場合は,
#S03
#02
×××・・・・・(ナレーションのテキスト)
というスクリプトで動作する。 - コメント行
#Snnや#mmなどのエスケープ文字列を先頭に持つ行は,これらの文字列の後ろに1つ以上の空白文字があれば,その後ろに挿入した文字列は改行コードまでが無視される。これをコメント文字列として使うことができる。
ナレーションを付ける
スクリプトに従ってPPTXスライドショーにナレーションを付けた新しいPPTXファイルを作ります。
手順は次のスライドショーをご覧ください。
3)ナレーションを付ける
Powerpoint Narratorの操作ウインドウにある“Audio”と“Caption”というラベルのついた2つのチェックボックスで、付けるナレーションの種類を選択します。Audio(音声ナレーション)とCaption(字幕)の両方を同時に付けることも可能です。ただし、音声ナレーションを埋め込むためには、オーディオファイルをあらかじめ作成しナレーションフォルダ(上の例では“PPT_Test”という名前)に格納しておく必要があります。また、既に字幕やオーディオのナレーションを付けてあるPPTXファイルを対象とした場合、どうなるかはこれから確認する予定です。
感想
- ちょっと疲れるかも
今回の投稿では、Powerpoint Narratorで字幕をつけたPPTXファイルを説明に使いました。スライドの枚数が少し多かったので閲覧する人は疲れるかもしれません。 - 字幕の問題
スライドの画像と字幕が、両方とも視覚を使うことからくる「わかりにくさ」の問題は、少なくとも私は感じました。オーディオのナレーションの方が速く頭に入りそうです。また、字幕の背景の色やスライド本体との区切りの方法など、改善すべき点があります。 - スライドの枚数は適切か?
講義の場合には、手元に配布資料もあり、それに目を通しながらスライドショーを閲覧できるので、スライド枚数が多くても分かりにくくなることはなさそうです。しかし、webページの場合は、スライドを見ているときにページの他の場所を見るのは難しくなります。スライドが切り替わってしまうので、何枚か前の画像を記憶していることも難しくなるでしょう。スライドの枚数や画像の提示の仕方については、もう少し研究が必要になりそうです。 - 作る方も疲れる
スライドショーが長いと、見るほうも疲れるかもしれませんが、作る方も疲れます。一番大変なのは、PPTスライドショーを作る過程です。この過程に費やす時間を短くして、しかも内容が伝わり易いスライドを作ることをサポートするソフトが必要だと感じました。例えば、よく使うアニメのシーケンスを自動生成する機能とか、です。 - こんな機能が欲しくなる
次に時間がかかるのが、スクリプトの作成です。これは、スライドショーをクリックにより進行させながらナレーションを喋って録音するような機能を、Powerpoint Narratorに持たせることで改善できそうです。録音した音声をテキストに変換すれば、スクリプトの編集の時間を短くできるかもしれません。(勉強しないといけないので、だいぶ先になりそうです。)
また、録音したナレーションだけで良い場合もあると思います。それに対応するようにコードを変更するのは、そんなに難しくはなさそうです。
コメント