當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 音頻技術(shù)
[導(dǎo)讀]   語(yǔ)音識(shí)別的兩個(gè)方法   通過(guò)微軟的SAPI,不僅僅可以實(shí)現(xiàn)語(yǔ)音合成TTS,同樣可以實(shí)現(xiàn)語(yǔ)音識(shí)別SR。下面我們就介紹并貼出相關(guān)代碼。主要有兩種方式:   1、使用COM組件技術(shù)

  語(yǔ)音識(shí)別的兩個(gè)方法

  通過(guò)微軟的SAPI,不僅僅可以實(shí)現(xiàn)語(yǔ)音合成TTS,同樣可以實(shí)現(xiàn)語(yǔ)音識(shí)別SR。下面我們就介紹并貼出相關(guān)代碼。主要有兩種方式:

  1、使用COM組件技術(shù),不管是C++,C#,Delphi都能玩的轉(zhuǎn),開(kāi)發(fā)出來(lái)的東西在XP和WIN7都能跑。(注意要引入系統(tǒng)組件SpeechLib,XP要安裝識(shí)別引擎)

  2、使用WIN7的windows api,其實(shí)最終還是調(diào)用了SAPI,所以開(kāi)發(fā)出來(lái)的東西就只能在WIN7上面跑。

  其實(shí)不管是哪一種,都是調(diào)用SAPI,可能后一種代碼比較簡(jiǎn)單。

  使用第一種方式,需要注意在COM選項(xiàng)卡里面的Microsoft Speech object library引用

  C#代碼 public class SpRecognition

  {

  private staTIc SpRecogniTIon _Instance = null;

  private SpeechLib.ISpeechRecoGrammar isrg;

  private SpeechLib.SpSharedRecoContextClass ssrContex = null;

  public delegate void StringEvent(string str);

  public StringEvent SetMessage;

  private SpRecogniTIon()

  {

  ssrContex = new SpSharedRecoContextClass();

  isrg = ssrContex.CreateGrammar(1);

  SpeechLib._ISpeechRecoContextEvents_RecogniTIonEventHandler recHandle =

  new _ISpeechRecoContextEvents_RecognitionEventHandler(ContexRecognition);

  ssrContex.Recognition += recHandle;

  }

  public void BeginRec()

  {

  isrg.DictationSetState(SpeechRuleState.SGDSActive);

  }

  public static SpRecognition instance()

  {

  if (_Instance == null)

  _Instance = new SpRecognition();

  return _Instance;

  }

  public void CloseRec()

  {

  isrg.DictationSetState(SpeechRuleState.SGDSInactive);

  }

  private void ContexRecognition(int iIndex, object obj, SpeechLib.SpeechRecognitionType type, SpeechLib.ISpeechRecoResult result)

  {

  if (SetMessage != null)

  {

  SetMessage(result.PhraseInfo.GetText(0, -1, true));

  }

  }

  }

  第二種同樣需要引入,不過(guò)引入的是Win7中的.NET3.5類(lèi)庫(kù)

  C# 代碼

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Text;

  using System.Speech;

  using System.Speech.Recognition;

  using System.Globalization;

  using System.Windows.Forms;

  namespace StudyBeta

  {

  public class SRecognition

  {

  public SpeechRecognitionEngine recognizer = null;//語(yǔ)音識(shí)別引擎

  public DictationGrammar dictationGrammar = null; //自然語(yǔ)法

  public System.Windows.Forms.Control cDisplay; //顯示控件

  public SRecognition(string[] fg) //創(chuàng)建關(guān)鍵詞語(yǔ)列表

  {

  CultureInfo myCIintl = new CultureInfo(“en-US”);

  foreach (RecognizerInfo config in SpeechRecognitionEngine. InstalledRecognizers())//獲取所有語(yǔ)音引擎

  {

  if (config.Culture.Equals(myCIintl) && config.Id == “MS-1033-80-DESK” )

  {

  recognizer = new SpeechRecognitionEngine(config);

  break;

  }//選擇美國(guó)英語(yǔ)的識(shí)別引擎

  }

  if (recognizer != null)

  {

  InitializeSpeechRecognitionEngine(fg);//初始化語(yǔ)音識(shí)別引擎

  dictationGrammar = new DictationGrammar();

  }

  else

  {

  MessageBox.Show(“創(chuàng)建語(yǔ)音識(shí)別失敗”);

  }

  }

  private void InitializeSpeechRecognitionEngine(string[] fg)

  {

  recognizer.SetInputToDefaultAudioDevice();//選擇默認(rèn)的音頻輸入設(shè)備

  Grammar customGrammar = CreateCustomGrammar(fg);

  //根據(jù)關(guān)鍵字?jǐn)?shù)組建立語(yǔ)法

  recognizer.UnloadAllGrammars();

  recognizer.LoadGrammar(customGrammar);

  //加載語(yǔ)法

  recognizer.SpeechRecognized += new EventHandler 《SpeechRecognizedEventArgs》(recognizer_SpeechRecognized);

  recognizer.SpeechHypothesized += new EventHandler 《SpeechHypothesizedEventArgs》(recognizer_SpeechHypothesized);

  }

  public void BeginRec(Control tbResult)//關(guān)聯(lián)窗口控件

  {

  TurnSpeechRecognitionOn();

  TurnDictationOn();

  cDisplay = tbResult;

  }

  public void over()//停止語(yǔ)音識(shí)別引擎

  {

  TurnSpeechRecognitionOff();

  }

  public virtual Grammar CreateCustomGrammar(string[] fg) //創(chuàng)造自定義語(yǔ)法

  {

  GrammarBuilder grammarBuilder = new GrammarBuilder();

  grammarBuilder.Append(new Choices(fg));

  return new Grammar(grammarBuilder);

  }

  private void TurnSpeechRecognitionOn()//啟動(dòng)語(yǔ)音識(shí)別函數(shù)

  {

  if (recognizer != null)

  {

  recognizer.RecognizeAsync(RecognizeMode.Multiple);

  //識(shí)別模式為連續(xù)識(shí)別

  }

  else

  {

  MessageBox.Show(“創(chuàng)建語(yǔ)音識(shí)別失敗”);

  }

  }

  private void TurnSpeechRecognitionOff()//關(guān)閉語(yǔ)音識(shí)別函數(shù)

  {

  if (recognizer != null)

  {

  recognizer.RecognizeAsyncStop();

  TurnDictationOff();

  }

  else

  {

  MessageBox.Show(“創(chuàng)建語(yǔ)音識(shí)別失敗”);

  }

  }

  private void recognizer_SpeechRecognized(object sender, SpeechRecognized EventArgs e)

  {

  //識(shí)別出結(jié)果完成的動(dòng)作,通常把識(shí)別結(jié)果傳給某一個(gè)控件

  string text = e.Result.Text;

  cDisplay.Text = text;

  }

  private void TurnDictationOn()

  {

  if (recognizer != null)

  {

  recognizer.LoadGrammar(dictationGrammar);

  //加載自然語(yǔ)法

  }

  else

  {

  MessageBox.Show(“創(chuàng)建語(yǔ)音識(shí)別失敗”);

  }

  }

  private void TurnDictationOff()

  {

  if (dictationGrammar != null)

  {

  recognizer.UnloadGrammar(dictationGrammar);

  //卸載自然語(yǔ)法

  }

  else

  {

  MessageBox.Show(“創(chuàng)建語(yǔ)音識(shí)別失敗”);

  }

  }

  }

  }

  語(yǔ)音識(shí)別的應(yīng)用有哪些

  語(yǔ)音識(shí)別技術(shù)應(yīng)用有哪些?語(yǔ)音識(shí)別技術(shù)有著非常廣泛的應(yīng)用領(lǐng)域和市場(chǎng)前景。在語(yǔ)音輸入控制系統(tǒng)中,它使得人們可以甩掉鍵盤(pán),通過(guò)識(shí)別語(yǔ)音中的要求、請(qǐng)求、命令或詢(xún)問(wèn)來(lái)作出正確的響應(yīng),這樣既可以克服人工鍵盤(pán)輸入速度慢,極易出差錯(cuò)的缺點(diǎn),又有利于縮短系統(tǒng)的反應(yīng)時(shí)間,使人機(jī)交流變得簡(jiǎn)便易行,比如用于聲控語(yǔ)音撥號(hào)系統(tǒng)、聲控智能玩具、智能家電等領(lǐng)域。

  在智能對(duì)話(huà)查詢(xún)系統(tǒng)中,人們通過(guò)語(yǔ)音命令,可以方便地從遠(yuǎn)端的數(shù)據(jù)庫(kù)系統(tǒng)中查詢(xún)與提取有關(guān)信息,享受自然、友好的數(shù)據(jù)庫(kù)檢索服務(wù),例如信息網(wǎng)絡(luò)查詢(xún)、醫(yī)療服務(wù)、銀行服務(wù)等。語(yǔ)音識(shí)別技術(shù)還可以應(yīng)用于自動(dòng)口語(yǔ)翻譯,即通過(guò)將口語(yǔ)識(shí)別技術(shù)、機(jī)器翻譯技術(shù)、語(yǔ)音合成技術(shù)等相結(jié)合,可將一種語(yǔ)言的語(yǔ)音輸入翻譯為另一種語(yǔ)言的語(yǔ)音輸出,實(shí)現(xiàn)跨語(yǔ)言交流。

  語(yǔ)音識(shí)別技術(shù)在軍事斗爭(zhēng)領(lǐng)域里也有著極為重要的應(yīng)用價(jià)值和極廣闊的應(yīng)用空間。一些語(yǔ)音識(shí)別技術(shù)就是著眼于軍事活動(dòng)而研發(fā),并在軍事領(lǐng)域首先應(yīng)用、首獲成效的,軍事應(yīng)用對(duì)語(yǔ)音識(shí)別系統(tǒng)的識(shí)別精度、響應(yīng)時(shí)間、惡劣環(huán)境下的頑健性都提出了更高的要求。

  目前,語(yǔ)音識(shí)別技術(shù)已在軍事指揮和控制自動(dòng)化方面得以應(yīng)用。比如,將語(yǔ)音識(shí)別技術(shù)應(yīng)用于航空飛行控制,可快速提高作戰(zhàn)效率和減輕飛行員的工作負(fù)擔(dān),飛行員利用語(yǔ)音輸人來(lái)代替?zhèn)鹘y(tǒng)的手動(dòng)操作和控制各種開(kāi)關(guān)和設(shè)備,以及重新改編或排列顯示器上的顯示信息等,可使飛行員把時(shí)間和精力集中于對(duì)攻擊目標(biāo)的判斷和完成別的操作上來(lái),以便更快獲得信息來(lái)發(fā)揮戰(zhàn)術(shù)優(yōu)勢(shì)。

  更多精彩閱讀:   語(yǔ)音識(shí)別的優(yōu)缺點(diǎn)_語(yǔ)音識(shí)別功能介紹   語(yǔ)音識(shí)別算法有哪些_語(yǔ)音識(shí)別特征提取方法   怎么實(shí)現(xiàn)語(yǔ)音識(shí)別_手機(jī)語(yǔ)音識(shí)別怎么設(shè)置   語(yǔ)音識(shí)別設(shè)置能刪除嗎_語(yǔ)音識(shí)別系統(tǒng)工作流程
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉