ASP.NET调用第三方DLL合成语音并让客户端浏览器播放的问题
需求:
一个语音合成的SDK开发包以DLL的形式提供调用,需要在ASP.NET网站上调用这个DLL实现将网站输入的文本信息转化成声音播放出来,延时尽可能小,提高用户体验。
目前已实现:
调用语音合成dll,将文本合成为声音格式的文件,储存在服务器上。确定文件生成完毕后,客户端通过object控件对其进行播放。代码如下
<object data="voice.wav" type="application/x-mplayer2" width="0" height="0">
<param name="src" value=<%=src%>>
<param name="autostart" value="1">
</object>
其中value绑定后台用户点击合成后,实时生成的语音文件。目前这个方法可以跨浏览器使用。
缺点:
大段的文字时,合成为整个声音文件后才进行传输。此时文件一般为1-2M左右,这样在网速不是很理想的时候进行传输播放就会有明显的延迟。用户体验不好,其实不是合成慢了,而是合成完了再传输慢了。
考虑的方法:
语音合成SDK可以提供单句合成的功能,能否边合成边将声音数据写成流,让客户端进行播放?或者有什么其他的解决方法?
谢谢大家了!分数不多,大家一起探讨一下把 :)
------解决方案--------------------你指的TTS吧,我用播放流来做的