これまでの良レスとは違う方向で申し訳ないのですが
外部コンポーネント(COM)定義を使った方法もあります。
下記、サンプルコードです。
カレントディレクトリにspTextの音声をwavFileに作成して実行します。
#define global CLSID_SpFileStream "{947812B3-2AE1-4644-BA86-9E90DED7EC91}"
#define global IID_ISpeechFileStream "{AF67F125-AB39-4e93-B4A2-CC2E66E182A7}"
#usecom global ISpeechFileStream IID_ISpeechFileStream CLSID_SpFileStream
#comfunc global ISpeechFileStream_Open 12 wstr,int,int
#comfunc global ISpeechFileStream_Close 13
#define global CLSID_SpVoice "{96749377-3391-11D2-9EE3-00C04F797396}"
#define global IID_ISpeechVoice "{269316D8-57BD-11D2-9EEE-00C04F797396}"
#usecom global ISpeechVoice IID_ISpeechVoice CLSID_SpVoice
#comfunc global ISpeechVoice_putref_AudioOutputStream 13 int
#comfunc global ISpeechVoice_Speak 28 wstr,int,var
wavFile = "test.wav"
spText = "Hello this is H.S.P. for windows."
newcom spFile, ISpeechFileStream
ISpeechFileStream_Open spFile, wavFile, 3, 0
newcom spVoice, ISpeechVoice
dupptr dp, varptr(spFile), 4
ISpeechVoice_putref_AudioOutputStream spVoice, dp
ISpeechVoice_Speak spVoice, spText, 0, ret
ISpeechFileStream_Close spFile
delcom spVoice
delcom spFile
exec wavFile, 16
stop