4

我正在使用.NET 4.5.1 中的System.Speech.Synthesis从“特定用户”(由产品设置创建)运行的服务中的字符串生成 WAV 文件,该用户没有权限但正在运行服务和 R/W 访问包含生成的 WAV 文件的文件夹。

在具有所有升级的全新 win7sp1 x64 上,调用System.Speech.Synthesis.SelectVoiceSystem.Speech.Synthesis.Speak等方法失败InvalidOperationException并显示“系统上未安装语音或当前安全设置没有可用语音”。

系统中唯一可用的语音是默认语音Microsoft Anna - English (United States)

如果我运行该服务,LocalSystem或者Administrator它运行良好。

如果我将“特定用户”添加到Administrators组中,它也可以工作,但如果我将它添加到任何其他“知名组”中则不会。

Administrators但是使用“特定用户”运行服务是强制性的(用于其他用途),出于安全原因,将其添加到组中被排除在外。

当然 MSDN 对此非常难以捉摸,甚至没有提到例外......

谷歌搜索了一段时间,我对关于它的极少信息感到惊讶。事实上,我在关于 ASP.NET 的 Stackoverflow 问题中只发现了一个相关线索,这表明使用这个库需要一些最低限度的用户权限: 创建将文本转换为语音的 ASP.NET 应用程序

默认情况下,ASP.Net 应用程序运行时没有足够的权限来访问语音合成

我还可以找到一些与同一问题相关的问题,但没有可接受的答案:

System.Speech 在 Windows 服务中引发“系统上未安装语音或当前安全设置不可用”异常

系统上未安装语音或当前安全设置不可用

C# SpeechSynthesizer - “系统上没有安装语音”

那么有人知道使用需要什么权限System.Speech.Synthesis吗?

4

0 回答 0