微信公众号中看到一篇介绍微软语音合成和语音识别模块System.Speech的文章(地址见参考文献1,百度没有搜出来对应的文章地址)。本文简单测试一下语音合成功能的用法。
新建Winform项目,在NuGet管理器中搜索并安装System.Speech模块,如下图所示。
将文字转为语音,没有特殊要求的话,几行代码就可以搞定,如下所示.SpeechSynthesizer提供对已安装的语音合成引擎的功能的访问,创建该类的实例对象,设置使用默认的系统声音,然后调用Speak(同步)、SpeakAsync(异步)等函数发声。测试程序的截图如下所示。
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SetOutputToDefaultAudioDevice();
synth.SpeakAsync(txtContent.Text);
SpeechSynthesizer默认使用的声音是成年女性的声音,如果要使用其它声音,可以用PromptBuilder配置,该类中提供了很多函数用于配置语言,目前还没有仔细看,准备后面再学习。
参考文献:
[1]微信公众号:翔星,文章名称:.NET 3行代码实现文字转语音功能
[2]https://docs.microsoft.com/zh-cn/dotnet/api/system.speech.synthesis.speechsynthesizer?view=netframework-4.8