当前位置:首页 > 消费电子 > 音频技术
[导读]   语音识别的两个方法   通过微软的SAPI,不仅仅可以实现语音合成TTS,同样可以实现语音识别SR。下面我们就介绍并贴出相关代码。主要有两种方式:   1、使用COM组件技术

  语音识别的两个方法

  通过微软的SAPI,不仅仅可以实现语音合成TTS,同样可以实现语音识别SR。下面我们就介绍并贴出相关代码。主要有两种方式:

  1、使用COM组件技术,不管是C++C#,Delphi都能玩的转,开发出来的东西在XP和WIN7都能跑。(注意要引入系统组件SpeechLib,XP要安装识别引擎)

  2、使用WIN7的windows api,其实最终还是调用了SAPI,所以开发出来的东西就只能在WIN7上面跑。

  其实不管是哪一种,都是调用SAPI,可能后一种代码比较简单。

  使用第一种方式,需要注意在COM选项卡里面的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));

  }

  }

  }

  第二种同样需要引入,不过引入的是Win7中的.NET3.5类库

  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;//语音识别引擎

  public DictationGrammar dictationGrammar = null; //自然语法

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

  public SRecognition(string[] fg) //创建关键词语列表

  {

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

  foreach (RecognizerInfo config in SpeechRecognitionEngine. InstalledRecognizers())//获取所有语音引擎

  {

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

  {

  recognizer = new SpeechRecognitionEngine(config);

  break;

  }//选择美国英语的识别引擎

  }

  if (recognizer != null)

  {

  InitializeSpeechRecognitionEngine(fg);//初始化语音识别引擎

  dictationGrammar = new DictationGrammar();

  }

  else

  {

  MessageBox.Show(“创建语音识别失败”);

  }

  }

  private void InitializeSpeechRecognitionEngine(string[] fg)

  {

  recognizer.SetInputToDefaultAudioDevice();//选择默认的音频输入设备

  Grammar customGrammar = CreateCustomGrammar(fg);

  //根据关键字数组建立语法

  recognizer.UnloadAllGrammars();

  recognizer.LoadGrammar(customGrammar);

  //加载语法

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

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

  }

  public void BeginRec(Control tbResult)//关联窗口控件

  {

  TurnSpeechRecognitionOn();

  TurnDictationOn();

  cDisplay = tbResult;

  }

  public void over()//停止语音识别引擎

  {

  TurnSpeechRecognitionOff();

  }

  public virtual Grammar CreateCustomGrammar(string[] fg) //创造自定义语法

  {

  GrammarBuilder grammarBuilder = new GrammarBuilder();

  grammarBuilder.Append(new Choices(fg));

  return new Grammar(grammarBuilder);

  }

  private void TurnSpeechRecognitionOn()//启动语音识别函数

  {

  if (recognizer != null)

  {

  recognizer.RecognizeAsync(RecognizeMode.Multiple);

  //识别模式为连续识别

  }

  else

  {

  MessageBox.Show(“创建语音识别失败”);

  }

  }

  private void TurnSpeechRecognitionOff()//关闭语音识别函数

  {

  if (recognizer != null)

  {

  recognizer.RecognizeAsyncStop();

  TurnDictationOff();

  }

  else

  {

  MessageBox.Show(“创建语音识别失败”);

  }

  }

  private void recognizer_SpeechRecognized(object sender, SpeechRecognized EventArgs e)

  {

  //识别出结果完成的动作,通常把识别结果传给某一个控件

  string text = e.Result.Text;

  cDisplay.Text = text;

  }

  private void TurnDictationOn()

  {

  if (recognizer != null)

  {

  recognizer.LoadGrammar(dictationGrammar);

  //加载自然语法

  }

  else

  {

  MessageBox.Show(“创建语音识别失败”);

  }

  }

  private void TurnDictationOff()

  {

  if (dictationGrammar != null)

  {

  recognizer.UnloadGrammar(dictationGrammar);

  //卸载自然语法

  }

  else

  {

  MessageBox.Show(“创建语音识别失败”);

  }

  }

  }

  }

  语音识别的应用有哪些

  语音识别技术应用有哪些?语音识别技术有着非常广泛的应用领域和市场前景。在语音输入控制系统中,它使得人们可以甩掉键盘,通过识别语音中的要求、请求、命令或询问来作出正确的响应,这样既可以克服人工键盘输入速度慢,极易出差错的缺点,又有利于缩短系统的反应时间,使人机交流变得简便易行,比如用于声控语音拨号系统、声控智能玩具、智能家电等领域。

  在智能对话查询系统中,人们通过语音命令,可以方便地从远端的数据库系统中查询与提取有关信息,享受自然、友好的数据库检索服务,例如信息网络查询、医疗服务、银行服务等。语音识别技术还可以应用于自动口语翻译,即通过将口语识别技术、机器翻译技术、语音合成技术等相结合,可将一种语言的语音输入翻译为另一种语言的语音输出,实现跨语言交流。

  语音识别技术在军事斗争领域里也有着极为重要的应用价值和极广阔的应用空间。一些语音识别技术就是着眼于军事活动而研发,并在军事领域首先应用、首获成效的,军事应用对语音识别系统的识别精度、响应时间、恶劣环境下的顽健性都提出了更高的要求。

  目前,语音识别技术已在军事指挥和控制自动化方面得以应用。比如,将语音识别技术应用于航空飞行控制,可快速提高作战效率和减轻飞行员的工作负担,飞行员利用语音输人来代替传统的手动操作和控制各种开关和设备,以及重新改编或排列显示器上的显示信息等,可使飞行员把时间和精力集中于对攻击目标的判断和完成别的操作上来,以便更快获得信息来发挥战术优势。

  更多精彩阅读:   语音识别的优缺点_语音识别功能介绍   语音识别算法有哪些_语音识别特征提取方法   怎么实现语音识别_手机语音识别怎么设置   语音识别设置能删除吗_语音识别系统工作流程
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭