【问题标题】:Windows Phone 8.1 vocal synthesisWindows Phone 8.1 人声合成
【发布时间】:2015-04-14 22:08:26
【问题描述】:

我有问题。

在我的 Windows Phone 8.1 应用程序中,我将实现一个按钮功能,以便我的手机(通过语音)告诉“hello world”。我已经在网上搜索了几十个解决方案,结果:该指令不适用于Win 8.1;该指令需要外部资源;该指令给了我很多错误。

请问,您有一个简单的代码来执行此操作吗?提前致谢!

【问题讨论】:

  • 请附上代码和你已经厌倦的东西来帮助别人帮助你。

标签: c# windows-phone-8.1 voice


【解决方案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);
        }
    }

【讨论】:

  • 我为这次延误道歉,但我不在电脑前。谢谢你的回答,但它不起作用。如果我完全尝试您的代码,我会看到一条错误消息“myApp.exe WinRT 信息中出现‘System.UnauthorizedAccessException’类型的第一次机会异常:访问被拒绝。”为什么?谢谢。
  • 解决了!问题是启用麦克风访问。谢谢!
【解决方案2】:

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

更多信息我建议观看MVA课程的第二课Universal Windows App Development with Cortana and the Speech SDK

【讨论】:

  • 我还没有找到解决方案,我已经尝试了很多代码(见上一个答案)但它不起作用。你能帮助我吗?谢谢!
  • 解决了!问题是启用麦克风访问。谢谢!
猜你喜欢
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多