在WinRT设备上使用语音合成时出现未授权访问异常

本文关键字:授权 异常 访问 语音合成 WinRT | 更新日期: 2023-09-27 18:00:54

我有一个C#Windows应用商店应用程序,它可以获得一个系统。每当我尝试使用语音合成时出现未经授权的访问异常:

       SpeechSynthesisStream stream = await this._tts.SynthesizeTextToStreamAsync("Hello ragdoll man!");
        // Send the stream to the media object.
        this._mediaElement.SetSource(stream, stream.ContentType);
        this._mediaElement.Play();

当我调用SynthesizeTextToStreamAsync((时,异常出现在第一行。这不是一个软件包清单功能问题,就像一些人在WindowsPhone8:上遇到的那样

初始化SpeechSynthesizer 时出现UnauthorizedAccessException

我这么说是因为首先,Windows应用商店应用程序清单没有ID_CAP_SPEECH_RECOGNITION功能,其次,作为测试,我检查了功能选项卡上的所有可用功能框,但我仍然得到异常。

是什么导致了这个错误,我该如何修复它?

在WinRT设备上使用语音合成时出现未授权访问异常

在一个新的空Windows 8.1应用程序项目中,这对我来说很好:

private async void UIElement_OnTapped(object sender, TappedRoutedEventArgs e)
{
    // The media object for controlling and playing audio.
    MediaElement mediaElement = this.media;
    // The object for controlling the speech synthesis engine (voice).
    var synth = new SpeechSynthesizer();
    // Generate the audio stream from plain text.
    SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World");
    // Send the stream to the media object.
    mediaElement.SetSource(stream, stream.ContentType);
    mediaElement.Play();
}