windows vista 和windows 7语音识别功能相关简介:

相信用过windows vista 和windows 7的人都知道或者了解过里面的语音识别功能。它可以使用声音命令来控制电脑,实现更方便的人机互动,还可以通过声音控制窗口、启动程序、在窗口之间切换,使用菜单和单击按钮等功能。利用声音让计算机听写文本,只要大声的朗读字词,就可以创建文本文档,也可在文档中进行修改或更正错误。但此项技术并不是很成熟,存在文本识别率不高,许多非微软的程序不支持Windows的语音命令等缺陷。

那么在我们的WPF程序中,该如何利用此功能呢?(目前使用改技术意义不大,但是在将来,我相信会有很大的发展,在此,而且是新手,我只是以玩的心态做这些,希望大家不要笑 :)

在语音合成和语音识别上,微软提供 Speech SDK 开发包,那么在我们的WPF程序中,我们怎么使用呢?

其实很简单,我们主要用到了

.NET Framework 类库中

在System.Speech.Synthesis命名空间下

程序集:  System.Speech(在 System.Speech.dll 中)的

SpeechSynthesizer 类

此类中的成员包括如下:

构造函数

名称

说明

Creates a new instance of SpeechSynthesizer.

页首

 方法

名称

说明

允许(继承自 Object。)

用作特定类型的哈希函数。(继承自 Object。)

已重载。 Returns the collection of installed TTS voices.

Pauses the synthesizer.

Selects a specific voice.

已重载。 Selects a voice with specific voice characteristics.

已重载。 Speaks a prompt.

已重载。 Speaks asynchronously.

Cancels asynchronous speaking of the specified prompt.

Cancels asynchronous speaking of all queued prompts.

Speaks the specified SSML string.

Speaks the specified text string asynchronously.

页首

 属性

名称

说明

Gets the speaking rate of the SpeechSynthesizer.

Gets the speaking state of the SpeechSynthesizer.

Gets the voice of the SpeechSynthesizer.

Gets the speaking volume of the SpeechSynthesizer.

页首

 事件

名称

说明

Raised when a bookmark is reached.

Raised when a phoneme is reached.

Raised when the SpeechSynthesizer completes the speaking of a prompt.

Raised when the SpeechSynthesizer begins the speaking of a prompt.

Raised when the state of the SpeechSynthesizer changes.

Raised when a viseme is reached.

Raised when the voice of the SpeechSynthesizer changes.

了解了以上相关知识,我们就开始来做今天的小程序啦,实现一个能根据你提问:“现在几点了?”,然后

计算机将获取当前时间,在界面上显示时间的同时,以语音报时。。。。实在是有点简单,嘿嘿。。

首先新建一个WPF Application ;

然后在通过设计视窗在界面上拖拽两个Lable控件和一个Button控件,结果就变成下面这个样子了:

怎么Button不见了?嘿嘿,被我给隐藏了,把Opcity属性设置了0,我们使用这个Button主要是为了让它获得焦点,

并且触发它的Click事件,但是,我们现在是懒得动手去按了,话说我们今天要说说话去命令它。然后触发这个事件,得到当前时间,并做出相关反应。

整个过程就这样简单。所以,为了产生神秘感,就把Button给隐藏了 :)

说了这么多,接下来看代码吧:

MainWindow.xaml

1

<

Window

x:Class

="MySpeach.MainWindow"

2

xmlns

="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

3

xmlns:x

="http://schemas.microsoft.com/winfx/2006/xaml"

4

Title

="Speech"

Height

="350"

Width

="525"

>

5

<

Grid

>

6

<

Label

Content

="现在时间:"

Height

="32"

HorizontalAlignment

="Left"

Margin

="85,119,0,0"

Name

="label1"

VerticalAlignment

="Top"

Width

="81"

/>

7

<

Label

Height

="30"

HorizontalAlignment

="Left"

Margin

="198,119,0,0"

Name

="label2"

VerticalAlignment

="Top"

Width

="185"

IsEnabled

="False"

Visibility

="Visible"

/>

8

<

Button

Content

="现在现在几点了"

Height

="25"

HorizontalAlignment

="Left"

Margin

="198,65,0,0"

Name

="button1"

VerticalAlignment

="Top"

Width

="60"

Opacity

="0"

Click

="button1_Click"

/>

9

Grid

>

10

Window

>

MainWindow.xaml.cs

1

namespace

MySpeach

2

{

3

///

4

///

Interaction logic for MainWindow.xaml

5

///

6

public

partial

class

MainWindow : Window

7

{

8

public

MainWindow()

9

{

10

InitializeComponent();

11

12

button1.Focus();              //按钮获取输入焦点

13

14

15

16

}

17

public

PromptBuilder BuildPB()                //建立并构建PromptBuilder 对象并返回此对象

18

{

19

PromptBuilder pb

=

new

PromptBuilder();

20

pb.StartVoice(

"

大哥

"

);                      //构建pb对象内容

21

pb.AppendText(

"

主人现在是北京时间

"

);

22

pb.AppendTextWithHint(DateTime.Now.ToString(

"

HH:MM

"

),SayAs.Time24);

23

pb.AppendBreak(

new

TimeSpan(

0

,

0

,

4

));

24

pb.EndVoice();

25

26

27

return

pb;

28

}

29

private

void

button1_Click(

object

sender, RoutedEventArgs e)

30

{

31

label2.Content

=

"

现在是北京时间

"

+

DateTime.Now.ToString(

"

HH:MM

"

)

+

"

"

;

32

SpeechSynthesizer syn

=

new

SpeechSynthesizer();

33

syn.SpeakAsync(BuildPB());                 //通过调用SpeechSynthesizer对象的SpeakAsync()方法,输出语音

34

button1.Focus();

35

36

}

37

}

其实上面的程序也没什么可讲的,无非就是几个方法的调用,没什么技术含量,重要部分都已经注释。最后,要注意的是,别忘记了

对System.Speech.Synthesis;命名空间和相关程序集的引用。好了,就娱乐到这里,次程序在windows 7平台下使用vs2010编译通过,并能正常运行(只要你讲的普通话接近标准,嘿嘿:) 最后,在运行时别忘记了打开windows自带的语音识别程序,来进行聆听,不然,你喊死了计算机都不来鸟你 - -!

wpf 语音通话_WPF---语音合成与语音识别相关推荐

  1. wpf 语音通话_WPF+WCF一步一步打造音频聊天室(二):文字聊天和白板共享

    这篇文章将讲述实现WPF的UI和WCF中的双工通信.实现文字部分的聊天功能和实现共享白板的功能. 画WPF的界面其实是一件麻烦的事情.虽然WPF和WindowsForm一样,能将控件拖到哪,它就在哪. ...

  2. wpf 语音通话_WPF+WCF一步一步打造音频聊天室(三):语音聊天

    前一篇文章中实现了文字聊天和共享白板的功能,这篇文章中,我将在前一篇文章的基础上实现语音聊天的功能.语音聊天要比文字聊天和共享白板难度要大一点. 实现的大概的流程为: 1.一个聊天室成员向另外一个成员 ...

  3. 重磅!百度飞桨开源语音基础模型库|中英文语音识别、语音翻译、语音合成、声音分类通通一行代码轻松搞定...

    导读 要说生活里最常见的AI应用场景,语音合成与识别当属大家最为耳熟能详的场景之一了. 寻常到平时地图导航的播报.微信语音转文字.手机语音输入,以及小度智能音箱,都离不开语音技术的加持. 语音技术到底 ...

  4. python合成语音_MicroPython动手做(25)——语音合成与语音识别

    6.AB按键切换语言合成项目 [mw_shl_code=python,true]#MicroPython动手做(25)--语音合成与语音识别 #AB按键切换语言合成项目 from mpython im ...

  5. WPF--使用windows语音合成与语音识别

    C# 语音开发 近些年来,Microsoft 越来越注重将语音技术投入于主流使用,从而促生了一些产品,例如,Speech Server(用于实现启用语音的电话系统)和 Voice Command(使用 ...

  6. Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇:语音合成和语音识别 ​此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度,阿 ...

  7. 法庭智能语音系统_法庭智能语音识别系统_法庭智能语音系统解决方案_深圳市亚讯威视数字技术有限公司...

    法庭智能语音系统 现状与需求 庭审过程中,需要形成文字版庭审记录,便于事后追溯或跟踪.现有的人工听写方式受限于记录员的业务熟练程度和打字速度,导致记录效率较低.浪费人力.采用信息化手段改善记录工作,提 ...

  8. 2021年1~12月语音合成和语音识别论文月报

    ​ 论文统计每月更新一次,主要跟踪语音合成和语音识别的发展状况(很多文章都是在会议后才发出,但不影响统计.统计过程难免存在疏漏,因此统计结果仅供参考.所有文章语音合成领域统计列表请访问http://y ...

  9. 2021年10月语音合成和语音识别论文月报

    ​ 论文统计每月更新一次,主要跟踪语音合成和语音识别的发展状况(很多文章都是在会议后才发出,但不影响统计.统计过程难免存在疏漏,因此统计结果仅供参考.所有文章语音合成领域统计列表请访问http://y ...

最新文章

  1. Win64 驱动内核编程-28.枚举消息钩子
  2. 获取MSSQL Server中的相关信息(视图、存储过程、触发器、表)
  3. Python发送邮件以及自动化测试报告的生成
  4. CSVN部署安装,实现web管理svn
  5. [蓝桥杯]算法提高 vertex cover(dfs)
  6. linux-2.6.32.2内核在mini2440上的移植,Linux2.6.32.2移植到Mini2440
  7. Ubuntu16.04+Python3.6+深度学习环境+opencv+x264+ffmpeg基础镜像制作实战
  8. 单片机蜂鸣器奏乐代码例子
  9. HP RDX备份磁带系统的突破性特点
  10. 计算机软件429修复工具,运行时错误 429,ActiveX部件不能创建对象的解决方法小结...
  11. python学习(总)
  12. 如何xp计算机每天定时关机,xp定时关机,教您xp系统怎么设置定时关机
  13. SQL2000 挂起
  14. 流利说英语level4_流利说 懂你英语 level4 unit1 part1
  15. TCP通信 、 UDP通信
  16. Error:Internal error: (java.lang.IllegalArgumentException) Argument for
  17. java面试题之选择题
  18. vivado设计之解读复杂性报告(Complexity Characteristics)
  19. 设计一个程序,程序中有三个类,Triangle,Lader,Circle。
  20. 全志平台编译和打包系统(1)编译系统

热门文章

  1. 媒体查询(media)-screen
  2. 季节性ARIMA:时间序列预测
  3. 【学习python语法】
  4. 腾讯起点学院:用户增长训练营
  5. java 单选题_JAVA单项选择题
  6. 使用MATLAB进行多元线性回归预测
  7. 云计算服务模型,第 2 部分: 平台即服务(PaaS)
  8. 使用51单片机驱动YM12232B型液晶显示屏
  9. Cris 的Python笔记(十四):脑图福利
  10. 【模拟赛】2018 蓝桥杯省赛 B 组模拟赛(五)