前回の例でも見せたとおり
WSHならば簡単に既存のCOMサービスを使うことができます
(すでに作成されてるサービスの機能を再利用することができます)
今回はMicrosoftが提供している
合成音声でPCにしゃべらせてみましょう

合成音声でしゃべらせるにはSpeechPlatformRuntimeが必要です
fileSpeechPlatformRuntime.msi
日本語を喋らせるには日本語用の合成音声パックが必要です
fileMSSpeech_TTS_ja-JP_Haruka.msi
それぞれインストールします

今回のプログラムはこちらです
filespeech.vbs
読み上げるテキストはこちらです
filespeech.txt

speech.vbsをダブルクリックすればspeech.txtを読み上げる音声ファイルが作成されます
テキストの中身を変更すれば色々しゃべらせることができます

speech.vbsの中身は次のとおりです
たかだが30行程度でテキストファイルから合成音声による読みあげ音声ファイルを作成することができます

Option Explicit

Const SSFMCreateForWrite = 3
Dim objSV,objSFile,flgEnd
Dim objFS,objTS
flgEnd = false
'音声合成関係のオブジェクトを生成する
Set objSV = WScript.CreateObject("Speech.SpVoice")
Set objSFile = WScript.CreateObject("Speech.SpFileStream")
'イベントをMyProc_ではじまるプロシージャに接続する
WScript.ConnectObject objSV,"MyProc_"
ObjSFile.Open "speech.wav",SSFMCreateForWrite
Set objSV.AudioOutputStream = ObjSFile
'音声を出力する
'FileSystemObjectオブジェクトを生成する
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
'TextStreamオブジェクトを取得する
Set objTS = objFS.OpenTextFile("speech.txt",1)
objSV.Speak objTS.ReadAll,0
objSFile.Close
objTS.Close
Do While flgEnd <> true
 WScript.Sleep 100
Loop


Sub MyProc_EndStream(StreamNumber,StreamPosition)
 WScript.Echo "音声出力終了"
 flgEnd = true
End Sub

文法については詳しく説明しませんが
VBSの場合、
WScript.CreateObjectメソッドで既存のCOMサービスも使うことができます
http://msdn.microsoft.com/ja-jp/library/7t9k08y5(v=vs.80).aspx
今回の場合、
Speech Platform Runtimeをインストールすることで
COMコンポーネントがレジストリに登録されたことになります
ProgIDのSpeech.SpVoiceを指定することで合成音声用の機能を使うことができます

選択肢 投票
ProgIDを使うことを強いられているんだ! 0  
ktkr 1  
Windowsでしか動かないのはMicrosoftの仕様です 1  

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS