欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#语音识别用法实例

程序员文章站 2024-02-11 10:11:10
本文实例讲述了c#语音识别用法。分享给大家供大家参考。具体分析如下: c#可以利用微软操作系统自动的语音识别功能,读取信息。步骤如下: 1.  在项目中添加&...

本文实例讲述了c#语音识别用法。分享给大家供大家参考。具体分析如下:

c#可以利用微软操作系统自动的语音识别功能,读取信息。步骤如下:

1.  在项目中添加  ""  引用

2.  引入命名空间:

复制代码 代码如下:
using speechlib;

3.  读取的代码:

复制代码 代码如下:
speechvoicespeakflags flag = speechvoicespeakflags.svsflagsasync;
    spvoice voice = new spvoice();
    voice.voice = voice.getvoices(string.empty, string.empty).item(0);
    voice.speak("你是一个大美女,我试一个大帅锅,哈哈", flag);

其中:

1. speechvoicespeakflags 是一个枚举。

spvoice标志:
    svsfdefault = 0
    svsflagsasync = 1
    svsfpurgebeforespeak = 2
    svsfisfilename = 4
    svsfisxml = 8
    svsfisnotxml = 16
    svsfpersistxml = 32

正规化标志:
    svsfnlpspeakpunc = 64

面具:
    svsfnlpmask = 64
    svsfvoicemask = 127
    svsfunusedflags = -128 

结束枚举分子

svsfdefault
指定应使用的默认设置。默认值是:
讲定的文本字符串同步(覆盖与svsflagsasync),
不清除挂起说话请求(覆盖与svsfpurgebeforespeak),
为了解析xml的文本,如果第一个字符是左尖括号(覆盖与svsfisxml或svsfisnotxml),
不坚持全球xml状态更改在讲电话(覆盖svsfpersistxml),
不扩展的标点字符成字(覆盖与svsfnlpspeakpunc)的。
svsflagsasync
指定的讲调用应该是异步的。也就是说,它会立即返回排队的讲请求后。
svsfpurgebeforespeak
清除所有悬而未决的发言请求,在此之前讲的呼叫。
svsfisfilename
的说话方式传递的字符串是一个文件名,而不是文字。其结果,没有发言字符串本身而是该文件的路径,该路径是口头的处理。
svsfisxml
输入的文本将被解析为xml标记。
svsfisnotxml
输入的文本将不会被解析的xml标记。
svsfpersistxml
xml标记的全局状态的变化将持续到说话的呼叫。
svsfnlpspeakpunc
,标点符号应扩大到字(例如:“这是什么。”将成为“这是这期”)。
svsfnlpmask
sapi(而不是文本到语音引擎)处理此掩码中的标志。
svsfvoicemask
此面膜具有每一个标志位设置。
svsfunusedflags
此面膜具有每一个未使用的位集。

2. spvoice

spvoice类是支持语音合成(tts)的核心类。通过spvoice对象调用tts引擎,从而实现朗读功能。

spvoice类有以下主要属性:

voice:表示发音类型,相当于进行朗读的人,包括microsoft mary,microsoft mike,microsoft sam和microsoft simplified chinese四种。其中前三种只能读英文,最后一种可以读中文,也可以读英文,但对于英文单词只能将其包括的各个字母逐一朗读出来。下面的程序中我们将会想办法解决这个问题。
rate:语音朗读速度,取值范围为-10到+10。数值越大,速度越快。
volume:音量,取值范围为0到100。数值越大,音量越大。
spvoice有以下主要方法:
speak:完成将文本信息转换为语音并按照指定的参数进行朗读,该方法有text和flags两个参数,分别指定要朗读的文本和朗读方式(同步或异步等)。
pause:暂停使用该对象的所有朗读进程。该方法没有参数。
resume:恢复该对象所对应的被暂停的朗读进程。该方法没有参数。

希望本文所述对大家的c#程序设计有所帮助。