認めざるを得ないのですが、数日前まで同じことを考えていました。これが解決策ですが、最初の行の番号「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