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:恢复该对象所对应的被暂停的朗读进程。该方法没有参数。

原文地址:https://www.cnblogs.com/Theladyflower/p/4212550.html