ノート読み上げを含むPowerPoint

音声での説明があった方が良いPowerPointのスライドを作る必要がある。

原稿はつくるとして自分で読み上げると、録音のための環境が整っていないので、周囲からの音が問題になった場合には、録音を繰り返さなければならない。面倒で時間がかかる。

自分の声である必要は必ずしもないので、音声合成を利用してノートの原稿を読み上げ、それをスライドに埋め込むことにした。音声の必要がなければノートを読めばよいし、ノートを読むのが面倒であれば音声を再生して聞けばよい。

Windowsで、VBAとText-to-Speech(TTS)エンジンを使って読み上げをするプログラムはあったが、複数のスライドを一括して処理するものが見つけられなかったので作成してみた。

環境

  • Windows 10 Home 1909
  • PowerPoint  for Microsoft 365 バージョン 2008 (ビルド 13127.20409) 64bit

音声合成で利用できる音声は次の通り。下記のVBAプログラムでは日本語の男性の声としてMicrosoft Ichiro が使われた。

プログラムを含むPowerPointファイル

スライドのノートを音声合成エンジンで読み上げたものをスライドに埋め込むことをすべてのスライドで行うVBAを利用したプログラムの例を示す。

VBAを利用しているのでマクロ実行を有効にしないと動作しない。

スライドショーを実行して最初のスライドにある「音声ファイルの作成・挿入」ボタンを押すと、読み上げた音声ファイルが埋め込まれる。

音声ファイルを一括して削除したい場合には、スライドショーを実行して、最初のスライドにある「音声ファイルの削除」ボタンを押す。

作成したPowerPointファイルをスライドショーにして、クリックなどでスライドを変えた場合に自動的に音声ファイルの再生を行うようにすると速く読み進めるのの邪魔になるので、例では、スライドの左上の再生ボタンを押さないと音声は出ないようにした。

VBAプログラム

「音声ファイルの作成・挿入」ボタンは、オブジェクト名 AddAudioFilesButton とした。スライドショーなどでボタンをクリックすると AddAudioFilesButton_Click() が呼び出される。そこから AddAudioFiles() が呼び出されて処理が進む。

「音声ファイルの削除」ボタンは、オブジェクト名 RemoveAudioFilesButton とした。スライドショーなどでボタンをクリックすると RemoveAudioFilesButton_Click() が呼び出される。そこから、RemoveAudioFiles() が呼び出されて処理が進む。

音声ファイルの作成・挿入

GetTtsEngine()で、指定された言語と性別の音声を合成できるText-To-Speech エンジンを取得する。

スライドを順番にみていき、ノート部分をMakeSpeechText() で必要に応じて編集して、MakeFileName()で音声ファイル名を生成し、Speak()で発生して、音声ファイルに保存する。

InsertAudio()で作成した音声ファイルをスライドに追加する。

音声ファイルの作成で利用されるプログラム

MakeSpeechTextは、テキストとスライド番号から発話用のテキストをつくる。スライド番号を使用している箇所はコメントアウトされていて使われていない。音声ファイルが正しくスライド番号と対応しているかをスライド番号を最初に読み上げることで確認する際に使用した。

音声ファイルの挿入で利用されるプログラム

InsertAudioで指定の音声ファイルをスライドに追加する。

スライドが切り替わった際に音声ファイルが自動的に再生されるようした場合も試してみたが、利用形態に合わないと思われるのでコメントアウトしている。音声の自動再生を有効にする場合には、再生ボタンがスライドショーの時に見えないようにしても良い。

音声ファイルの削除

スライドを順番にみていき、サウンドファイルがあったら削除する。

コメント

  1. 古橋武 より:

    薫染庵様

    先ほどお送りしましたコメントは、改行コードが無視されているため、段落が連なった長文となってしまいました。改行コードの入れ方が分からないので、段落間に全角のスペースを入れた文を、以下に再送いたします。                          

    薫染庵様

      初めまして。

      貴サイトのプログラムを基に、図形のグループ化とアニメーション設定、ノート読み上げ、wavファイル埋め込みとアニメーション設定をワンクリックでできるマクロを作ることができました。これらの一連の操作に多くの時間を取られていたために(胃が少しおかしくなりかけていたために)、必要に迫られて貴プログラムを核にして、改変を進めてまいりました。お陰様で、講義資料のコンテンツ造りに専念できる環境を得ることができました。貴重なプログラムの公開をありがとうございました。

      つきましては、拙プログラムの公開サイトで貴サイトとのリンクを張らせていただきたくお願い申し上げます。また、貴プログラムをコピー・改変させていただいた箇所にはその旨と貴サイトのURLを記させていただいております。もし、差支えがありましたら、お手数をおかけして申し訳ございませんが、ご返信いただけましたら幸いです。

      拙プログラムの開発は、貴プログラムをはじめとしてネット上の様々なサイトのプログラムサンプルのお陰で進めることができました。オブジェクト指向のVBAもYouTubeで勉強しながらの心もとないレベルですが、多少は恩返しができるかなと思い、拙プログラムを公開する次第です。よろしく、ご高配のほどお願い申し上げます。

    • epi より:

      古橋武様
      このサイトのプログラムが多少なりとも参考になったとすればうれしく思います。
      リンクは自由に張っていただいて構いません。リンクは許諾不要と考えております。
      また、役に立つプログラムを公開いただきありがとうございます (http://www.mybook-pub-site.sakura.ne.jp/Macro_for_Note_Reading/)。Microsoftの日本語の音声合成の質はいま一つなので、他の音声合成エンジンが使えるとプレゼンテーションなどの質の向上につながると思います。