微软语音识别引擎Speech
最近有一个语音识别的功能,C#项目又是内网没法联各大厂商的云API,因此打算使用微软的语音识别引擎Speech To Text;但是最终发现它在实现设置好关键词的前提下识别率倒还行,真正做语音识别几乎无法识别。做为命令控制似乎行得通,但是语音检索,就不可能先设置关键词了。在海量数据中检索数据,比如上千万、亿万条记录中检索数据,是不可能将所有关键词提前准备好的。所以最终没用用上~
贴一下大概代码,作为笔记…
private SRecognition sr;public SpeechRecognitionEngine recognizer = null;//语音识别引擎 public DictationGrammar dictationGrammar = null; //自然语法 //初始化一个引擎关键词的数组string[] msg = { "中华人民共和国", "4211811995","北京时间","注销登录","罗永浩", "人人都说江南好", "春暖花开","a123" , "A123" , "武汉加油" ,"结束" };//List<String> list1 = new List<String>();//for (int i = 0; i < 2000; i++)//{// list1.Add("A"+i);//}//String [] ss= list1.ToArray();sr = new SRecognition(msg);button2.Enabled = false;public void button1_Click(object sender, EventArgs e){sr.BeginRec(textBox1);}public void BeginRec(Control tbResult)//关联窗口控件 {TurnSpeechRecognitionOn();TurnDictationOn();cDisplay = tbResult;}private void TurnSpeechRecognitionOn()//启动语音识别函数 {if (recognizer != null){recognizer.RecognizeAsync(RecognizeMode.Multiple);//识别模式为连续识别 异步调用识别引擎,允许多次识别}else{MessageBox.Show("创建语音识别失败");}}private void TurnDictationOn(){if (recognizer != null){//recognizer.LoadGrammar(dictationGrammar);//加载自然语法 }else{MessageBox.Show("创建语音识别失败");}}public SRecognition(string[] fg) //创建关键词语列表 {bool bJapan = false;if (!bJapan){CultureInfo myCIintl = new CultureInfo("zh-CN");foreach (RecognizerInfo config in SpeechRecognitionEngine.InstalledRecognizers())//获取所有语音引擎 {if (config.Culture.Equals(myCIintl) && config.Id == "MS-2052-80-DESK"){recognizer = new SpeechRecognitionEngine(config);break;}//选择识别引擎}}else{CultureInfo myCIintl = new CultureInfo("ja-JP");foreach (RecognizerInfo config in SpeechRecognitionEngine.InstalledRecognizers())//获取所有语音引擎 {if (config.Culture.Equals(myCIintl) && config.Id == "MS-1041-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 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, SpeechRecognizedEventArgs e){//识别出结果完成的动作,通常把识别结果传给某一个控件 string text = e.Result.Text;switch (text){case "结束"://根据关键词不同,进行不同的操作或者跳转//然后改变引擎所关注的关键词,进行下一步的识别//sr.ChangeKeywords(new string[] { "XXX,AAA" });break;case "注销登录"://sr.ChangeKeywords(new string[] { "xxx" });break;default:MessageBox.Show("。。。");break;}cDisplay.Text += text;}
过程中借鉴了网上某篇文章但是没找到了,侵删。。
微软语音识别引擎Speech相关推荐
- Google,微软,科大讯飞的语音识别引擎对比
-Google提供了一个在线语音识别的API接口,通过该API可以进行中文.英文等语言的识别. API地址:http://www.google.com/speech-api/v1/recognize ...
- 使用微软的语音识别引擎Microsoft Speech API进行语音控制
以下代码来自:http://mmcheng.net/zh/imagespirit/ 本人仅作提取: SREngine语音识别引擎封装类: #pragma once/****************** ...
- VC++基于微软语音引擎开发语音识别总结
关于SAPI的简介 API 概述 SAPI API在一个应用程序和语音引擎之间提供一个高级别的接口.SAPI 实现了所有必需的对各种语音引擎的实时的控制和管理等低级别的细节. SAPI引擎的两个基本类 ...
- 使用Google语音识别引擎(Google Speech API)
本文转自csdn 使用Google语音识别引擎(Google Speech API)[3月5日修改] 分类: Qt Google 语音识别 API C++ 2012-01-24 17:56 19352 ...
- 普强“千语”语音识别引擎应用场景
语音是语言符号的一个主要载体,也是人类感知语言的物质存在.作为唯一标识说话人的发音特征,它由人的发音器官发出,同时传递出语言文字.语言意图等信息.因此,语音中包含有复杂的信息,获取语音中这些信息是人工 ...
- 微软语音识别技术屡破世界纪录的秘密都在这里了
原标题:微软语音识别技术屡破世界纪录的秘密都在这里了 丹棱君有话说:还记得 2016 年 10 月 18 日吗?那一天,微软语音团队在 Switchboard 语音识别基准测试中了刷新自己的纪录,词错 ...
- 我写了一个语音识别引擎
该自动语音识别引擎的特点是: 1.速度很快,可多线程并发识别多个语音源: 2.内核很小,很精干: 3.非常准确,既不会误识别,也不会识别不到: 4.适合识别固定模式的语音,比如: a).做外呼系统的, ...
- 如何使用Julius搭建一个语音识别引擎?
使用Julius搭建一个语音识别引擎这里主要就是听写程序,可以进行一段语音的连续识别,而且主要是针对中文: 一.语音识别引擎的基本结构 基本所有的开源语音识别引擎都是如下的结构,包括:Sphinx,J ...
- 在线语音识别引擎及识别方法与流程
本发明涉及语音识别领域,具体涉及一种在线语音识别引擎及识别方法. 背景技术: 深度学习网络(Deep-Learning Neural Network,DNN)技术的发展,带来了语音识别领域的飞速发展. ...
最新文章
- python编程入门指南磁力下载-使用python 将bt转磁力链接
- 利用mail实时监测服务器程序状态
- MySQL 参数文件及参数
- 我常用的Markdown公式符号
- CF1338D:Nested Rubber Bands(树形dp)
- ICDAR 2019论文:自然场景文字定位技术详解
- [Unity] Canvas 设置为 Screen Space - Camera 时,UI 被场景物体遮挡的解决办法:设置 Canvas 的 Plane Distance 为一个较小的数
- 获取oracle 里的表名与字段
- 打造 AI 语音新标杆,英特尔与腾讯云小微创新共赢
- ODBC连接MySQL数据库、TLex配置ODBC
- python:shapely模块
- 新教育杂志新教育杂志社新教育编辑部2023年第6期目录
- 【脚本工具】QQ个人数据管理方法与脚本
- QR code二维码简介及Qrencode库的移植与使用
- PMP证书真的烂大街了?
- 小科普:什么是屏幕分辨率
- python——列表基础操作
- 一款运动类APP开发需要哪些功能
- Java常用类(六):FilenameUtils类
- 吃瓜群众(永远的十二信徒)
热门文章
- 读取EXCEL表格数据到MATLAB成为矩阵
- 一个简洁的背单词、背短语python程序——英文背记系统(自用)
- matlab自动生成excel工作区,matlab数据怎么导出excel表格-matlab工作区数据怎么转为excel...
- [转载] 如何抱着女友睡最舒服
- html给页面整体添加左右边距_DIV CSS padding内补白(内边距)left right top bottom案例教程...
- vivo X90和iPhone 14哪个好 vivo X90 和苹果14 区别对比评测
- 入手评测:i9 11900K和r9 5900x 区别 i911900K和r95900x选哪个
- Prometheus监控系统
- 地图数据的类型及编码方法
- 写一个求平方根的函数求一个整数的平方根因为函数类型是整形所以平方根的结果是整数,例如5,的平方根是2,而不是2.3...