繁体   English   中英

转换并保存文本到语音文件

[英]convert & save text to speech file

我正在使用此代码使用System.Speech.Synthesis;使用*将文本转换并保存为语音 *但会抛出-异步操作只能在PreRenderComplete事件之前的页面上启动。 这是我的代码:

using (Stream ret = new MemoryStream())
        using (SpeechSynthesizer synth = new SpeechSynthesizer())
        {
            var mi = synth.GetType().GetMethod("SetOutputStream", BindingFlags.Instance | BindingFlags.NonPublic);
            var fmt = new SpeechAudioFormatInfo(8000, AudioBitsPerSample.Eight, AudioChannel.Mono);
            mi.Invoke(synth, new object[] { ret, fmt, true, true });
            synth.Speak("Greetings from stack overflow");
            // Testing code:
            using (var fs = new FileStream(@"c:\temp\test.wav", FileMode.Create, FileAccess.Write, FileShare.None))
            {
                ret.Position = 0;
                byte[] buffer = new byte[4096];
                for (; ; )
                {
                    int len = ret.Read(buffer, 0, buffer.Length);
                    if (len == 0) break;
                    fs.Write(buffer, 0, len);
                }
            }
        }

将此添加到页面加载中。

protected void Page_Load(object sender, EventArgs e)
{
    System.ComponentModel.AsyncOperationManager.SynchronizationContext =
        new System.Threading.SynchronizationContext();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM