C#.net 6中的TTS-系统上没有安装语音,或者当前安全设置下没有可用的语音



微软似乎希望我们使用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

我使用这个包没有问题

最新更新