首页 > 学院 > 开发设计 > 正文

C# 语音识别

2019-11-17 02:39:10
字体:
来源:转载
供稿:网友

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标记。SVSFPersistXMLXML标记的全局状态的变化将持续到说话的呼叫。SVSFNLPSpeakPunc,标点符号应扩大到字(例如:“这是什么。”将成为“这是这期”)。SVSFNLPMaskSAPI(而不是文本到语音引擎)处理此掩码中的标志。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:恢复该对象所对应的被暂停的朗读进程。该方法没有参数。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表