首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# SpeechSynthesizer使服务无响应

C# SpeechSynthesizer使服务无响应
EN

Stack Overflow用户
提问于 2011-01-13 00:24:18
回答 2查看 3.5K关注 0票数 6

我有下面的代码

代码语言:javascript
复制
[WebMethod]
public byte[] stringToWav(string text)
{
    SpeechSynthesizer ss = new SpeechSynthesizer();
    MemoryStream ms = new MemoryStream();
    ss.SetOutputToWaveStream(ms);
    ss.Speak(text);
    return ms.ToArray();
}

并且该服务不返回任何内容。知道为什么会这样吗?

EN

回答 2

Stack Overflow用户

发布于 2011-04-09 03:35:44

我在一个ashx页面上遇到了同样的问题。

我不明白确切的原因,但似乎你需要使用一个单独的线程,并等待它完成。

以下代码适用于我:

代码语言:javascript
复制
public byte[] TextToBytes(string textToSpeak)
{
    byte[] byteArr = null;

    var t = new System.Threading.Thread(() =>
    {
        SpeechSynthesizer ss = new SpeechSynthesizer();
        using (MemoryStream memoryStream = new MemoryStream())
        {
            ss.SetOutputToWaveStream(memoryStream);
            ss.Speak(textToSpeak);
            byteArr = memoryStream.ToArray();
        }
    });
    t.Start();
    t.Join();
    return byteArr;
}
票数 7
EN

Stack Overflow用户

发布于 2011-01-13 00:27:42

您是否调试并检查了ms.ToArray()的值?使用ms.ToByteArray()可能会有更好的运气。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4671158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档