微软似乎希望我们使用Azure Cognitive API,但我的应用程序只是一个本地应用程序,我想运行它来帮助我完成任务。
System.Speech在.NET6中已不存在。
我下载了Speech SDK,它使我可以访问Microsoft.Speech。我在项目中添加了对DLL的引用。
这一切都很好,但我收到了错误消息:
No voice installed on the system or none available with the current security setting.
using System;
using Microsoft.Speech.Synthesis;
SpeechSynthesizer ssTest = new SpeechSynthesizer();
System.Diagnostics.Debug.WriteLine(ssTest.GetInstalledVoices().Count);
当我进入控制面板(语音设置(时,有几个声音已经安装并工作。
我查看了这里的几个旧答案,检查了正确的注册表设置,重新安装了SDK,以及语音运行时,但到目前为止没有任何帮助。
我还尝试以管理员身份运行该应用程序。同样的结果。
知道我能做些什么来解决这个问题吗?
对我来说,您有32/64位应用程序的问题
你可以检查安装的语音:
键入窗口终端
C:WindowsSysWOW64SpeechSpeechUXsapi.cpl
(应用程序32位(
或
C:WindowsSystem32SpeechSpeechUXsapi.cpl
(应用程序64位(
System32是64位Windows系统目录,SysWOW64是32位Windows系统的目录(与目录名称完全相反(
如果你安装了语音,可能是dll真的与net6不兼容…所以我看到的唯一解决方案是使用net6应用程序中的语音sdk为你的应用程序创建一个包装器。。
编辑
另一种解决方案是在nuget 上安装麻省理工学院开发的nuget包System.Speech 6.0.0
我使用这个包没有问题