C# 无法使用SpeechSynthesizer选择语音。SelectVoice()方法
我正在尝试制作一个文本到语音的应用程序,在这个应用程序中,我可以通过一个组合框选择语音,并用该语音读出一些文本 我使用以下命令获取可用语音的名称以填充组合框:C# 无法使用SpeechSynthesizer选择语音。SelectVoice()方法,c#,select,voice,speech,synthesis,C#,Select,Voice,Speech,Synthesis,我正在尝试制作一个文本到语音的应用程序,在这个应用程序中,我可以通过一个组合框选择语音,并用该语音读出一些文本 我使用以下命令获取可用语音的名称以填充组合框: private List<String> getInstalledVoices() { var installedVoices = new List<String>(); using (SpeechSynthesizer synth = new SpeechSynt
private List<String> getInstalledVoices()
{
var installedVoices = new List<String>();
using (SpeechSynthesizer synth = new SpeechSynthesizer())
{
foreach (InstalledVoice voice in synth.GetInstalledVoices())
{
installedVoices.Add(voice.VoiceInfo.Name);
}
}
return installedVoices;
}
我做错了什么
安装的声音-
名称:Microsoft Hazel桌面
文化:欧洲国家标准
年龄:成人
性别:女
说明:Microsoft Hazel桌面-英语(英国)
ID:TTS\U MS\U EN-GB\U HAZEL\U 11.0
已启用:True
找不到支持的音频格式
附加信息-年龄:成人
性别:女
语文:809
名称:Microsoft Hazel桌面
共享声明:
SpLexicon:{0655E396-25D0-11D3-9C26-00C04F8EF87C}
供应商:微软
版本:11.0
名称:eSpeak en+f2
文化:美国
年龄:成人
性别:男
说明:eSpeak EN+F2
ID:eSpeak_1
已启用:True
找不到支持的音频格式
其他信息-名称:eSpeak en+f2
性别:男
年龄:成人
语文:409
供应商:
姓名:eSpeak en us
文化:美国
年龄:成人
性别:男
描述:美国埃斯皮克
ID:eSpeak_2
已启用:True
找不到支持的音频格式
其他信息-名称:eSpeak en us
性别:男
年龄:成人
语文:409
供应商:
姓名:eSpeak en
文化:美国
年龄:成人
性别:男
描述:eSpeak EN
ID:eSpeak
已启用:True
找不到支持的音频格式
其他信息-名称:eSpeak en
性别:男
年龄:成人
语文:409
供应商:
名称:Microsoft David Desktop
文化:美国
年龄:成人
性别:男
说明:Microsoft David Desktop-英语(美国)
ID:TTS_MS_EN-US_DAVID_11.0
已启用:True
找不到支持的音频格式
附加信息-年龄:成人
性别:男
语文:409
名称:Microsoft David Desktop
共享声明:
SpLexicon:{0655E396-25D0-11D3-9C26-00C04F8EF87C}
供应商:微软
版本:11.0
名称:Microsoft Zira桌面
文化:美国
年龄:成人
性别:女
说明:Microsoft Zira桌面-英语(美国)
ID:TTS_MS_EN-US_ZIRA_11.0
已启用:True
找不到支持的音频格式
附加信息-年龄:成人
性别:女
语文:409
名称:Microsoft Zira桌面
共享声明:
供应商:微软
版本:11.0
姓名:大众朱莉
文化:美国
年龄:成人
性别:女
描述:大众朱莉
ID:VW Julie
已启用:True
找不到支持的音频格式
附加信息-年龄:成人
性别:女
语文:409;9
供应商:语音软件
姓名:VW Julie拥有多个可用语音是非常不寻常的,操作系统只提供一个。通过描述你看到的其他产品以及你在哪里购买的产品来获得成功。@HansPassant我已经更新了我的帖子。(我可以在第三方TTS应用程序中使用这些其他语音)
private void speak(String toSpeak)
{
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SelectVoice(voiceSelectionBox.SelectedItem.ToString());
PromptBuilder promptBuilder = new PromptBuilder();
promptBuilder.AppendText(toSpeak);
synth.SpeakAsync(promptBuilder);
}