语音朗读

来源:CSDN 发布时间:Nov 16, 2020, 6:58:08 PM 原地址:https://blog.csdn.net/qq_41708190/article/details/109729609

Text-To-Speech(TTS)技术,也叫语音合成技术,可以使用内置的语音引擎将文本转换为语音的过程。通俗一点说,就是文本朗读功能。

Windows.Media.SpeechSynthesis命名空间对TTS提供支持,而且使用起来也非常简单。实例化SpeechSynthesizer对象后,接着调用SynthesizeTextToStreamAsync方法即可根据给定的文本生成语句音流,保存在SpeechSynthesisStream实例中,随后就可以对生成的语音数据进行按需处理了(如播放、保存到文件等)。

下面通过一个示例来说明如何简单实现文本朗读功能。

应用程序页面的XAML代码如下:

    <StackPanel>
        <TextBox x:Name="txtInput" Header="请输入文本:" TextWrapping="Wrap"/>
        <Button x:Name="btn" Content="开始朗读" Tapped="btn_Tapped"/>
        <MediaElement x:Name="me" AutoPlay="True" Volume="1.0"/>
    </StackPanel>

TextBox控件用于输入待朗读的文本,MediaElement控件用于在语音数据生成后进行播放。

下面代码处理按钮的Click事件:

        private async void btn_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (txtInput.Text.Length == 0)
            {
                return;
            }
            btn.IsEnabled = false;
            SpeechSynthesizer synthesizer = new SpeechSynthesizer();
            SpeechSynthesisStream stream = await synthesizer.SynthesizeTextToStreamAsync(txtInput.Text);
            //播放生成的语音
            me.SetSource(stream,stream.ContentType);
            btn.IsEnabled = true;
        }

运行应用程序,在文本框中输入测试文本,然后点击"开始朗读"按钮,就能听到系统合成的语音内容了。