写点什么

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

作者:喵叔
  • 2022 年 1 月 08 日
  • 本文字数:711 字

    阅读完需:约 2 分钟

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。

发布于: 刚刚阅读数: 2
用户头像

喵叔

关注

还未添加个人签名 2020.01.14 加入

还未添加个人简介

评论

发布
暂无评论
C#使用原生方法将文字朗读出来