【发布时间】:2018-11-25 20:02:00
【问题描述】:
我尝试更换扬声器,但我没有在SpeechSynthesizer 类中列出所有已安装的扬声器(George、Susan、Jakub),另一方面,我有一个,但根本没有安装(Zira)。
这里发生了什么?我可以以某种方式将特定扬声器添加到我的项目中(例如作为 .dll 或其他东西)以不依赖于计算机语言/地区吗?
【问题讨论】:
标签: c# text-to-speech speechsynthesizer
我尝试更换扬声器,但我没有在SpeechSynthesizer 类中列出所有已安装的扬声器(George、Susan、Jakub),另一方面,我有一个,但根本没有安装(Zira)。
这里发生了什么?我可以以某种方式将特定扬声器添加到我的项目中(例如作为 .dll 或其他东西)以不依赖于计算机语言/地区吗?
【问题讨论】:
标签: c# text-to-speech speechsynthesizer
更新
正如@Jimi 提到的,System.Speech 和 Microsoft.Speech 是不同的,为了避免混淆,只使用其中一个应该是正确的选择。
对于 System.Speech
例如 Helen 在 en_US 包中。因此,应通过添加英语(美国)语言来下载附加语音。
对于 Microsoft.Speech
Microsoft Speech Recognition 和 Text-to-Speech 引擎数据文件可从以下链接下载;
适用于 Microsoft 支持的语言的语音识别和文本转语音引擎 https://www.microsoft.com/en-us/download/details.aspx?id=27224
更多信息:
微软语音编程指南
https://docs.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/hh378466(v%3doffice.14)
SpeechSynthesizer.SelectVoice 方法
https://docs.microsoft.com/en-us/previous-versions/office/developer/speech-technologies/dd167624(v%3Doffice.14)
System.Speech.Synthesis 命名空间
https://docs.microsoft.com/en-us/dotnet/api/system.speech.synthesis?view=netframework-4.7.2
【讨论】:
Microsoft.Speech 和 System.Speech。 OP 使用的是后者。