3

Windows 7 のテキスト読み上げエンジン (まともなアンナの声を持っています) を介していくつかの txt ファイルを実行し、wav ファイルを生成する簡単なスクリプトを作成しようとしています。ただし、wav ファイルは、直接スピーカーに出力した場合ほど良く聞こえません。2 つの完全に異なる Windows 7 システムでこれを試しました。これを改善する方法はありますか?

脚本:

set x = createobject("SAPI.SpVoice")
' 次の行のコメントを外してファイルに出力します
'set ofs = createobject("SAPI.SpFileStream")
'ofs.Open "msg.wav", 3, vbFalse
'set x.AudioOutputStream = ofs
x.Speak 「2003 年の秋、...」
4

3 に答える 3

3

SapiFileTypeはここで定義されています: http://msdn.microsoft.com/en-us/library/ms720595%28v=vs.85%29.aspx

Enum 18 = 16kHz 16Bit モノラル

于 2013-07-29T13:35:49.697 に答える
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
于 2012-05-28T05:23:51.277 に答える