win10 uwp 字符文本转语音声音文件方法

在 UWP 中,支持将传入的字符串文本内容转换为音频语音,可以将这个语音声音通过 MediaElement 播放,或者将这个音频保存到文件里面

本文的方法是通过 SpeechSynthesizer 类提供的将 文本字符串 转换为 wav 的 Stream 对象实现的

核心的转换字符文本作为音频 Stream 代码如下

using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())
{
    SpeechSynthesisStream stream = await synthesizer.SynthesizeTextToStreamAsync(word);
}

上面代码的 word 就是传入的字符串文本,可以是一个单词也可以是一个句子或一段话

在 UWP 中使用如上面代码就可以用到 UWP 自带的语音合成技术的将文本转换为语音的功能

在拿到 SpeechSynthesisStream 之后,可以进行播放或者保存到文件

进行播放时需要使用到 MediaElement 控件,在 XAML 中先添加 MediaElement 控件,代码如下

        <MediaElement x:Name="MediaElement"></MediaElement>

在后台代码通过 SetSource 方法可以设置如上的音频对象进行博客

     MediaElement.SetSource(stream, stream.ContentType);
     MediaElement.Play();

默认的 stream.ContentType 就是 wav 格式

而保存到音频数据到文件可以采用如下方法

using (var wordFileStream = await wordFile.OpenStreamForWriteAsync())
{
    await stream.AsStreamForRead().CopyToAsync(wordFileStream);
}

在上面代码中的 wordFile 是一个 StorageFile 对象,可以通过用户选择等方式获取

本文代码放在 github 欢迎小伙伴访问

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值