Windowsには、(Windows)コンピューターに話しかけたり、話しかけたり(computer talk or speak)することができる優れた機能があります。この方法では、Windows XP、Vista、7、8、および10にインストールされているSAPI(Speech Application Programming Interface )と呼ばれる組み込み(Speech Application Programming Interface)APIを利用します。
Microsoft Speech APIは、Windowsに組み込まれているテキスト読み上げ アクセシビリティ機能(accessibility feature)に使用されるものです。APIを呼び出すプログラムを作成することもできます。これにより、アプリケーションに音声を伝えることができますが、これは開発者向けです。
コンピュータにあなたが望むものを言わせるだけで、実際にはかなり簡単です!この記事では、ユーザーからのテキスト入力(text input)を受け取り、それを話すVBSスクリプトを作成する方法を紹介します。(VBS script)また、話したいテキストをハードコーディングしてから、そのスクリプトをWindowsの起動やログオフなどの特定のイベントで実行するようにスケジュールする方法についても説明します。
テキストを入力し、メッセージを話します
まず、Windowsに話したい内容を入力できるダイアログボックス(dialog box)をポップアップ表示する簡単なスクリプトから始めましょう。まず(First)、先に進んでメモ帳(Notepad)を開きます。
手順1:(Step 1:) 次のテキストを新しいドキュメントに貼り付けます。
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message
Webブラウザ(web browser and paste)からテキストをコピーしてメモ帳(Notepad)に貼り付けると、引用符によって問題が発生することに注意してください。ファイルを保存する前に、各引用符(“)を調べて削除し、引用符を再入力する必要があります。以下の例では、6つの引用符があります。下の画像(image below)のようになります。
ここで、ファイルを保存するときに任意の名前を付けますが、名前の後に.VBS(.VBS)も入力するようにしてください。次に、 [ファイルの種類( Save as type)]ボックスで、デフォルトのテキストドキュメント(Text Documents)の代わりに[すべてのファイル( All files)]を選択します。
次に、 VBSファイル(VBS file)をダブルクリックすると、話したいテキストを入力できる入力ボックスが表示されます。(input box)何か(Type something)を入力して[OK]をクリックします。
あなたがすべてを正しく(everything right)やったなら、あなたは男性か女性のどちらかの声があなたの文章を話すのを聞くべきです。何らかのエラーメッセージ(error message)が表示された場合は、必ずテキストをもう一度コピーして貼り付け、引用符を置き換えてください。
SAPI音声設定を構成する
これは楽しいことですが、話すコンピューターをさまざまな設定で構成することもできます。音量、声の速さや遅さを変更したり、男性と女性の性別を変更したりできます。これは、2、3行追加したサンプルコードです。(example code)
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
デフォルトのレート(default rate)は0で、範囲は-10〜10です。-10は音声を非常にゆっくりと話し、10は非常に速く話します。音量のデフォルトは100で、範囲は0〜100です。Setsapi.Voice(Set sapi.Voice)で始まる行では、システムにインストールされている場合、別の音声に変更できます。
選択できるボイスの数は、オペレーティングシステム(operating system)によって異なることに注意してください。Windows 7では、 MicrosoftAnnaという1つの音声しかありません。
Windows 10には、以下に示すように、MicrosoftDavidとMicrosoftZira(Microsoft David and Microsoft Zira)の2つの音声があります。
システムにインストールされている音声が1つしかない場合は、sapi.GetVoices.Item(1)をsapi.GetVoices.Item(0)に変更する必要があります。そうしないと、スクリプトを実行しようとしたときにエラーメッセージが表示されます。(error message)別のメモ帳ドキュメントを作成して、以下のコードを貼り付ける(Notepad document and paste)こともできます。これにより、インストールされている音声がわかります。上記のように.VBSファイルとして保存して実行します。
Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next
これまで、このポップアップダイアログを使用してテキストを入力してきましたが、(popup dialog)スクリプトファイル(script file)にメッセージを入力することもできます。これは、スクリプトが自動的に実行されるようにスケジュールする場合に役立ちます。明らかに、これはあなたの友人や家族をいたずらするために使用することができ、それは本当にうまく機能します。
誰かが自分のコンピューターの電源を入れて、コンピューターが「こんにちはジョン(Hello John)、私はとても眠いです。今日は気にしないでください」と言うのを聞いたと想像してみてください。起動したら!私は経験からあなたに約束することができます、それはヒステリックであり、あなたは間違いなくそれを試してみるべきです。
メッセージをハードコーディングするには、最後の行を次のように変更するだけです。
sapi.Speak “Hello John, I am very tired today!”
スクリプトファイルのスケジュール
目的のターゲットに合わせてメッセージをハードコーディングしたので、必要なときにメッセージを実行するだけです。技術に精通している場合は、AutoItのようなプログラムを使用できます。これにより、特定のプログラムが開いたとき、またはウィンドウが最大化または最小化されたときにスクリプトファイル(script file)を実行するなどの極端な操作を実行できます。
この投稿ですべてを説明する時間はありませんが、幸いなことに、Microsoftには(Microsoft)タスクスケジューラ(Task Scheduler)と呼ばれる組み込み機能があり、スクリプトを使用して非常に複雑な作業を簡単に実行できます。
以前の投稿では、 Windows(Windows)で特定のイベントが発生したときに実行するスクリプトファイル(script file)をスケジュールする方法について詳しく説明しています。スクリプトを機能させるのに問題がある場合は、コメントを投稿してください。サポートさせていただきます。楽しみ!
How to Make Your Computer Talk/Speak What You Type
Τhere іs coоl feature in Windows that allows you to make your computer talk or speak whatever you tell it! This method takes advantage of a built-in AРI installed on Windows XP, Vista, 7, 8 and 10 called SAPI (Speech Application Programming Intеrfacе).
The Microsoft Speech API is what is used for the text-to-speech accessibility feature built into Windows. You can also write programs that call the API, which would allow you to let your applications speak, but that’s for developers.
Just making your computer say what you want is pretty easy actually! In this article, I’ll show you how to create a VBS script that will take a text input from a user and then speak it. I’ll also mention how to hard code the text you want spoken and then schedule that script to run on specific events like starting Windows or logging off.
Input Text, Speak Message
Let’s start off with a simple script that will popup a dialog box where you can type in what you want Windows to speak. First, go ahead and open Notepad.
Step 1: Paste the following text into a new document:
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message
Note that when you copy text from your web browser and paste it into Notepad, the quotes will cause problems. Before you save the file, you need to go through and delete each quote (“) and retype the quote. In the example below, there are six quotes. It should look something like the image below.
Now when you go to save the file, give it any name, but make sure you also type .VBS after the name. Next, for the Save as type box, choose All files instead of the default Text Documents.
Now double-click on the VBS file and you should see an input box where you can type in the text you want spoken! Type something and click OK.
If you did everything right, you should hear either a male or female voice speak out your sentence. If you get any kind of error message, make sure to copy and paste the text again and replace those quotes.
Configure SAPI Voice Settings
This is fun, but we can also configure our little talking computer with different settings. We can change the volume, how fast or slow the voice talks and change the gender between male and female. Here is some example code where I added a couple of extra lines.
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
The default rate is 0 and the range is -10 to 10. -10 will have the voice speak super slowly and 10 will speak super fast. The volume is defaulted at 100 and the range is 0 to 100. The line that starts with Set sapi.Voice will allow you to change to another voice, if installed on your system.
Note that the number of voices you can choose from depends on the operating system. In Windows 7, there is only one voice, Microsoft Anna.
In Windows 10, there are two voices: Microsoft David and Microsoft Zira as shown below.
If there is only one voice installed on your system, you have to change that says sapi.GetVoices.Item(1) to sapi.GetVoices.Item(0), otherwise you will get an error message when you try to run the script. You can also create another Notepad document and paste the code below in, which will tell you what voices are installed. Save it as a .VBS file like shown above and run it.
Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next
Up until now, we have been using this popup dialog to enter text, but you could also simply type your message into the script file. This would be useful if you wanted to then schedule the script to run automatically. Obviously, this can be used to prank your friends and family and it works really well.
Just imagine someone turning on their computer and hearing the computer tell them “Hello John, I’m very sleepy, please don’t bother me today!” when it boots up! I can promise you from experience, it’s hysterical and you should definitely try it.
In order to hardcode the message, simply change the last line to something like this:
sapi.Speak “Hello John, I am very tired today!”
Schedule Script File
Now that you have hardcoded your message for your intended target, you simply have to run it when you want. If you are tech-savvy, you could use a program like AutoIt, which will allow you to do extreme stuff like run your script file when a certain program is opened or when a windows is maximized or minimized.
I don’t have time to get into all that in this post, but luckily Microsoft has a built-in feature called the Task Scheduler that lets you do some pretty complicated stuff with scripts easily.
My previous post goes in depth on how to schedule a script file to run when certain events occur in Windows. If you have any trouble getting your script to work, feel free to post a comment and I’ll try to help. Enjoy!