System.Speech无法在Windows Azure上运行

时间:2016-01-10 13:07:39

标签: c# asp.net azure system.speech.recognition

我有ASP.Net MVC项目,我试图从System.Speech调用一些方法。在我的本地,所有工作都按预期工作,但是当我在Windows Azure中发布它时,它会抛出NullReferenceException。 这是我抛出异常的代码(第9行):

1     public async static Task<byte[]> ToSpeech(string text)
2        {
3            byte[] bytes;
4            var stream = new MemoryStream();
5            await Task.Run(() =>
6                    {
7                        using (var speech = new SpeechSynthesizer())
8                        {
9                             speech.SetOutputToWaveStream(stream);
10                            speech.Speak(text);
11                        }
12                    });
13            bytes = ConvertWavToMP3(stream);
14            return bytes;
15        }

这是抛出的异常: enter image description here

EDIT1

问题在于SpeechSynthesizer,在我的本地调用SpeechSynthesizer构造函数时,speech属性的字段正常初始化,但是当我调用cosntructor后调试发布版本时,他们已经抛出了异常。 enter image description here

1 个答案:

答案 0 :(得分:1)

这与azure无关 - 您可以在计算机上使用相同的功能。

使用USING与任务没有任何意义。您可以运行任务排队的可能条件,然后执行using语句退出 - 使速度变量无效。

这只是糟糕的代码。

你必须完成任务的run方法中的所有处理。这包括创建合成器对象。只需将字符串传递给run方法即可。