精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#英文語音合成與中文語音識別技術

開發 后端
在.NET中,C#英文語音有較好的實現,但是對中文語音的支持還沒有加入進來,我們要想實現中文發音或中文語音識別。

C#英文語音合成與中文語音識別技術的實現,先安裝微軟的Speech Application SDK(SASDK),它的***版本是 SAPI 5.1 他能夠識別中、日、英三種語言,你可以在這里下載:http://www.microsoft.com/speech/download/sdk51/,需要安裝這兩個文件Speech SDK 5.1和5.1 Language Pack,其中5.1 Language Pack可以選擇安裝支持的語言。

安裝好以后,我們就可以開始進行語音程序的開發了,當然,在這之前我們需要把SAPI.dll通過如下圖所示添加到引用中

下面我們設計一個能夠朗讀中英文混合語言的類:

我們將用單例模式實現該類,類的代碼如下,我們將詳細解釋:

  1. public class Speach   
  2. {   
  3. private static Speach _Instance = null ;   
  4. private SpeechLib.SpVoiceClass voice =null;   
  5. private Speach()   
  6. {   
  7. BuildSpeach() ;   
  8. }   
  9. public static Speach instance()   
  10. {   
  11. if (_Instance == null)   
  12. _Instance = new Speach() ;   
  13. return _Instance ;   
  14. }   
  15. private void SetChinaVoice()   
  16. {   
  17. voice.Voice = voice.GetVoices(string.Empty,string.Empty).Item(0) ;   
  18. }   
  19. private void SetEnglishVoice()   
  20. {   
  21. voice.Voice = voice.GetVoices(string.Empty,string.Empty).Item(1) ;   
  22. }   
  23. private void SpeakChina(string strSpeak)   
  24. {   
  25. SetChinaVoice() ;   
  26. Speak(strSpeak) ;   
  27. }   
  28. private void SpeakEnglishi(string strSpeak)   
  29. {   
  30. SetEnglishVoice() ;   
  31. Speak(strSpeak) ;   
  32. }   
  33. public void AnalyseSpeak(string strSpeak)   
  34. {   
  35. int iCbeg = 0 ;   
  36. int iEbeg = 0 ;   
  37. bool IsChina = true ;   
  38. for(int i=0;i
  39. {   
  40. char chr = strSpeak[i] ;   
  41. if (IsChina)   
  42. {   
  43. if (chr<=122&&chr>=65)   
  44. {   
  45. int iLen = i - iCbeg ;   
  46. string strValue = strSpeak.Substring(iCbeg,iLen) ;   
  47. SpeakChina(strValue) ;   
  48. iEbeg = i ;   
  49. IsChina = false ;   
  50. }   
  51. }   
  52. else   
  53. {   
  54. if (chr>122||chr<65)   
  55. {   
  56. int iLen = i - iEbeg ;   
  57. string strValue = strSpeak.Substring(iEbeg,iLen) ;   
  58. this.SpeakEnglishi(strValue) ;   
  59. iCbeg = i ;   
  60. IsChina = true ;   
  61. }   
  62. }   
  63. }//end for   
  64. if (IsChina)   
  65. {   
  66. int iLen = strSpeak.Length - iCbeg ;   
  67. string strValue = strSpeak.Substring(iCbeg,iLen) ;   
  68. SpeakChina(strValue) ;   
  69. }   
  70. else   
  71. {   
  72. int iLen = strSpeak.Length - iEbeg ;   
  73. string strValue = strSpeak.Substring(iEbeg,iLen) ;   
  74. SpeakEnglishi(strValue) ;   
  75. }   
  76. }   
  77. private void BuildSpeach()   
  78. {   
  79. if (voice == null)   
  80. voice = new SpVoiceClass() ;   
  81. }   
  82. public int Volume   
  83. {   
  84. get   
  85. {   
  86. return voice.Volume ;   
  87. }   
  88. set   
  89. {   
  90. voice.SetVolume((ushort)(value)) ;   
  91. }   
  92. }   
  93. public int Rate   
  94. {   
  95. get   
  96. {   
  97. return voice.Rate ;   
  98. }   
  99. set   
  100. {   
  101. voice.SetRate(value) ;   
  102. }   
  103. }   
  104. private void Speak(string strSpeack)   
  105. {   
  106. try   
  107. {   
  108. voice.Speak(strSpeack,SpeechVoiceSpeakFlags.SVSFlagsAsync) ;   
  109. }   
  110. catch(Exception err)   
  111. {   
  112. throw(new Exception("發生一個錯誤:"+err.Message)) ;   
  113. }   
  114. }   
  115. public void Stop()   
  116. {   
  117. voice.Speak(string.Empty,SpeechLib.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak) ;   
  118. }   
  119. public void Pause()   
  120. {   
  121. voice.Pause() ;   
  122. }   
  123. public void Continue()   
  124. {   
  125. voice.Resume() ;   
  126. }   
  127. }//end class   
  128. 在 private SpeechLib.SpVoiceClass voice =null;這里,我們定義個一個用來發音的類,并且在第一次調用該類時,對它用BuildSpeach方法進行了初始化。   
  129. 我們還定義了兩個屬性Volume和Rate,能夠設置音量和語速。   
  130. 我們知道,SpVoiceClass 有一個Speak方法,我們發音主要就是給他傳遞一個字符串,它負責讀出該字符串,如下所示。   
  131.  
  132. private void Speak(string strSpeack)   
  133. {   
  134. try   
  135. {   
  136. voice.Speak(strSpeack,SpeechVoiceSpeakFlags.SVSFlagsAsync) ;   
  137. }   
  138. catch(Exception err)   
  139. {   
  140. throw(new Exception("發生一個錯誤:"+err.Message)) ;   
  141. }   
  142. }  

其中SpeechVoiceSpeakFlags.SVSFlagsAsync表示異步發音。

但是,這個方法本身并不知道你給的字符串是什么語言,所以需要我們它這個字符串用什么語言讀出。SpVoiceClass 類的Voice 屬性就是用來設置語種的,我們可以通過SpVoiceClass 的GetVoices方法得到所有的語種列表,然后在根據參數選擇相應的語種,比如設置語種為漢語如下所示:

  1. private void SetChinaVoice()   
  2. {   
  3. voicevoice.Voice = voice.GetVoices(string.Empty,string.Empty).Item(0) ;   
  4. }  

0表示是漢用,1234都表示英語,就是口音不同。

這樣,我們就設置了語種,如果結合發音方法,我們就可以設計出一個只發漢語語音的方法

  1. private void SpeakChina(string strSpeak)   
  2. {   
  3. SetChinaVoice() ;   
  4. Speak(strSpeak) ;   
  5. }  

只發英語語音的方法也是類似的,上面程序里有。

對于一段中英文混合的語言,我們讓程序讀出混合語音的方法就是:編程把這段語言的中英文分開,對于中文調用SpeakChina方法,英文調用SpeakEnglishi方法;至于怎樣判斷一個字符是英文還是中文,我采用的是判斷asc碼的方法,具體的類方法是通過AnalyseSpeak實現的。

這樣,對于一段中英文混合文字,我們只需把它作為參數傳遞給AnalyseSpeak就可以了,他能夠完成中英文的混合發音。

當然,對于發音的暫定、繼續、停止等操作,上面也給出了簡單的方法調用,很容易明白。

下面簡單介紹一下C#英文、中文語音識別的方法:

先把該語音識別的類源代碼貼在下面,然后再做說明:

  1. public class SpRecognition   
  2. {   
  3. private static SpRecognition _Instance = null ;   
  4. private SpeechLib.ISpeechRecoGrammar isrg ;   
  5. private SpeechLib.SpSharedRecoContextClass ssrContex =null;   
  6. private System.Windows.Forms.Control cDisplay ;   
  7. private SpRecognition()   
  8. {   
  9. ssrContex = new SpSharedRecoContextClass() ;   
  10. isrg = ssrContex.CreateGrammar(1) ;   
  11. SpeechLib._ISpeechRecoContextEvents_RecognitionEventHandler recHandle =   
  12. new _ISpeechRecoContextEvents_RecognitionEventHandler(ContexRecognition) ;   
  13. ssrContex.Recognition += recHandle ;   
  14. }   
  15. public void BeginRec(Control tbResult)   
  16. {   
  17. isrg.DictationSetState(SpeechRuleState.SGDSActive) ;   
  18. cDisplay = tbResult ;   
  19. }   
  20. public static SpRecognition instance()   
  21. {   
  22. if (_Instance == null)   
  23. _Instance = new SpRecognition() ;   
  24. return _Instance ;   
  25. }   
  26. public void CloseRec()   
  27. {   
  28. isrg.DictationSetState(SpeechRuleState.SGDSInactive) ;   
  29. }   
  30. private void ContexRecognition(int iIndex,object obj,SpeechLib.SpeechRecognitionType type,SpeechLib.ISpeechRecoResult result)   
  31. {   
  32. cDisplay.Text += result.PhraseInfo.GetText(0,-1,true) ;   
  33. }   
  34. }  

我們定義了ssrContex 和isrg為語音識別的上下文和語法,通過設置isrg的DictationSetState方法,我們可以開始或結束識別,在上面的程序中是BeginRec和CloseRec方法。cDisplay 是我們用來輸出識別結果的地方,為了能夠在大部分控件上都可以顯示結果,我用了一個Control 類來定義它。當然,每次語音識別后都會觸發ISpeechRecoContextEvents_RecognitionEventHandler 事件,我們定義了一個這樣的方法ContexRecognition來響應事件,并且在這個方法里輸出識別結果。

這樣,C#英文和中文語音處理的一些最基本的問題就有了一個簡單的解決方法,當然,這種方法還有很多不完善的地方,希望大家多提出批評意見,共同提高。

【編輯推薦】

  1. 如何用C#和ADO.NET訪問
  2. 淺析C# Switch語句
  3. C#驗證輸入方法詳解
  4. 簡單介紹C# 匿名方法
  5. C# FileSystemWatcher對象
責任編輯:彭凡 來源: CSDN
相關推薦

2016-02-17 10:39:18

語音識別語音合成語音交互

2022-12-05 07:17:14

人工智能語音合成

2024-11-11 08:50:24

2022-12-01 07:03:22

語音識別人工智能技術

2021-11-17 10:37:39

語音識別技術人工智能

2017-09-06 10:51:22

Facebook

2024-03-11 11:32:38

語音識別

2022-11-03 16:31:08

語音智能語音識別

2022-08-29 10:57:09

語音識蘋果頻率

2019-10-29 08:00:00

語音識別

2023-02-28 12:12:21

語音識別技術解碼器

2017-08-30 09:20:47

深度學習語音合成Siri

2022-09-15 09:59:55

火山語音語音建模

2025-06-27 05:00:00

AI語音詐騙AI語音識別人工智能

2011-05-31 16:38:47

Android 實現語音

2020-11-12 17:24:21

微軟智能語音

2022-10-19 12:47:05

深度學習語音合成

2015-11-03 16:31:28

搜狗

2015-05-11 11:35:58

點贊
收藏

51CTO技術棧公眾號

亚洲精品9999| 国产欧美精品在线| 国产精品无码在线| av有声小说一区二区三区| 中文av字幕一区| 99久久精品无码一区二区毛片 | 色婷婷狠狠五月综合天色拍| 色欧美日韩亚洲| 樱空桃在线播放| 香蕉久久国产av一区二区| 日韩高清一级片| 欧美第一淫aaasss性| 欧洲一级黄色片| 精品国产亚洲一区二区三区| 欧美日韩亚洲一区二区| 先锋影音男人资源| 撸视在线观看免费视频| 国产精品1024| 国产精品久久久久高潮| 久久久久久久伊人| 日韩欧美一区二区三区在线视频 | 日本老熟妇毛茸茸| 青草影视电视剧免费播放在线观看| 99视频有精品| 91色视频在线观看| 国模私拍一区二区| 99精品视频免费| 久久国产精品亚洲| 国产性猛交xx乱| 日韩超碰人人爽人人做人人添| 欧美最猛性xxxxx直播| 日本中文字幕亚洲| 五月婷婷视频在线观看| 国产精品毛片无遮挡高清| 久久99精品久久久久久水蜜桃| 97成人免费视频| 日韩精品三区四区| 26uuu亚洲伊人春色| 久久国产精品二区| 欧美freesex交免费视频| 亚洲日本欧美中文幕| 艳妇乳肉豪妇荡乳xxx| 亚洲一区 二区| 欧美一区二区三区免费观看视频 | 一级毛片久久久| 亚洲香肠在线观看| 50度灰在线观看| 国产精品实拍| 亚洲乱码日产精品bd| 中文字幕在线亚洲三区| 超碰国产在线观看| 国产三级精品在线| 日本免费高清一区| 黑人与亚洲人色ⅹvideos| 97精品久久久久中文字幕| 国产伦精品一区二区三区照片| 一级特黄aaa大片| 裸体一区二区三区| 国产欧美韩国高清| 国产熟女精品视频| 国产成人av电影在线播放| 91传媒视频在线观看| 精品国产免费无码久久久| 国内外成人在线| 91在线免费观看网站| 99久久久久久久| 国产麻豆精品在线| 国产a一区二区| 天堂中文在线视频| 久久久精品国产免费观看同学| 久久精品99久久| 你懂的免费在线观看视频网站| 久久综合九色综合97婷婷 | 国产又黄又猛又爽| 国产精品自在在线| 不卡一区二区三区视频| 免费av一级片| 久久久精品免费免费| 在线观看欧美激情| 青春草免费在线视频| 欧美日韩加勒比精品一区| 国产激情在线观看视频| 亚洲狼人在线| 欧美精品一区二区精品网| 日韩网站在线播放| 97精品视频| 久久久亚洲国产天美传媒修理工| 久久狠狠高潮亚洲精品| 日韩精品色哟哟| 99热在线播放| 可以直接在线观看的av| 1区2区3区国产精品| av女优在线播放| 成人开心激情| 日韩网站在线看片你懂的| 亚洲欧美在线不卡| 久久一区91| 午夜精品在线视频| 91亚洲精品国偷拍自产在线观看| 国产精品99久久久久久久女警| 国产视色精品亚洲一区二区| av在线免费观看网| 一区二区在线观看视频在线观看| 91专区在线观看| 日本电影久久久| 亚洲精品乱码久久久久久金桔影视| 丁香激情五月少妇| 在线欧美日韩| 成人av电影天堂| 精品无吗乱吗av国产爱色| 亚洲免费色视频| 午夜dv内射一区二区| 2020最新国产精品| 中文综合在线观看| 久久久久99精品成人片我成大片| 激情伊人五月天久久综合| 久久香蕉综合色| 欧美人体视频xxxxx| 欧美日韩成人综合在线一区二区| 久久人妻少妇嫩草av无码专区 | 国产亚洲精品久久| 在线看成人av| 国产一区二区三区免费在线观看| 激情久久av| 日本无删减在线| 欧美精品乱码久久久久久按摩 | 欧美 国产 小说 另类| 精品一区二区三区中文字幕在线 | 亚洲夜间福利| 91日韩在线播放| 一本一道波多野毛片中文在线| 亚洲福利视频一区二区| 婷婷中文字幕在线观看| 成人高清av| 国产成人aa精品一区在线播放 | 亚洲精品小视频在线观看| 538任你躁在线精品视频网站| 翔田千里一区二区| 国内成+人亚洲| 黄色污污视频在线观看| 日韩三级视频在线看| 91狠狠综合久久久| 麻豆精品精品国产自在97香蕉| 明星裸体视频一区二区| 亚洲十八**毛片| 日韩av资源在线播放| 国产一级片免费观看| 国产福利不卡视频| 超碰97在线看| 一区中文字幕| 久久久久中文字幕| 亚洲va欧美va| 亚洲18女电影在线观看| www.555国产精品免费| 激情成人亚洲| 国产综合第一页| 在线观看网站免费入口在线观看国内 | 色8久久精品久久久久久蜜| 香蕉视频污视频| 91久久午夜| 久久精品美女| 日韩精品专区| 中文字幕精品久久| 日韩国产成人在线| 中文一区在线播放| 福利视频999| 欧美精品一卡| 精品欧美日韩| 中文字幕日本一区二区| 色妞在线综合亚洲欧美| 国产美女精品视频国产| 夜夜嗨av一区二区三区四季av| 能看毛片的网站| 亚洲激情综合| 日韩视频在线播放| 91麻豆精品国产91久久久更新资源速度超快| 少妇精69xxtheporn| 国产精品久久免费| 日韩精品视频久久| 黄色一级片在线观看| 在线综合+亚洲+欧美中文字幕| 最新日韩免费视频| 久久99精品久久久久久动态图| 在线视频亚洲自拍| 国产欧美三级电影| 国产精品第一区| 色黄网站在线观看| 国产视频亚洲视频| 国产精品热久久| 午夜精品福利在线| 成年人视频软件| 成人黄色在线视频| 国产 porn| 欧美午夜视频| 日韩欧美视频一区二区| 国产精品毛片aⅴ一区二区三区| 欧美成人性生活| 你懂的视频在线| 日韩欧美一级精品久久| 无码人妻精品一区二区三区9厂| 国产精品卡一卡二卡三| 欧美性生交xxxxx| 蜜桃视频第一区免费观看| 日韩美女爱爱视频| 日本精品黄色| 国产精品福利视频| 91精品国产经典在线观看| 欧美精品videosex牲欧美| jizz视频在线观看| 亚洲国产精品字幕| 国产精品高潮呻吟AV无码| 欧美日韩免费网站| 麻豆精品一区二区三区视频| 国产人成亚洲第一网站在线播放 | 青青操国产视频| 国产午夜精品一区二区三区四区 | 成人毛片18女人毛片| 《视频一区视频二区| 成人乱码一区二区三区av| 国产白丝精品91爽爽久久| 国产九九在线观看| 久久成人在线| 国产毛片视频网站| 欧美体内she精视频在线观看| 日本欧美色综合网站免费| 精品视频自拍| 91久久精品国产91性色| 69堂精品视频在线播放| 欧美在线视频a| av老司机免费在线| 欧美日韩第一页| av网站导航在线观看免费| www.国产精品一二区| av在线电影播放| 亚洲天堂开心观看| 伦理片一区二区三区| 日韩国产欧美区| 五月婷婷综合久久| 亚洲国产一区自拍| 刘亦菲久久免费一区二区| 日韩欧美久久久| 国内老熟妇对白hdxxxx| 91精品国产免费久久综合| 亚洲在线视频播放| 欧美老肥妇做.爰bbww| 91国内精品视频| 欧美精品久久天天躁| 91丨porny丨在线中文| 欧美精品自拍偷拍动漫精品| 亚洲一区二区天堂| 91精品国产全国免费观看| jizz中国少妇| 欧美xxxx在线观看| 刘玥91精选国产在线观看| 日韩av在线网| 国产综合在线观看| 中文字幕不卡在线视频极品| 欧美jizz18hd性欧美| 久久精品国产一区二区电影| a级影片在线观看| 欧美国产亚洲视频| 国产中文在线播放| 日韩免费av在线| 美女色狠狠久久| 成人网址在线观看| 大陆精大陆国产国语精品| 激情视频在线观看一区二区三区| 国产伦乱精品| 欧美日韩在线高清| 日韩免费久久| 99视频精品全部免费看| 在线观看视频日韩| 男人透女人免费视频| 美女高潮久久久| 天天色天天干天天色| 成人高清伦理免费影院在线观看| 在线天堂www在线国语对白| 久久伊人蜜桃av一区二区| 中文字幕免费在线看线人动作大片| 欧美国产一区二区| 午夜爽爽爽男女免费观看| 亚洲国产精品久久久久婷婷884| 日本一级淫片色费放| 91黄色免费看| 国产不卡精品视频| 亚洲精品久久久久中文字幕欢迎你 | 久久精品国产亚洲AV熟女| 欧美国产激情一区二区三区蜜月 | 香蕉久久精品| 亚洲精品无人区| 午夜欧美精品久久久久久久| 日本一区二区黄色| 激情综合色播五月| 亚洲精品女人久久久| 国产精品久久久久久户外露出 | 亚洲午夜精品一区二区国产 | 久久综合给合久久狠狠色| 日本成人小视频| 青青草精品视频在线| 麻豆91精品91久久久的内涵| 精品人妻一区二区三区日产| 国产精品久久久久久久久久免费看| 国产精品九九九九九九| 色狠狠桃花综合| 老牛影视av牛牛影视av| 色偷偷偷亚洲综合网另类| а√天堂中文在线资源8| 国产女精品视频网站免费| 视频福利一区| 日本免费a视频| 久久综合综合久久综合| 大黑人交xxx极品hd| 一区二区三区不卡视频在线观看| 亚洲精品男人的天堂| 日韩欧美国产三级电影视频| 91大神xh98hx在线播放| 欧美在线视频网| japanese色系久久精品| 三年中文高清在线观看第6集 | 中文字幕在线不卡一区二区三区| 日本在线视频免费| 91精品国产乱码久久蜜臀| 国产黄在线观看免费观看不卡| 欧美精品久久久久久久免费观看| jizz久久久久久| 欧美不卡在线一区二区三区| 影音先锋一区| 苍井空张开腿实干12次| 亚洲欧美另类久久久精品| 中文人妻熟女乱又乱精品| 亚洲毛片在线观看| 国产无遮挡裸体视频在线观看| 5566中文字幕一区二区| 91麻豆国产自产在线观看亚洲| 男人天堂999| 91最新地址在线播放| 五月天婷婷丁香| 337p日本欧洲亚洲大胆精品| 色婷婷av在线| 国产精品久久亚洲7777| 欧美天天在线| 91九色蝌蚪porny| 亚洲国产三级在线| 亚洲精品久久久久久久久久久久久久 | 三级av在线| 高清亚洲成在人网站天堂| 一区中文字幕电影| 青青青青在线视频| 国产suv精品一区二区6| 免费在线观看黄色av| 日韩欧美国产午夜精品| 男人天堂亚洲天堂| 国产精品.com| 一区二区日本视频| 四虎影成人精品a片| 色婷婷av一区二区三区软件| 国产特黄在线| 国产欧美在线观看| 888久久久| 折磨小男生性器羞耻的故事| 亚洲成人免费观看| 手机看片福利在线观看| 日韩美女在线观看一区| 久久精品国产大片免费观看| 五月天中文字幕在线| 亚洲精品乱码久久久久久久久| av在线免费在线观看| 欧美国产第一页| 卡一精品卡二卡三网站乱码| 欧美日韩一区二区在线免费观看| 久久综合精品国产一区二区三区 | 久热国产精品视频一区二区三区| 亚洲伦伦在线| 亚洲午夜久久久久久久国产| 欧美日本一区二区| 国产黄色大片在线观看| 久久大片网站| 麻豆成人av在线| 国产精品16p| 亚洲一区二区福利| 国产午夜精品一区在线观看| 人妻少妇精品无码专区二区| 国产午夜精品福利| hs视频在线观看| 国产999精品久久久| 偷拍欧美精品| 精品影片一区二区入口| 在线观看网站黄不卡| 色av手机在线| 日韩jizzz| 成人avav在线| 一女二男一黄一片| 91精品国产99| 91精品精品| 亚洲成人网在线播放| 日韩欧美一区中文| 欧美xoxoxo| 国内少妇毛片视频| 国产精品丝袜久久久久久app| 精品人妻无码一区二区色欲产成人|