Windows Phone 8.1声乐合成

时间:2015-04-13 20:11:49

标签: c# windows-phone-8.1 voice

我有一个问题。

在我的Windows Phone 8.1应用程序中,我会实现一个按钮功能,这样我的手机就可以告诉你"你好世界" (通过声音)。我已经在网上搜索了几十个解决方案,结果是:该指令对Win 8.1没有好处;指令需要外部资源;该指令给了我很多错误。

请你有一个简单的代码吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

这适用于Windows Phone 8.1,有关Speech Synthesizer

的更多信息
    private async void TextToSpeech(string textToReadAloud)
    {
        SpeechSynthesizer ttssynthesizer = new SpeechSynthesizer();

        //Set the Voice & Speaker
        using (var speaker = new SpeechSynthesizer())
        {
            speaker.Voice = (SpeechSynthesizer.AllVoices.First(x => x.Gender == VoiceGender.Female));
            ttssynthesizer.Voice = speaker.Voice;
        }

        SpeechSynthesisStream ttsStream = await ttssynthesizer.SynthesizeTextToStreamAsync(textToReadAloud);
        MediaElement.SetSource(ttsStream, "");  
    }

注意MediaElement可以绑定到xaml中的内容控件。

            <ContentControl HorizontalAlignment="Left"         
            Width="320" Height="140" Content="{Binding MediaElement}"/>

在视图模型中声明的媒体元素。

    private MediaElement _mediaElement = new MediaElement();

    public MediaElement MediaElement
    {
        get
        {
            return _mediaElement;
        }
        set
        {
            Set(() => MediaElement, ref _mediaElement, value);
        }
    }

答案 1 :(得分:0)

您是否尝试过使用Windows.Media.SpeechSynthesis.SpeechSynthesizer

有关更多信息,我建议您观看MVA课程Universal Windows App Development with Cortana and the Speech SDK

中的第二课