Windows には、コンピューターをしゃべらせたり、あなたの言うことを何でも話せるようにするクールな機能があります。この方法では、SAPI (Speech Application Programming Interface) と呼ばれる Windows XP、Vista、7、8、および 10 にインストールされている組み込み API を利用します。
Microsoft Speech API は、Windows に組み込まれているテキスト読み上げアクセシビリティ機能に使用されるものです。API を呼び出すプログラムを作成することもできます。これにより、アプリケーションが話せるようになりますが、それは開発者向けです。
目次
- テキストの入力、メッセージの読み上げ
- SAPI 音声設定の構成
- スケジュール スクリプト ファイル
コンピューターに自分の言いたいことを言わせるだけで、実際にはとても簡単です! この記事では、ユーザーからのテキスト入力を受け取り、それを読み上げる VBS スクリプトを作成する方法を紹介します。また、読み上げたいテキストをハード コーディングし、そのスクリプトを Windows の起動やログオフなどの特定のイベントで実行するようにスケジュールする方法についても説明します。
テキストの入力、メッセージの読み上げ
Windows に読み上げさせたい内容を入力できるダイアログ ボックスをポップアップ表示する簡単なスクリプトから始めましょう。まず、メモ帳を開きます。
ステップ 1: 次のテキストを新しいドキュメントに貼り付けます。
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message
Web ブラウザーからテキストをコピーしてメモ帳に貼り付けると、引用符が問題を引き起こすことに注意してください。ファイルを保存する前に、各引用符 (") を確認して削除し、引用符を再入力する必要があります。以下の例では、6 つの引用符があります。下の画像のようになります。

ファイルを保存するときは、任意の名前を付けますが、名前の後に必ず.VBSも入力してください。次に、[ファイルの種類]ボックスで、既定の [テキスト ドキュメント] ではなく[すべてのファイル]を選択します。
![あなたのコンピュータを話す/あなたが入力したものを話すようにする方法 あなたのコンピュータを話す/あなたが入力したものを話すようにする方法]()
VBS ファイルをダブルクリックすると、読み上げたいテキストを入力できる入力ボックスが表示されます。何か入力して、[OK] をクリックします。
![あなたのコンピュータを話す/あなたが入力したものを話すようにする方法 あなたのコンピュータを話す/あなたが入力したものを話すようにする方法]()
すべてを正しく行った場合、男性または女性の声があなたの文章を話すのが聞こえるはずです. なんらかのエラー メッセージが表示された場合は、テキストをもう一度コピーして貼り付け、引用符を置き換えてください。
SAPI 音声設定の構成
これは楽しいですが、小さなしゃべるコンピューターをさまざまな設定で構成することもできます。音量、声の早さ、遅さ、男性と女性の性別を変更できます。これは、いくつかの行を追加したサンプルコードです。
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
Set sapi.Voice = sapi.GetVoices.Item(1)
sapi.Rate = 0
sapi.volume = 100
sapi.Speak message
デフォルトの速度は 0 で、範囲は -10 から 10 です。-10 を指定すると、音声は非常にゆっくりと話し、10 を指定すると非常に速く話します。音量はデフォルトで 100 に設定されており、範囲は 0 から 100 です。システムにインストールされている場合、 Set sapi.Voiceで始まる行により、別の音声に変更できます。
選択できるボイスの数は、オペレーティング システムによって異なります。Windows 7 では、Microsoft Anna という 1 つの声しかありません。
![あなたのコンピュータを話す/あなたが入力したものを話すようにする方法 あなたのコンピュータを話す/あなたが入力したものを話すようにする方法]()
Windows 10 には、以下に示すように、Microsoft David と Microsoft Zira の 2 つの音声があります。
![あなたのコンピュータを話す/あなたが入力したものを話すようにする方法 あなたのコンピュータを話す/あなたが入力したものを話すようにする方法]()
![あなたのコンピュータを話す/あなたが入力したものを話すようにする方法 あなたのコンピュータを話す/あなたが入力したものを話すようにする方法]()
システムにボイスが 1 つしかインストールされていない場合は、 sapi.GetVoices.Item(1)をsapi.GetVoices.Item(0)に変更する必要があります。そうしないと、スクリプトを実行しようとしたときにエラー メッセージが表示されます。別のメモ帳ドキュメントを作成して、以下のコードを貼り付けることもできます。これにより、どのボイスがインストールされているかがわかります。上記のように .VBS ファイルとして保存し、実行します。
Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next
これまで、このポップアップ ダイアログを使用してテキストを入力してきましたが、スクリプト ファイルにメッセージを入力するだけでもかまいません。これは、スクリプトを自動的に実行するようにスケジュールしたい場合に便利です。明らかに、これは友達や家族にいたずらするのに使用でき、非常にうまく機能します。
誰かがコンピュータの電源を入れて、コンピュータが「こんにちは、ジョン、とても眠いので、今日は気にしないでください!」と言うのを聞いたと想像してみてください。起動したら!私は経験からあなたに約束することができます、それはヒステリックであり、あなたは間違いなくそれを試してみるべきです.
メッセージをハードコードするには、最後の行を次のように変更します。
sapi.Speak “Hello John, I am very tired today!”
スケジュール スクリプト ファイル
意図したターゲットに合わせてメッセージをハードコーディングしたので、あとは必要なときに実行するだけです。技術に精通している場合は、 AutoItのようなプログラムを使用できます。これにより、特定のプログラムが開かれたとき、またはウィンドウが最大化または最小化されたときにスクリプト ファイルを実行するなどの極端なことができます。
この投稿ですべてを説明する時間はありませんが、幸いなことに、Microsoft にはタスク スケジューラと呼ばれる組み込み機能があり、スクリプトを使用して非常に複雑な作業を簡単に行うことができます。
以前の投稿では、Windows で特定のイベントが発生したときにスクリプト ファイルを実行するようにスケジュールする方法について詳しく説明しました。スクリプトの動作に問題がある場合は、お気軽にコメントを投稿してください。私がお手伝いします。楽しみ!