无法使用SpeechSynthesizer.SelectVoice()方法选择语音

时间:2018-06-21 15:25:00

标签: c# select voice speech synthesis

我正在尝试创建一个文本到语音的应用程序,在这里我可以通过组合框选择语音并以该语音读出一些文本。

我通过使用以下命令获取可用声音的名称来填充组合框:

    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;
    }

然后我将组合框的DataSource属性设置为结果列表。

现在,我的问题是,当涉及到实际阅读文本时,无论选择什么,它都只会以一种声音读出。使用调试器,我可以看到当程序到达synth.SpeakAsync()时,合成器的声音已正确设置为正确的值,但是读出时声音不会改变。

我没有任何错误或任何东西!

    private void speak(String toSpeak)
    {
        SpeechSynthesizer synth = new SpeechSynthesizer();
        synth.SelectVoice(voiceSelectionBox.SelectedItem.ToString());
        PromptBuilder promptBuilder = new PromptBuilder();
        promptBuilder.AppendText(toSpeak);
        synth.SpeakAsync(promptBuilder);            
    }

我在做什么错?!

已安装的声音-  名称:Microsoft Hazel Desktop  文化:en-GB  年龄:成人  性别女  说明:Microsoft Hazel Desktop-英语(英国)  ID:TTS_MS_EN-GB_HAZEL_11.0  启用:真  找不到支持的音频格式  附加信息-年龄:成人   性别女   语言:809   名称:Microsoft Hazel Desktop   共享的发音:   SpLexicon:{0655E396-25D0-11D3-9C26-00C04F8EF87C}   供应商:Microsoft   版本:11.0

名称:eSpeak-en + f2  文化:美国  年龄:成人  性别:男  说明:eSpeak-EN + F2  ID:eSpeak_1  启用:真  找不到支持的音频格式  附加信息-名称:eSpeak-en + f2   性别:男   年龄:成人   语言:409   供应商:http://espeak.sf.net

名称:eSpeak-en-us  文化:美国  年龄:成人  性别:男  说明:eSpeak-EN-US  ID:eSpeak_2  启用:真  找不到支持的音频格式  附加信息-名称:eSpeak-en-us   性别:男   年龄:成人   语言:409   供应商:http://espeak.sf.net

名称:eSpeak-en  文化:美国  年龄:成人  性别:男  说明:eSpeak-EN  ID:eSpeak  启用:真  找不到支持的音频格式  附加信息-名称:eSpeak-en   性别:男   年龄:成人   语言:409   供应商:http://espeak.sf.net

名称:Microsoft David Desktop  文化:美国  年龄:成人  性别:男  说明:Microsoft David Desktop-英文(美国)  ID:TTS_MS_EN-US_DAVID_11.0  启用:真  找不到支持的音频格式  附加信息-年龄:成人   性别:男   语言:409   名称:Microsoft David Desktop   共享的发音:   SpLexicon:{0655E396-25D0-11D3-9C26-00C04F8EF87C}   供应商:Microsoft   版本:11.0

名称:Microsoft Zira Desktop  文化:美国  年龄:成人  性别女  说明:Microsoft Zira Desktop-英文(美国)  ID:TTS_MS_EN-US_ZIRA_11.0  启用:真  找不到支持的音频格式  附加信息-年龄:成人   性别女   语言:409   名称:Microsoft Zira Desktop   共享的发音:   供应商:Microsoft   版本:11.0

名称:大众朱莉  文化:美国  年龄:成人  性别女  说明:大众朱莉  ID:大众朱莉  启用:真  找不到支持的音频格式  附加信息-年龄:成人   性别女   语言:409; 9   供应商:语音软件   姓名:大众朱莉

0 个答案:

没有答案