语音识别引擎_c# 语音识别引擎 - CSDN
精华内容
参与话题
  • —Google提供了一个在线语音识别的API接口,通过该API可以进行中文、英文等语言的识别。  API地址:http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=1 —参数解释...
    Google提供了一个在线语音识别的API接口,通过该API可以进行中文、英文等语言的识别。
     API地址:http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=1
    参数解释

     xjerr:错误标准

     client: 客户端类型

     lang:待识别语言类型,en-US是英文,中文为zh-CN

     maxresults最大返回识别结果数量

    识别基本流程:
    从音频输入设备获取原始音频并编码或直接调用音频文件。
    将音频POST至接口地址。
    分析处理返回的JSON并得出结果。
    请求接口
    地址:如前
    请求方式:http post
    请求数据:编码后的音频数据
    音频编码格式:wavspeexflac
    音频采样频率:8000Hz11025Hz16000Hz22050Hz24000Hz32000Hz44100Hz48000Hz
    主要优点
    语音识别引擎庞大,识别精度很高,适用于文本语音识别。提供多国语言的语音识别。
    任何平台都可以进行访问,容易使用。
    主要缺点
    API未开放,未能获知具体开发细节。
    识别引擎位于服务器端,识别的速度和网络质量有关,识别速度较慢。
    待识别音频的格式、大小、时长的限制。
     
     

    MicrosoftSpeech SDK

    Microsoft Speech SDK是微软公司提供在Windows平台上开发语音识别和语音合成应用程序的开发包,简称为SAPI,内含SRSpeech Recognition)和SSSpeechsynthesis)引擎,因此可以很方便地在自己的应用程序中添加这些功能。
    该语音引擎支持多种语音的识别和朗读,包括英文、日文、中文等。微软推出的应用编程接口API,虽然现在不是业界标准,但是应用比较广泛。
    识别基本流程:
    从音频输入设备获取原始音频并编码或直接调用音频文件。
    设定语音引擎和识别上下文等内容,配置本地访问属性。
    分析处理得到的文本结果
    请求接口
    请求方式:本地访问
    请求数据:编码后的音频数据
    音频编码格式:wav
    音频采样频率:8000Hz11025Hz16000Hz22050Hz24000Hz32000Hz44100Hz48000Hz
    主要优点
    基于COM组件,便于与DirectShow中的组件整合。
    语音识别引擎位于本地,便于访问,识别速度较快。
    待识别音频的大小、时长无限制。
    主要缺点
    缺少其他平台的支持,仅支持windows平台。
    语音识别引擎不够庞大,识别精准度较低。
    仅提供中日英三种语言的语音识别功能。
     
     

     iFLY Mobile Speech Platform 2.0

    科大讯飞为开发者提供了语音应用开发平台,提供语音合成、语音听写、语音识别、声纹识别等服务,为语音应用开发爱好者提供方便易用的开发接口,使得用户能够基于该开发接口进行多种语音应用开发。
    其主要功能有:
    实现基于HTTP协议的语音应用服务器,支持语音合成、语音听写、语音识别、声纹识别等服务
    提供基于移动平台和PC上的语音客户端子系统,内部集成音频处理和音频编解码模块,提供关于语音合成、语音听写、语音识别和声纹识别完善的API
    只需要在http://open.voicecloud.cn上申请成为开发者,便可以下载相关的SDK和开发文档。
    主要优点
    支持平台丰富,各个平台上都有相应的详细SDK文档
    语音识别引擎较庞大,对中文的识别精度很高。
    具端点检测功能,便于划分识别文本的句子。
    主要缺点
    识别引擎位于服务器端,须远程访问,识别速度较慢。
    对语言支持不如Google,目前仅支持中文听写。
    需要使用1028端口,在某些地方会有使用限制。
    当软件用户达到百万次后,需要开始收费。
     
     
    测试流程:
    从麦克风输入语音并编码或直接调用音频文件,调用的音频文件主要是从电影或是新闻节目中提取其音频,前者主要体现识别语音口音的多样性,后者是体现识别语音口音的正规性,从麦克风输入体现对针对某个人特定的口音。主要测试音频文件格式为wavflacflac需要由相同采样率的wav转换而来)测试采样率有8KHz16KHz24KHz32KHz44.1KHz
    分析各个引擎的识别准确度和花费时间时,选取了5段时长为25S、平均长度为150个中文字符的音频作为其测试音频,记录识别正确的文字和花费时间,准确度以识别正确的文字/文本总字数,同时包含识别出的单独的字、词,花费时间对于非本地引擎需要考虑音频传送和结果返回的时间。
    分析各个引擎中语速对识别准确度的影响,针对同一文本,测试不同语速(分为慢速、中速、快速)的音频,且时间均控制在25S,仅选取了24KHz44.1KHz音频进行测试,因为由测试准确度的测试中,已经得出在24KHz44.1KHz情况下,识别精确度较高。
    分别用googleMicrosoft和科大讯飞语音识别引擎对测试音频文件进行测试。其中使用google和科大讯飞引擎需通过访问其相关服务器,而Microsoft的语音识别引擎则是从本地进行访问。
    对所得结果进行数据分析,列出数据表格,分析各自引擎的优缺点。
     
    测试结果:
    语速对识别时间的影响
                            慢速                 中速                   快速
    Google              8s                   8.94s               10.125s
    SAPI                6.06s               6.63s                 5.375s
    科大讯飞          34.6s               35s                     23.6s
     
    语速对识别精度的影响
                            慢速                 中速                   快速
    Google           78.93%           77.52%               11.58%
    SAPI               28.7%             42.79%               6.81%
    科大讯飞         78.2%             80.48%              15.53%
     
    结果评价:
    1.Google
    Google语音识别引擎可以识别wav格式音频,但是测试所用wav均为非原始wav故识别精度很低,若将其转换为flac后则识别精度增加。对于flac格式中文音频,快速语音准确率达到11.58%,中速语音准确率达到72.52%,平均花费时间8.94S。慢速语音准确率达到78.93%,平均花费时间为8S。对于英文音频,快速语音准确率达到40.22%,中速语音准确率达到89.2%,慢速语音准确率达到80.58%,平均花费时间各为9.2s8.5s9.9s
    不同的音频采样率对识别效果和花费时间有影响,识别效果主要体现在音频中间部分名词和音频末端1s的识别结果,于中文而言新闻类平均准确率为72.37%,电影类平均准确率为44.36%。于英文而言,电影类平均准确率为35.3%。平均花费时间采样率越大,识别时间越短,如24KHz44.1KHz的同样内容音频,后者时间少1S左右。
    对于google语音识别引擎,由于语速过快会导致识别不准确,会出现多个音识别为一个字的现象,故所用时间较短,但是准确度较差。而语速过慢时,虽然语音的特征更加明晰会使得准确率上升,但是字与字之间的联系不密切,会出现本该是一个词却识别为同音的两个字,导致准确率下降,故其平均准确率和中速识别率相当,另一方面是所需识别的字较少,故识别时间相对中速短。
    对于视频流提取的音频和麦克风输入人声的识别,麦克风输入人声的平均准确度高于视频流中的的平均准确度,原因是视频流中的人声会带有各种口音一般带有背景噪音,而麦克风输入人声是单一的稳定的,背景噪音较小。准确度顺序大致为:新闻类>特定人>电影类,但不能忽略电影中也存在普通话标准发音。对于时间长度为20s以上的快速语音,测试期间无法识别,一直未能返回正确结果。不知原因。对于特定人输入的音频,音频头尾都可正确识别。若是输入视频流中音频,头尾1S的内容都不能很好的识别,容易出错。
    Google语音识别引擎数据库丰富,可以识别大部分日常用语,还包括当下流行词汇,人名,地名等。对于新闻类词汇判别比较准,而特定专业类名词通常以同音字代替。
    对于google识别的时间包括网络发送音频数据包时间,识别花费时间,返回结果时间。由于引擎位于服务器,需要通过网络访问,故网络质量在识别时间上占据极重要的位置,识别过程中经常会发生访问延迟、访问超时和请求无效等错误,故应该在网络良好的条件下使用google引擎,这也是非本地语音引擎库的缺点。同时音频文件超过1M时,也无法正确返回结果,估计是服务器的文件限制。
    若考虑语音的精准度,则倾向于选择google语音识别引擎。
     
     
    2.SAPI
    微软的SAPI语音识别引擎可以识别任意采样率的wav格式音频,当采样率比较低时如仅为8KHz,音频内容采样过程中会缺失,故识别不准确,理论上来说,采样率越高,识别精度越好。但是采样率超过一定值后,改进并不明显。经过测试得出以44.1KHz采样率识别精度较好,且花费时间较短。快速语音准确率为6.81%,中速语音准确率达到42.79%,平均花费时间6.63S。慢速语音准确率达到28.7%,平均花费时间为6.06S。识别效果主要体现在音频中间部分名词和音频末端1s的识别结果,新闻类平均准确率51.48%,电影类平均准确率为41.43%,特定人平均准确率为53.06%
    对于特定人输入的音频,音频头尾都可正确识别。若是输入视频流中音频,头尾1S的内容容易漏识别,且漏识别内容并非不显示,而是以其他文字代替诸如“他、淡”等字,影响了识别结果的理解。
    微软语音识别引擎数据库位于本地,访问方便、快捷,无需考虑网络延迟、音频文件过大无法传送等问题。其缺点便是本地数据库的大小限制了其识别精度,需要通过长时间的训练才有可能达到比较高的精准度,而相比之下google引擎数据库可以收集网络上的所有资料,训练文本并不缺乏,容易达到很高的精准度。SAPI可以识别大部分日常用语和常用的新闻词汇,但是对当下流行词汇,人名,地名识别精度很低,对特定专业类名词通常也以同音字代替。
     
     
    3.科大讯飞
    科大讯飞语音识别引擎仅可识别wav格式音频,为了达到理想的效果,有诸如条件限制,如音频须为采样率16KHz、每采样一点16bit、单声道,且音频长度小于90s。由于具有端点检测功能,每句话的长度不宜过长。快速语音准确率达到17.63%,平均花费时间29.2S。中速语音准确率达到80.48%,平均花费时间35S。慢速语音准确率达到78.2%,平均花费时间为34.6S。平均花费时间比另外两个引擎多了许多,主要原因是其端点检测功能,故一次能识别的语句长度有限制,需要分段识别,因此加长了识别的时间。
    端点检测的好处是方便音频中句子的分段,易于对对识别结果的理解。
    其引擎库也是位于服务器,需要通过网络访问,识别的时间包括网络发送音频数据包时间,识别花费时间,返回结果时间。网络质量在识别时间上也占据极重要的位置,且其需要开启80/1028端口后才能有效使用该引擎。待识别的音频需要质量清晰,一般对于网上流媒体而言,声音质量不高,识别较困难。
     
    以上的SAPI和科大讯飞的测试DEMO都是用他们SDK里自带的。GOOGLE的C#代码可参照http://www.cnblogs.com/eboard/archive/2012/02/29/speech-api.html
    另外介绍关于google语音识别的内容还可以参照http://blog.csdn.net/dlangu0393/article/details/7214728本文中有转载其小部分内容。
     
     

    由于测试样本数量并不算多,因此以上测试仅供参考

    转自 http://blog.csdn.net/yylsheng/article/details/8364487

    展开全文
  • 离线的语音识别以及语音评价功能,支持中文英文,支持单词,单字(中文),句子的评价,支持短句,单词,单字(中文)的识别
  • 五款免费开源的语音识别工具

    万次阅读 2018-03-23 15:41:51
    按:本文原作者 Cindi Thompson,美国德克萨斯大学奥斯汀分校(University of Texas at Austin)计算机科学博士,数据科学咨询公司硅谷数据科学...作为 SVDS 研究团队的成员,我们会经常接触各种不同的语音识别...

    按:本文原作者 Cindi Thompson,美国德克萨斯大学奥斯汀分校(University of Texas at Austin)计算机科学博士,数据科学咨询公司硅谷数据科学(Silicon Valley Data Science,SVDS)首席科学家,在机器学习、自然语言处理等领域具有丰富的学术研究和产业界从业经验。雷锋网编译。


    作为 SVDS 研究团队的成员,我们会经常接触各种不同的语音识别技术,也差不多见证了语音识别技术近几年的发展。直到几年之前,最先进的语音技术方案大多都是以语音为基础的(phonetic-based),包括发音模型(Pronunciation models),声学模型(Acoustic Modelling)和语言模型(Language Model)等。通常情况下,这些模型大多都是以隐马尔可夫模型(HMM)和 N-gram 模型为核心的。未来,我们希望以这些传统模型为基础,探索一些诸如与百度 Deep Speech 等最新的语音识别系统相结合的新技术。当然,目前互联网上可以找到许多针对这些基础模型进行解释、汇总的文章和资料,但针对它们之间的差别和特点展开阐述的却并不多。

    为此,我们对比了五款基于 HMM 和 N-gram 模型的语音识别工具:CMU Sphinx,Kaldi,HTK,Julius 和 ISIP。它们都是开源世界的顶级项目,与 Dragon 和 Cortana 等商业语音识别工具不同,这些开源、免费的工具可以为开发者提供更大的自由度以及更低的开发成本,因此在开发圈始终保持着强大的生命力。

    需要提前说明的是:以下分析大多来源于我们的主观经验,同时也参考了互联网上的其他信息。而且这篇文章也并非一个覆盖所有语音识别开源工具的汇总类文章,我们只是对比了其中五款相对更主流的产品。另外,HTK 并不是严格开源的,它的代码并不能重新组织发布,也不能用于商业用途。

    想知道更多语音识别工具的用户请点击以下链接,其中列出了几乎所有开源/非开源的语音识别工具,非常全面。

    https://en.wikipedia.org/wiki/List_of_speech_recognition_software 


      编程语言:

    根据你对不同编程语言的熟悉程度,你可能会更偏爱某一种工具。如上图所示,这里列出的五款工具中,除了 ISIP 只支持 C++ 之外,全都支持 Python。你可以直接在它们的官网找到不同语言对应的下载链接。不过,Python 版有可能并不会覆盖工具包的全部功能,有些功能还可能是为其他语言的特性单独设计的。另外值得注意的是,CMU Sphinx 还支持 Java、C 和其他更多语言。

      开发者活跃度:

    这里列出的五个项目均源于学术研究。

    从名字也能看出,CMU Sphinx 是一款源于卡内基梅隆大学的产品。它的研发历史大约可以追溯到 20 年前,目前在 GitHub 和 SourceForge 平台同步更新。在 GitHub 平台有 C 和 Java 两个版本,而且据说分别只有一个管理员维护。但在 SourceForge 平台却有 9 个管理员和十几个开发者。

    Kaldi 源于 2009 年的一场研讨会,代码目前在 GitHub 平台开源,共有 121 位贡献者。 

    HTK 始于 1989 年的剑桥大学,曾一度商业化,但目前又回归剑桥。如前所述 HTK 现在并不是一款严格意义的开源工具,而且更新缓慢(虽然它的最新版本更新于 2015 年 12 月,但前一个版本的更新时间却是 2009 年,中间隔了差不多 6 年时间)。

    Julius 始于 1997 年,最后一个主要版本更新于 2016 年 9 月,据称其 GitHub 平台有三名管理员维护。

    ISIP 是第一个比较先进的开源语音识别系统,起源于密西西比州。它主要在 1996 年到 1999 年之间研发,最后一个版本发布于 2011 年,在 GitHub 平台出现之前就已经停止更新了。


      社区活跃度:

    这一部分我们考察了上述五个工具的邮件和社区讨论情况。

    CMU Sphinx 的论坛讨论热烈,回帖积极。但其 SourceForge 和 GitHub 平台存在许多重复的 repository。相比之下,Kaldi 的用户则拥有更多交互方式,包括邮件、论坛和 GitHub repository 等。HTK 有邮件列表,但没有公开的 repository。Julius 官网上的论坛链接目前已经不可用,其日本官网上可能有更详细的信息。ISIP 主要用于教育目的,其邮件列表目前已不可用。

      教程和示例:

    CMU Sphinx 的文档简单易读,讲解深入浅出,且贴近实践操作。

    Kaldi 的文档覆盖也很全面,但是在我看来更难理解。而且,Kaldi 同时包括了语音识别解决方案中的语音和深度学习方法。

    如果你并不熟悉语音识别,那么可以通过对 HTK 官方文档(注册后可以使用)的学习对该领域有一个概括的认识。同时,HTK 的文档还适用于实际产品设计和使用等场景。

    Julius 专注于日语,其最新的文档也是日语,但团队正在积极推动英文版的发布。

    以下链接提供了一些基于 Julius 的语音识别样例。

    https://github.com/julius-speech/dictation-kit 

    最后是 ISIP,虽然它也有一些文档,但是并不系统。

      预训练模型:

    即使你使用这些开源工具的主要目的是想要学习如何去训练一个专业的语音识别模型,但一个开箱即用的预先训练好的模型仍然是一个不可忽略的优点。

    CMU Sphinx 包括英语、法语、西班牙语和意大利语在内的诸多可以直接使用的模型,详情可以参考它的说明文档。

    Kaldi对现有模型进行解码的指令深藏在文档中,不太容易找到,但我们仍然发现了贡献者在 egs/voxforge 子目录下基于英文 VoxForge 语料库训练好的一个模型,并且还可以通过 online-data 子目录下的一个脚本直接运行。详情可以参考 Kaldi 项目的 repository。

    我们没有深入挖掘其他三个软件包的模型训练情况,但它们应该至少包含一些简单可用的预训练模型,而且与 VoxForge 兼容(VoxForge 是一个非常活跃的众包语音识别数据库和经过训练的模型库)。

    展开全文
  • julius开源语音识别引擎

    千次阅读 2014-07-24 20:04:11
    开源语音识别软件HTK,对Julius和 Kaldi等系统了解者更佳

        开源语音识别软件HTK,对Julius和 Kaldi等系统了解者更佳



    一.Installation By Source tarball

    Installation process is simple and contains the following points:

    1. Download the newest source tarbal from Julius official site – link
    2. Unpack the archive for example to your user home directory
    3. Configure and install julius by following commands:

    <span style="color: rgb(122, 8, 116);"><strong>cd</strong></span> ~<span style="font-weight: bold;">/</span>julius-4.2.2<span style="font-weight: bold;">/</span>
    <span style="color: rgb(194, 12, 185);"><strong>sudo</strong></span> .<span style="font-weight: bold;">/</span>configure
    <span style="color: rgb(194, 12, 185);"><strong>sudo</strong></span> <span style="color: rgb(194, 12, 185);"><strong>make</strong></span>
    <span style="color: rgb(194, 12, 185);"><strong>sudo</strong></span> <span style="color: rgb(194, 12, 185);"><strong>make</strong></span> <span style="color: rgb(194, 12, 185);"><strong>install</strong></span>

    二.Installation using apt-get in Ubuntu
    不要使用sudo apt-get install julius这种方式安装,安装的是老版本,会有一些问题的。

    4. Try it by typing in command line:

    julius-4.2.1
     
    <span style="font-weight: bold;">//</span>output
    Julius rev.4.2.2 - based on 
    JuliusLib rev.4.2.2 <span style="color: rgb(122, 8, 116);"><strong>(</strong></span>fast<span style="color: rgb(122, 8, 116);"><strong>)</strong></span>  built <span style="font-weight: bold;">for</span> i686-pc-linux
     
    Copyright <span style="color: rgb(122, 8, 116);"><strong>(</strong></span>c<span style="color: rgb(122, 8, 116);"><strong>)</strong></span> 1991-2012 Kawahara Lab., Kyoto University
    Copyright <span style="color: rgb(122, 8, 116);"><strong>(</strong></span>c<span style="color: rgb(122, 8, 116);"><strong>)</strong></span> 1997-2000 Information-technology Promotion Agency, Japan
    Copyright <span style="color: rgb(122, 8, 116);"><strong>(</strong></span>c<span style="color: rgb(122, 8, 116);"><strong>)</strong></span> 2000-2005 Shikano Lab., Nara Institute of Science and Technology
    Copyright <span style="color: rgb(122, 8, 116);"><strong>(</strong></span>c<span style="color: rgb(122, 8, 116);"><strong>)</strong></span> 2005-2012 Julius project team, Nagoya Institute of Technology
     
    Try <span style="color: rgb(255, 0, 0);">'-setting'</span> <span style="font-weight: bold;">for</span> built-in engine configuration.
    Try <span style="color: rgb(255, 0, 0);">'-help'</span> <span style="font-weight: bold;">for</span> run <span style="font-weight: bold;">time</span> options.

    5. Last additional thing needed to run Julius smoothly is a julius-voxforge package which can be installed via apt-get by typing in command line:

    <span style="color: rgb(194, 12, 185);"><strong>sudo</strong></span> <span style="color: rgb(194, 12, 185);"><strong>apt-get install</strong></span> julius-voxforge

    That’s all now you can start to configure it, because it’s not coming configured just out of the box. I’ll write a post in next few days about basic configuration to which link will be added here.

    注意事项:

    1.readme当中的命令已经发生了变化:

    sudo mkdfa.pl sample

    export TMP=/tmp





    使用Julius搭建一个语音识别引擎这里主要就是听写程序,可以进行一段语音的连续识别,而且主要是针对中文:

    一.语音识别引擎的基本结构

    基本所有的开源语音识别引擎都是如下的结构,包括:Sphinx,Julius等,下面主要以Julius为例,说明相关的内容:

    1.Acoustic Model(声学模型):用于音素的识别。

    所使用的技术:

    1) HMM(Hiden Mokov Model):

    2) GMM(Gaussian Mixture Model):

    3)DFA&NFA:

    构建自己的声学模型:

    可以使用的工具:

    2.Phoneme Dictionary(读音词典):用于词语的识别。

    构建自己的读音词典:

    可以使用的工具:


    3.Language Model(语言模型):用于语句的识别。

    构建自己的读音词典:

    可以使用的工具:


    上面的三者3=>2=>1 依次成依赖关系,只要把上面的三者配置好,一个语音识别引擎就搭建好了,其他的就是利用开发包提供API进行客制化开发了。

    二.具体操作

    以Julius-Voxforge当中的Sample为例,使用Julius主要就是涉及三个文件:

    1.sample.grammar:语言文法。


    2. sample.voca:读音词典。


    3. julian.jconf:语音识别引擎的主要配置文件。在这里指定相面的三大要素.

    至于其他文件:

    sample.dfa

    sample.dict

    sample.term

    都是通过命令自动生成的---mkdfa.pl sample。


    展开全文
  • 最近有一个语音识别的功能,C#项目又是内网没法联各大厂商的云API,因此打算使用微软的语音识别引擎Speech To Text;但是最终发现它在实现设置好关键词的前提下识别率倒还行,真正做语音识别几乎无法识别。做为命令...

    最近有一个语音识别的功能,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;
        }
    
    
    
    
    
    

    过程中借鉴了网上某篇文章但是没找到了,侵删。。

    展开全文
  • 我写了一个语音识别引擎

    万次阅读 热门讨论 2008-07-08 09:38:00
    该自动语音识别引擎的特点是: 1.速度很快,可多线程并发识别多个语音源; 2.内核很小,很精干; 3.非常准确,既不会误识别,也不会识别不到; 4.适合识别固定模式的语音,比如: a).做外呼系统的,需要准确识别诸如...
  • 使用Julius搭建一个语音识别引擎这里主要就是听写程序,可以进行一段语音的连续识别,而且主要是针对中文: 一.语音识别引擎的基本结构 基本所有的开源语音识别引擎都是如下的结构,包括:Sphinx,Julius等,下面...
  • 将声音转换成文字

    万次阅读 2012-05-10 14:45:23
    再打开工具菜单下的语音命令,这时会弹出语音识别对话框,下一步进入麦克风向导,一直下一步,在这个过程中会提示你对麦克风和耳机进行测试,这个你自己都会哈.完了之后会谈出声音训练对话框,这时你需要进行语音训练,建议...
  • PS. TTS即TextToSpeech(从文本到语言),也就是语音合成。TTS把文字智能地转化为自然语音流。...纵观整个应用市场会发现越来越多的APP含有语音识别语音合成的功能,TTS可以帮助开发者轻松构建各类语音交互应用
  • c# 实现初级的语音识别

    万次阅读 热门讨论 2009-01-22 21:28:00
    SAPI.51 SDK浅析以及安装 SAPI SDK是微软公司免费提供的语音应用开发工具包,这个SDK中包含了语音应用设计接口(SAPI)、微软的连续语音识别引擎(MCSR)以及微软的语音合成(TTS)引擎等等。目前的5.1版本一共可以
  • 使用C#进行语音识别(Speech-to-Text)

    千次阅读 2008-05-29 18:28:00
    本文大体的介绍怎样通过使用C#和Speech SDK5.1来进行语音识别,通过微软提供的Speech SDK你也可以使用其他的语言进行语音识别的开发,目前最新的Release版本是5.1。介绍 声音的交流是我们平时最常见的交流方式,...
  • “讯飞语音+”语音识别开放功能使用方法介绍

    万次阅读 多人点赞 2014-06-11 10:29:07
    本文介绍了讯飞语音+接入的方法和基本功能的介绍
  • 结合现在语音算法公司越来越多的情况,本次小君针对当前市场份额较大的几家算法公司,分别测试了语速对语音引擎识别结果的影响。这几家公司分别是科大讯飞,百度,思必驰信息科技和云知声信息科技有限公司。每个公司...
  • VC++基于微软语音引擎开发语音识别总结

    万次阅读 热门讨论 2010-04-15 01:54:00
    SAPI引擎的两个基本类型是文本语音转换系统(TTS)和语音识别系统。TTS系统使用合成语音合成文本字符串和文件到声音音频流。语音识别技术转换人类的声音语音流到可读的文本字符串或者文件。 文本语音转换
  • 导读11 月 21 日到 23 日,搜狗、百度和科大讯飞三家公司接连召开了三场发布会,向外界展示了自己在语音识别和机器翻译等方面的最新进展。值得注意的是,这三家公司几乎在同一时段宣布了各自中文语音识别准确率达到...
  • 框架看法:智能音箱大战全面开火,那么问题来了:如何成为一名全栈语音识别工程师?
  • 本次评测主要是对比每家语音识别引擎降噪性能,采取将语音文件直接送接口的方式进行测试,接口同样是基于各家公司给广大语音开发爱好者提供的开源开发接口。 测试语音信息详情如下: • 音频编码...
  • 2018年语音识别行业测评

    千次阅读 2018-11-12 15:33:01
    会议室实拍图大家好,现在已经到了2018年的年底了,作为一个语音识别行业内的工作者,我想写一篇文章,来给大家测试一下,目前市面上各大"语音识别"引擎的实际识别效果,本文仅作为交流学习使用. 一、...
  • 几个常见的语音交互平台的简介和比较

    万次阅读 多人点赞 2014-01-19 16:05:03
    最近做了两个与语音识别相关的项目,两个项目的主要任务虽然都是语音识别,或者更确切的说是关键字识别,但开发的平台不同, 一个是windows下的,另一个是android平台的,于是也就选用了不同的语音识别平台,前者选...
  • 科大讯飞和Tizen-TTS语音合成引擎

    万次阅读 2013-06-29 14:57:20
    最近在做一个文本转...科大讯飞还提供了AiTalk用于语音识别,AiWrite用于手写识别服务等。另外还有针对6种平台的SDK和开发示例。  其中AiSound5.0只提供TTS接口(即将文本字符串合成PCM格式的音频数据),不提供播音
1 2 3 4 5 ... 20
收藏数 23,706
精华内容 9,482
关键字:

语音识别引擎