Speech语音播报
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语音播报的更多相关文章
- C# 使用System.Speech 进行语音播报和识别
C# 使用System.Speech 进行语音播报和识别 using System.Speech.Synthesis; using System.Speech.Recognition; //语音识别 ...
- jQuery.speech实现文本转语音播报功能
先放一个实例的地址https://github.com/wenco/speech jQuery.speech是用jQuery写的扩展插件,主要是用来语音播报. 接口调用百度翻译的接口,所以存在url参 ...
- SpeechLib 语音播报
SpeechLib这的dll专门用来播放语音,能够识别英语.简体和繁体.并且可以播放声音文件,支持WAV格式,但不支持MP3.在报警场合下已经够用了. 基本播放语音及文件.支持异步. using Sy ...
- iOS自带TTS技术的实现即语音播报
文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术. 一,使用iOS自带TTS需要注意的几点: iOS7之后才有该功能 需要 A ...
- Android 简单的语音播报
不解释快上车 Main.class package com.example.myapp; import android.app.AlertDialog;import android.os.Bundle ...
- PHP实现智能语音播报
原文地址 https://www.jianshu.com/p/91a046ec6ebc 大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很 ...
- iOS如何实现语音播报及后台播放
最近项目刚刚交付,偶然间用到了语音播报和语音搜索的功能.语音搜索我用的是讯飞的demo,感觉效果还不错,感兴趣的话可以去官网上面下载demo,里面讲的特别的详细,不过稍显麻烦一些.语音播报讯飞也有de ...
- web 语音播报 & 网页阅读器
web 语音播报 & 网页阅读器 Chrome auto speech & voice speaking http://3.141592653589793238462643383279 ...
- 语音合成,语音播报功能(系统)-b
第一次接触语音合成,只实现了很简单的功能,记录一下,以后免得去网上四处找资料 最近在做高德地图导航的时候有个语音播报的功能,高德sdk已经提供了要语音的字符串.我要做的就是把这些字符串读出声音来即可. ...
随机推荐
- Vue-router路由使用,单页面的实现
1.安装路由系统 NPM npm install vue-router 2.在main.js中进入引用 import VueRouter from 'vue-router' 3.创建三个空的组件: V ...
- Linux之磁盘挂载
1.查看磁盘分区情况: fdisk -l 可以看到,红框中的硬盘没有分区. 2.开始分区: fdisk /dev/vdb 3.格式化分区: mkfs.xfs 分区名 4.挂载磁盘 挂载方式1: 手动挂 ...
- 使用css控制文字显示几行并且剩余部分隐藏(移动端和PC端同样适用)
前言 有些需求需要我们控制一段文本最多显示几行,就像逛淘宝京东的评价楼层一样,有时可能还需要隐藏剩余部分,这样的需求我们怎么来解决呢? 解决办法 我们完全可以使用css来解决这一需求 1. 解决文本显 ...
- 6-2 Verbs and Adjectives with that clauses
1 Many sentences in English contain two clauses: a main clause and a "that" clause. The &q ...
- Oracle可视化工具PL/SQL Developer的安装与配置
安装程序: 安装目录不能有中文和空格,否则无法进行远程连接. 推荐使用 D:\PLSQLDeveloper 为安装目录 破解PLSQLDeveloper 使用工具 PLSQL Developer10. ...
- Angular MVC
<!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta ...
- RPC框架-RMI、RPC和CORBA的区别
关键词:RMI RPC CORBA简 介:本篇文章重点阐述RMI,附带介绍RPC和CORBA Java远程方法调用(Java RMI)是一组实现了远程方法调用(rmi)的API. java RMI是远 ...
- django之路由层
一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 一 Django中路由的作用 URL配置(URLconf) ...
- 关于WPF中Popup中的一些用法的总结
Popup控件是一个常用的非常有用的控件,顾明思义就是弹出式控件,首先我们来看看MSDN对它的解释吧,表示具有内容的弹出窗口,这个是非常重要的控件,我们看看它的继承关系吧: System.Object ...
- WPF Image控件的绑定
在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图片,设置Image的source属性时可以使用相对路径也可以使用绝对路径,一般情况下建议使用绝对路径 ...