C#实现语音播报功能
作者:jackletter 发布时间:2023-06-26 20:35:26
标签:C#,语音播报
本文实例为大家分享了C#实现语音播报功能的具体代码,供大家参考,具体内容如下
环境:
window10
vs2019 16.5.5
.netframework4.5
一、关于语音播报
语音播报的功能属于操作系统自带的。win7和win10都自带,部分win7 * 版系统没有这项功能会导致运行报错:
检索 COM 类工厂中 CLSID 为 {D9F6EE60-58C9-458B-88E1-2F908FD7F87C} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
查看自己电脑是否支持语音播报功能,可以参考如下:
二、C#代码
直接新建个控制台程序,添加System.Speech.dll引用:
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Speech.Synthesis;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp9
{
class Program
{
static void Main(string[] args)
{
SpeechSynthesizer speech = new SpeechSynthesizer();
Console.Write("请输入文字:");
string str = Console.ReadLine();
try
{
if (string.IsNullOrEmpty(str))
{
speech.Speak("请输入文字");
}
else
{
speech.Speak(str);
}
}
catch (Exception ex)
{
Console.WriteLine($"报错:{ex?.Message}");
}
Console.WriteLine("ok");
Console.ReadLine();
}
}
}
运行后,带好耳机,查看效果:
来源:https://blog.csdn.net/u010476739/article/details/106192826


猜你喜欢
- Android 判断SIM卡属于哪个移动运营商第一种方法:获取手机的IMSI码,并判断是中国移动\中国联通\中国电信TelephonyMan
- 哎,最近很好久没写点东西了,由于工作的原因,接触公司自己研发的底层orm框架,偶然发现该框架在调用jdbc操作的时候参考的是hibernat
- 最近ui同学使用了一种新字体(锐字锐线怒放黑简) 发现全部切成图片字体 吓死我了unity3d和fairygui搭配使用字体过程1.第一步肯
- 简介Java注解是JDK1.5引入的一种注释机制,它不会改变编译器的编译方式,Java编译器对包含注解和不包含注解的代码会生成相同的Java
- 目录关于日志级别为什么选用log4j2排除 spring-boot 自带的 logback 依赖添加 log4j2 依赖配置文件节点解析根节
- 最新idea2020安装部署超详细教程懂得懂的2020.32020.2.42020.2.32020.2.220.2.12019.32018.
- 今天给大家分享纯注解版spring与mybatis的整合mybatis包下:有这几个,上面图片没有展开配置Bean:MyBatisAutoC
- 强调一下阅读系统源码,起码要对进程间通信要了解,对binder机制非常非常清楚,binder就是指南针,要不然你会晕头转向;强行阅读,就容易
- 使用第三方的vitamio插件实现简易的播放器。vitamio版本(5.2.3)官网地址:官网地址效果展示效果项目结构代码:MainActi
- 1. 前言Compose 具有超强的兼容性,兼容现有的所有代码,Compose 能够与现有 View 体系并存,可实现渐进式替换。这就很有意
- 本文实例讲述了spring AOP的After增强实现方法。分享给大家供大家参考,具体如下:一 配置<?xml version=&qu
- AutoRestEvent 类用于从一个线程向另一个线程发送通知。微软文档是这样介绍的:表示线程同步事件在一个等待线程释放后收到信号时自动重
- 近来总是接触到 IoC(Inversion of Control,控制反转)、DI(Dependency Injection,依赖注入)等编
- Java GC 机制与内存分配策略详解收集算法是内存回收的方 * ,垃圾收集器是内存回收的具体实现自动内存管理解决的是:给对象分配内存 以及
- 一般而言,Spring的依赖注入有三种:构造器注入、setter注入以及接口注入。本文主要讲构造器注入与setter注入。1、构造器注入为了
- 一、熔断器简介微服务架构特点就是多服务,多数据源,支撑系统应用。这样导致微服务之间存在依赖关系。如果其中一个服务故障,可能导致系统宕机,这就
- 安装容易出现的问题以及解决方法:1、更新sdk时可能无法连接服务器,可在C:\WINDOWS\system32\drivers\etc下的h
- 问题描述设有n个会议的集合C={1,2,…,n},其中每个会议都要求使用同一个资源(如会议室),而在同一时间内只能有一
- 废话开篇:iOS与android在实现列表界面的时候是有重用机制的,目的就是减少内存开销,用时间换空间。个人感觉flutter并没有特别强调
- 本文实例讲述了C++语言实现线性表之链表实现方法。分享给大家供大家参考。具体分析如下:插入、删除结点的代码有点多,但这样提高了代码的可读性,