我想在网页中做一个语音合成,也就是网页中有一个文本框,在文本框中输入文字,然后按按钮,就读出文字的信息.当然,我也知道声音是要传到客户端的浏览器播放才是正确的.
我的主要思路是:
方法1:在服务器端进行语音合成,保存在内存中,然后再传到客户端,由客户端进行播放.就是类似于图片验证码使用的方法.
方法2:在服务器端进行语音合成,将文件保存在硬盘上,客户端的播放器通过地址进行播放.
我的开发平台是windows 2008 + VS 2008, windows 2008自带了SpeechSDK5.3,另外,也引用了.NET平台里system.speech.在使用SpeechSDK5.3时,总是出现下面的错误: COM 组件的调用返回了错误 HRESULT E_FAIL。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Runtime.InteropServices.COMException: 对 COM 组件的调用返回了错误 HRESULT E_FAIL。,用SpeechSDK5.3时,出现如下错误:我把网上关于解决此错误的方法都用了,没有用,后来试用system.speech,没有提示出错,但是使用方法1是没有反应.使用方法1的代码如下:
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            SpeechSynthesizer synth = new SpeechSynthesizer();
            synth.SetOutputToAudioStream(ms, new System.Speech.AudioFormat.SpeechAudioFormatInfo(8000, System.Speech.AudioFormat.AudioBitsPerSample.Sixteen, System.Speech.AudioFormat.AudioChannel.Mono));
            synth.SpeakAsync(TextBox1.Text);使用方法2时,可以声音文件,但是网页就没有反应了,具体代码如下:
            SpeechSynthesizer SS = new SpeechSynthesizer();
            SS.SetOutputToWaveFile("D:\\ChineseLearn\\Web\\1\\abc.wav");
            SS.Speak("All your money is gone.");
            SS.SetOutputToNull();
请各位老大帮忙看看,到底是什么问题.解决问题后再另开贴加100分.

解决方案 »

  1.   

    我不是专业回答,帮你顶一下,顺变广告  .net 交流群59714431 
      

  2.   

    以前winform下用过Speech5,web的好像用activeX签到网页里面吧?感觉楼主这样在server和browser之间传递和别扭哦
      

  3.   

    在网页中能够合成声音,声音文件也能够保存在硬盘上,就是网页失去了反应.为知道是哪个地方没搞好,在WINFORM下是没有问题的,但是我要用在WEBFORM里就出现了问题.网上的所有资料都有找了,没有发现解决问题的方法.
      

  4.   

    我有现成代码 功能如下:
    提交文字,返回一个  wav文件的路径,wav文件是由服务器端根据提交的文字生成的语音文件。 
    要的话 联系邮箱 [email protected]