2025年3月24日 星期一 甲辰(龙)年 月廿三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > .net

C#使用System.Speech朗读文本

时间:02-03来源:作者:点击数:22

System.Speech 命名空间提供了在 WinForms 应用程序中进行语音合成(TTS)的功能。您可以使用 System.Speech 中的类和方法来读取文本并将其转换为语音。

nuget 安装System.Speech

常用属性和方法

以下是 System.Speech 命名空间中一些常用的属性和方法:

SpeechSynthesizer 类

SpeakAsync:异步将指定的文本转换为语音并播放。

用于将指定的文本转换为语音并进行播放。该方法是异步的,它会立即返回,而不会等待语音播放完成。

Speak:将指定的文本转换为语音并播放。

Volume:获取或设置语音合成器的音量级别。

Volume 属性用于获取或设置语音合成器的音量级别。它的取值范围是从 0 到 100,默认值为 100。

Rate:获取或设置语音合成器的语速。

Rate 属性用于获取或设置语音合成器的语速。它的取值范围是从 -10 到 10,默认值为 0。负值表示较慢的语速,正值表示较快的语速。

SelectVoice:选择要用于语音合成的语音。

方法用于选择要用于语音合成的语音。可以通过传递语音的名称或标识符来选择语音。如果没有指定语音,系统将使用默认语音。

System.Speech使用示例

以下是在 WinForms 中使用 System.Speech 进行文本转语音的示例:

  • public partial class Form1 : Form
  • {
  • private SpeechSynthesizer synthesizer;
  • public Form1()
  • {
  • InitializeComponent();
  • // 初始化语音合成器
  • synthesizer = new SpeechSynthesizer();
  • // 选择中文语音
  • synthesizer.SelectVoiceByHints(VoiceGender.Female
  • , VoiceAge.Adult, 0, new System.Globalization.CultureInfo("zh-CN"));
  • // 设置音量和语速
  • synthesizer.Volume = 100;
  • synthesizer.Rate = 0;
  • }
  • private void btnPlay_Click(object sender, EventArgs e)
  • {
  • // 将文本转换为语音并播放
  • synthesizer.SpeakAsync(txtValue.Text);
  • }
  • protected override void OnFormClosing(FormClosingEventArgs e)
  • {
  • // 关闭语音合成器
  • synthesizer.Dispose();
  • base.OnFormClosing(e);
  • }
  • }
C#使用System.Speech朗读文本

请确保您的系统上已安装中文语音包,并且可以通过 SelectVoiceByHints 方法选择到中文语音。如果您的系统上没有中文语音包,您可以尝试安装或更新语音包,或者使用其他支持中文的语音合成引擎。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门