日期:2014-05-16  浏览次数:20506 次

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吧,我用播放流来做的