Какие разрешения необходимы для использования System.Speech.Synthesis?
Я использую System.Speech.Synthesis из.NET 4.5.1, чтобы сгенерировать WAV-файл из строки в Сервисе, запущенном "конкретным пользователем" (созданным при установке продуктов) без прав, кроме запуска сервисов и доступа к R/W папка, содержащая сгенерированный файл WAV.
На свежем win7sp1 x64 со всеми обновлениями вызов методов, таких как System.Speech.Synthesis.SelectVoice или System.Speech.Synthesis.Speak, завершается неудачно с InvalidOperationException
и сообщение "Нет голосовой связи в системе или ее нет с текущими настройками безопасности".
Единственный доступный голос в системе - это голос по умолчанию. Microsoft Anna - English (United States)
,
Если я запускаю службу как LocalSystem
или же Administrator
это работает хорошо.
Если я добавлю "конкретного пользователя" в Administrators
группа это тоже работает, но не если я добавлю это в любую другую "хорошо известную группу".
Но запуск службы с "конкретным пользователем" является обязательным (для других целей) и добавьте его в Administrators
группа исключена по соображениям безопасности.
Конечно, MSDN очень неуловим об этом и даже не упоминает об исключении...
Погуглив некоторое время, я был удивлен очень немногими сведениями об этом. На самом деле я нашел только один уместный ключ в вопросе Stackru о ASP.NET, который предполагает наличие минимальных прав пользователя на использование этой библиотеки: создание приложения ASP.NET, преобразующего текст в речь
По умолчанию приложения ASP.Net не запускаются с достаточными разрешениями для доступа к синтезу речи.
Я также мог бы найти некоторые вопросы, связанные с той же проблемой, но без приемлемых ответов:
Голос не установлен в системе или недоступен с текущими настройками безопасности
C# SpeechSynthesizer - "В системе не установлен голос"
Так кто-нибудь знает, какие разрешения необходимы для использования System.Speech.Synthesis
?