利用微軟操作系統自動的語音識別功能,讀取信息。
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("你是一個大 ---------------------------------------------------------------------------- 其中: 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:恢復該對象所對應的被暫停的朗讀進程。該方法沒有參數。
新聞熱點
疑難解答