2011-07-03 14 views
3

Windows 7のテキスト読み上げエンジンでいくつかのtxtファイルを実行する簡単なスクリプトを作成しようとしています。まともなアンナの声を持っている)とwavファイルを生成します。しかし、wavファイルはスピーカーに直接出力するだけでは音が出ません。私は2つの完全に異なるWindows 7システムでこれを試しました。これを解決する方法はありますか?SAPI.SpVoiceを使用してWAVファイルに出力すると、結果がスピーカーに直接出力されるときとは異なる

スクリプト:

私は認めざるを得ない
 
set x = createobject("SAPI.SpVoice") 
' Uncomment following lines to output to file 
'set ofs = createobject("SAPI.SpFileStream") 
'ofs.Open "msg.wav", 3, vbFalse 
'set x.AudioOutputStream = ofs 
x.Speak "In the fall of 2003, ..." 

答えて

2

、私は数日前までは同じことを思っていました。ここでは解決策ですが、最初の行の数字「18」は音声特有のものかもしれません。私は長い間wavファイルにその高品質のバージョンを取得しようとしていたので、最終的にすべての番号(0-64)を実行し、私が正しいものを見つけるまで、すべてのサンプルを聴いた。

次のコードをメモ帳に貼り付け、 'SapiSomething .vbs'として保存してください。お探しの高品質な出力です。私にとって、ファイル出力の音質は、スピーチがスピーカーにまっすぐ送られるときと同じです。

Const SapiFileType=18 ' Magic number, possibly voice specific (0 to 64) 

strText=Trim(InputBox("What do you want me to say?","Listen to Sapi.SpFileStream.Format.Type Quality","")) 
If NOT len(strText)>0 Then WScript.Quit 
With CreateObject("Scripting.FileSystemObject") 
strFile=.BuildPath(.GetParentFolderName(WScript.ScriptFullName),"Sapi.SpFileStream.Format.Type_"&SapiFileType&".wav") 
If .FileExists(strFile) Then .DeleteFile strFile 
End With 
With CreateObject("Sapi.SpVoice") 
Set ss=CreateObject("Sapi.SpFileStream") 
ss.Format.Type=SapiFileType 
ss.Open strFile,3,False 
Set .AudioOutputStream=ss 
.Speak strText,8 
.waituntildone(-1) 
ss.Close 
Set ss=Nothing 
End With 
With CreateObject("WMPlayer.OCX"):.settings.autoStart=True:.settings.volume=100:.URL=strFile:Do until .playState=1:Wscript.Sleep 200:Loop:End With 
+0

ありがとうございました!これは非常に便利でした! – mnutsch

関連する問題