在 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/post/win10-uwp-%E5%AD%97%E7%AC%A6%E6%96%87%E6%9C%AC%E8%BD%AC%E8%AF%AD%E9%9F%B3%E5%A3%B0%E9%9F%B3%E6%96%87%E4%BB%B6%E6%96%B9%E6%B3%95.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者收藏我的博客导航
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。
无盈利,不卖课,做纯粹的技术博客
以下是广告时间
推荐关注 Edi.Wang 的公众号
欢迎进入 Eleven 老师组建的 .NET 社区
以上广告全是友情推广,无盈利