C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#语音识别

C#语音识别用法实例

投稿:shichen2014

这篇文章主要介绍了C#语音识别用法,实例分析了C#利用微软操作系统自动的语音识别功能,读取信息的技巧,需要的朋友可以参考下

本文实例讲述了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#程序设计有所帮助。

您可能感兴趣的文章:
阅读全文