在使用微软的tts引擎后,可以朗读文本,也可以保存成wav文件。
目前使用在web上,想让服务器根据文本合成的wav直接输出,不用先合成wav文件,再输出此文件。
SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
SpFileStream spfs = new SpFileStream();
spfs.Open(Context.Server.MapPath("") + "\\" + "mystream.wav", SpeechStreamFileMode.SSFMCreateForWrite, false);
//不想保存成wav文件,再通过Response输出,想直接输出,如何办到?
voice.AudioOutputStream = spfs;
voice.Speak("good", spFlags);
voice.WaitUntilDone(1000);
spfs.Close();

解决方案 »

  1.   

    你是在web形态下,直接输出语音的话其实是在服务器上发音了啊
      

  2.   

    我的意思是,在服务器上生成的wav,直接从web上输出,输出即http://www.abc.com/a.wav,这个a.wav不需要在服务器上生成文件,直接输出字节就行了。
      

  3.   

    就是如何吧SpFileStream流里面的内容以type输出。而不是保存成文件。
      

  4.   

    客户端要得到这个数据,具体播放可以调用WindowMediaPlay或者其他的,关键是服务器发送这个wav数据,不是保存在服务器上的wav文件,然后根据url来获得数据,是要服务器动态生成wav数据,然后发送出来。比如我请求url是http://www.abc.com/getwav.aspx?word=good,返回的就是一个wav数据,声音朗读的就是good