我使用.NET 4.5.1中的System.Speech.Synthesis从特定用户运行的服务中的字符串生成WAV文件" (由产品设置创建)没有权限,但运行服务和R / W访问包含生成的WAV文件的文件夹。
在包含所有升级的全新win7sp1 x64上,System.Speech.Synthesis.SelectVoice或System.Speech.Synthesis.Speak等调用方法失败并显示InvalidOperationException
和消息"系统上未安装任何语音,或者没有语音可用当前的安全设置"。
系统中唯一可用的语音是默认语音Microsoft Anna - English (United States)
。
如果我将服务作为LocalSystem
或Administrator
运行,则效果很好。
如果我添加"特定用户"它也适用于Administrators
组,但如果我将其添加到任何其他"众所周知的组中,则不会。#/ p>
但是使用"特定用户运行服务"是强制性的(用于其他用途)并且出于安全原因将其添加到Administrators
组中。
当然MSDN对此非常难以捉摸,甚至没有提到异常...
谷歌搜索了一会儿,我对它的极少数信息感到惊讶。事实上,我发现只有一个关于ASP.NET的Stackoverflow问题的相关线索表明有一些最小的用户权限来使用这个库: Creating a ASP.NET application converting text to speech默认情况下,ASP.Net应用程序无法以足够的权限运行语音合成
我还可以找到一些与同一问题相关的问题,但没有可接受的答案:
No voice installed on the system or none available with the current security setting
C# SpeechSynthesizer - "No voice installed on the system"
所以有人知道使用System.Speech.Synthesis
需要哪些权限?