こんにちは、開発本部の0009です。
今回は“しゃべるパワポ”の作り方を紹介します。
皆さん、発表は得意ですか?
私は苦手です。緊張で、声が出なくなるほどです。
そこで、音声合成に頼ることにしました。
最近のWindowsには、音声合成が搭載されています。
Microsoft Speech Platform
さらに、Officeからはマクロで音声合成を実行できます。
あとは、どう使うかですね。
今回は、次のような使い方でやってみました。
- 発話原稿置場:ノート欄
- 発話実行方法:スライド内のボタンの押下
作り方を紹介します。簡単のために手っ取り早い手順です。
まず、PowerPoint に [開発] リボンがあるかを確認してください。
次の手順で出せます。
- [ファイル] を選択
- [オプション] を選択
- [リボンのユーザー設定] を選択 → [開発] チェックボックスを on → [OK] ボタン
- [開発] リボンが出ましたでしょうか
- [開発] リボンを選択
- コマンド ボタンを選択
- コマンド ボタンをシートに追加
- 追加したコマンド ボタンをダブルクリック
- こんな画面がでましたでしょうか
この画面でマクロをプログラミングできます。言語は VBA です。
この画面中の以下の記述を、
Private Sub CommandButton1_Click()
End Sub
以下のように書き換えてみてください。
Private Sub CommandButton1_Click()
'' ノート欄の文字列を取得
Dim strNote As String
strNote = NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text
'' ノート欄が空の場合は,読み上げ処理を行わずに終了
If strNote = "" Then
Exit Sub
End If
'' 音声合成エンジンを取得
Dim sv As Object
Set sv = CreateObject("SAPI.SpVoice")
'' インストールされている音声合成エンジンのうち、最初に見つかった日本語のものを選択
For i = 0 To sv.GetVoices.Count - 1
If InStr(sv.GetVoices.Item(i).GetDescription, "Japanese") Then
Set sv.Voice = sv.GetVoices.Item(i)
Exit For
End If
Next
'' 日本語のエンジンが見つからなかった場合
If InStr(sv.Voice.GetDescription, "Japanese") < 1 Then
'' 発見に失敗した旨をメッセージボックスで通知
MsgBox "日本語のエンジンが見つかりませんでした。" & vbCrLf & _
"現在の設定 : " & sv.Voice.GetDescription
Exit Sub
End If
'' 音声合成実行
sv.Speak strNote
'' 音声合成エンジンを開放
Set sv = Nothing
End Sub
- スライドに戻り、ノート欄に音声合成したい文字列を記入
スライド上のボタンを押して音声合成を実行できるのは、
PowerPointのモードのうち以下のいずれかです。
音声合成が実行されない場合は、Windows の音声認識の設定を確認してください。
概ね、以下のいずれかが原因です。
- 音声認識の言語が日本語以外になっている
- 日本語の音声合成エンジンがインストールされていない
詳しくは、Microsoft Speech Platform のページをご参照ください。
音声合成が音声認識の一機能に位置付けられているところが、個人的には興味深いです。
ちなみに、先日私は全社向けに業務報告を行いました。
音声合成に手伝ってもらった実感としては、なかなか頼もしかったです。
ひょっとすると、音声合成に読ませる都合、原稿をいつも以上に推敲したからかもしれません。
やはり、プレゼンは準備が大事ですね!