System.Speech 这个命名空间,报可以阅读文字和播放音频.

环境  W10 VS2017 CMMT

1.添加程序集引用 System.Speech

2.实例化播音类,并且播放一个文本

SpeechSynthesizer speech  = new SpeechSynthesizer();
// 语速[-10,10]
this.speech.Rate = -
// 音量[0,100]
//this.speech.Volume = 100
// 播放当前时间
string nowtime = DateTime.Now.ToString("yyyy年MM月dd日HH点mm分");
// 这里使用异步播放. 同步播放时,会卡死窗体(如果用WINFORM)
speech.SpeakAsync(nowtime);
// 播放完毕之后,执行一个方法
speech.SpeakCompleted += Speech_SpeakCompleted

3.播放一段音频

SpeechSynthesizer speech  = new SpeechSynthesizer();
// 建一个音频内容
PromptBuilder pb = new PromptBuilder();
// 音频地址 这个音频的格式是wav的.别的格式不行
pb.AppendAudio(path);
// 播放这个音频
speech.SpeakAsync(pb);

4.使用PromptBuilder可以自定义播放内容

 
// 实现滴滴滴后整点报时
string audiopath="didi.wav";
string starttxt = "现在时刻";
string nowtime = DateTime.Now.ToString("yyyy年MM月dd日HH点mm分");
//
PromptBuilder pb = new PromptBuilder();
// 加入滴滴滴声音
pb.AppendAudio(audiopath);
// 停顿一下
pb.AppendBreak(PromptBreak.Medium);
// 报现在时刻
pb.AppendText(starttxt);
// 再停顿一下
pb.AppendBreak(PromptBreak.Medium);
// 报时
pb.AppendText(nowtime);
return pb;

二.用NAudio可以播放wav也能播放mp3

1.用nuget下载NAudio

2.

    /// <summary>
/// 使用NAudio播放音频.支持MP3,但不支持ogg
/// </summary>
class NAuidoHelp
{
private WaveOutEvent outputDevice;
private AudioFileReader audioFile;
/// <summary>
/// 播放停止后执行一个自定义方法
/// </summary>
private Action stopPlayCallBack;
public void PlayAudio(string audiopath,Action stopHandler=null)
{
       // 播放完成之后,执行方法
if (outputDevice == null)
{
outputDevice = new WaveOutEvent();
outputDevice.PlaybackStopped += OnPlaybackStopped;
}
       // 载入音频文件
if (audioFile == null)
{
audioFile = new AudioFileReader(audiopath);
outputDevice.Init(audioFile);
}
stopPlayCallBack = stopHandler;
outputDevice.Play();
} /// <summary>
/// 播放停止事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnPlaybackStopped(object sender, StoppedEventArgs e)
{
outputDevice.Dispose();
outputDevice = null;
audioFile.Dispose();
audioFile = null;
stopPlayCallBack?.Invoke();
}
}

Speech语音播报的更多相关文章

  1. C# 使用System.Speech 进行语音播报和识别

    C# 使用System.Speech 进行语音播报和识别 using System.Speech.Synthesis; using System.Speech.Recognition; //语音识别 ...

  2. jQuery.speech实现文本转语音播报功能

    先放一个实例的地址https://github.com/wenco/speech jQuery.speech是用jQuery写的扩展插件,主要是用来语音播报. 接口调用百度翻译的接口,所以存在url参 ...

  3. SpeechLib 语音播报

    SpeechLib这的dll专门用来播放语音,能够识别英语.简体和繁体.并且可以播放声音文件,支持WAV格式,但不支持MP3.在报警场合下已经够用了. 基本播放语音及文件.支持异步. using Sy ...

  4. iOS自带TTS技术的实现即语音播报

    文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术. 一,使用iOS自带TTS需要注意的几点: iOS7之后才有该功能 需要 A ...

  5. Android 简单的语音播报

    不解释快上车 Main.class package com.example.myapp; import android.app.AlertDialog;import android.os.Bundle ...

  6. PHP实现智能语音播报

    原文地址 https://www.jianshu.com/p/91a046ec6ebc 大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很 ...

  7. iOS如何实现语音播报及后台播放

    最近项目刚刚交付,偶然间用到了语音播报和语音搜索的功能.语音搜索我用的是讯飞的demo,感觉效果还不错,感兴趣的话可以去官网上面下载demo,里面讲的特别的详细,不过稍显麻烦一些.语音播报讯飞也有de ...

  8. web 语音播报 & 网页阅读器

    web 语音播报 & 网页阅读器 Chrome auto speech & voice speaking http://3.141592653589793238462643383279 ...

  9. 语音合成,语音播报功能(系统)-b

    第一次接触语音合成,只实现了很简单的功能,记录一下,以后免得去网上四处找资料 最近在做高德地图导航的时候有个语音播报的功能,高德sdk已经提供了要语音的字符串.我要做的就是把这些字符串读出声音来即可. ...

随机推荐

  1. Python之参数类型、变量

    一.参数类型 (一)形参与实参 要使用局部变量时,只能通过return的方式返回 def my(name): #函数体 return name my('lrx') #name是形参,lrx是实参 不写 ...

  2. 【转】Word之表格、图片的题注(抬头)自动编号

    问:word中的表格怎么自动插入题注(即表头的编号自动编号)? 答: 1首先搞清楚自动编号的意思.自动插入题注的意思是,在你在word中新建或者复制一个word表格的时候,表头的编号就自动生成了,而不 ...

  3. vue的三种传参方式

    <template> <div> <router-link :to="{'name':'x',params:{'type':'users'}}"> ...

  4. spring boot中log4j冲突问题和解决办法

    Spring Boot中自带了log4j日志管理.写法应该是: private static final Logger logger = Logger.getLogger(XXX.class); 而不 ...

  5. java设计模式:概述与GoF的23种设计模式

    软件设计模式的产生背景 设计模式这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977 年,美国著名建筑大师.加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Chri ...

  6. Linux上的一些基本常用命令

    上传下载文件:// 首先安装lrzsz # yum -y install lrzsz // 上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可.# rz // 下载文件,执行命令sz ...

  7. Kettle 变量(arg位置参数)

    1.表输入中使用?占位作为kettle转换变量 数据预览: 获取变量数据: 使用?传入变量 需要勾选替换sql语句中的变量,并选则从步骤插入数据中所在步骤 数据预览

  8. k8s HPA自动收缩

    HPA自动收缩 autoscale 自动调整一个 Deployment, ReplicaSet, 或者 ReplicationController 的副本数量 #创建一个replicaset测试 [r ...

  9. React Native & Android & iOS

    React Native & Android & iOS React Native & Android & iOS https://facebook.github.io ...

  10. 在页面中有overflow-y:auto属性的div,当出现滚动条,点击返回顶部按钮,内容回这个div最顶部

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...