C#使用原生方法将文字朗读出来

最近在开发中需要将文字播报出来,虽然目前像百度腾讯这类大厂都提供有API/SDK,但是都需要注册账号、申请API/SDK权限和最终上线正式使用。我参与的这项目是一个小项目,如果使用网上提供的开发API/SDK的话略嫌麻烦,并且需要联网(博主做的是C/S离线项目),经过翻阅微软文档发现了 .NET 内部已经提供了文字转语音的方法。下面我分享出来。


.NET 内部提供的文字转语音方法位于 System.Speech.Synthesis 命名空间下,使用起来也比较简单,只需传入要朗读的内容即可。下面是使用代码:

using System;
using System.Speech.Synthesis;
namespace Test
{
    internal class Program
    {
        
        static void Main(string[] args)
        {
            string message = "你好,喵叔,我是语音信息!";
            ReadAloud(message);
            Console.ReadLine();
        }
        private static void ReadAloud(string message)
        {
            SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
            speechSynthesizer.Volume = 100;
            speechSynthesizer.Rate = 10;
            speechSynthesizer.SpeakAsync(message);
        }
    }
}

在上面的代码中我们将定义的 message 传入 SpeechSynthesizer 类的 SpeakAsync 方法里来实现阅读文字。其中 Volume 属性是用来设置朗读音量的,它的取值范围是[0-100],Rate 属性用来设置朗读速度,取值范围在[-10,10],值越小朗读速度约慢。这段代码只能在 .NET Framework 框架下运行,如果要在 .NET Core 、.NET5 和 .NET6 框架下运行的话,因为没有内置的文字朗读方法,因此我们仍需要调用第三方提供的文字朗读API/SDK。


上一篇:ORACLE 查看ASM磁盘组信息常用SQL


下一篇:SQL Server解决孤立用户浅析