精华内容
下载资源
问答
  • Windows语音识别

    热门讨论 2013-01-03 22:36:39
    Windows语音识别技术,包含两个文件,一个源代码文件,一个xml文件,程序可以识别xml文件中定义的关键字,本程序用vs2010调试通过
  • windows 语音识别

    2020-10-27 18:29:24
    广告关闭2017年12月,云+社区对外...进入“中文语音识别”目录,然后运行下面的命令 pocketsphinxbinreleasex64pocketsphinx_continuous.exe -hmmzh_broadcastnews_ptm256_8000 -lm zh...下载安装 pocketsphinx在 w...

    flbm1hkjk6.jpg广告关闭

    2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。

    进入“中文语音识别”目录,然后运行下面的命令 pocketsphinxbinreleasex64pocketsphinx_continuous.exe -hmmzh_broadcastnews_ptm256_8000 -lm zh...下载安装 pocketsphinx在 windows 上,可以通过下面地址直接下载编译好的二进制可执行包。 https:cmusphinx.github.iowikidownload 注:下载其中 pocket...

    jkiyjl615o.png

    语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字。 应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。 一、功能概述实现将语音转换为文字,调取第3方接口。 比如百度ai,图灵机器人,得到想要的结果。 二、软件环境操作系统:win10语言...

    【导读】亚马逊的 alexa 的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。 整合了语音识别的 python 程序提供了其他技术无法比拟的交互性和可访问性。 最重要的是,在 python 程序中实现语音识别非常简单。 阅读本指南,你就将会了解。 你将学到:语音识别的工作原理...

    译者 | 廉洁编辑 | 明明出品 |ai科技大本营(公众号id:rgznai100)【ai科技大本营导读】亚马逊的 alexa的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。 整合了语音识别的 python 程序提供了其他技术无法比拟的交互性和可访问性。 最重要的是,在 python 程序中实现语音识别...

    it6rtj8oan.jpeg

    译者 | 廉洁编辑 | 明明【ai科技大本营导读】亚马逊的 alexa 的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。 整合了语音识别的 python 程序提供了其他技术无法比拟的交互性和可访问性。 最重要的是,在 python 程序中实现语音识别非常简单。 阅读本指南,你就将会了解。 你...

    111no6fsrq.jpeg

    但是在资源受限的物联网应用场景下(无法外接鼠标键盘显示器),如果能够通过语音来控制设备,与设备进行交互,那还是很实用的。 继上一篇《windows 10 iot serials 4 - 如何在树莓派上使用cortana语音助手》之后,本文将详细讲述如何为运行windows 10 iotcore系统的树莓派添加语音识别和语音交互功能。 1. 硬件准备...

    ml566ih91w.png

    http restful 形式是什么意思? 腾讯云语音识别fapi中的实时语音识别是怎么接入的呢? 实时语音识别中的实时就是一个难点,不过通过目前的效果来看,这个技术是已经很先进了。 image.png通过这个控制台我没有找到进入帮助文档的链接。 这个的实现,是必须要有终端搭配的,那我所依赖的终端就是windows平台。 那就先来...

    var question = speechrecognitionresult; 这是我用来识别uwp语音的代码,该解决方案在本地工作,但是当部署在raspberry pi中时,它无法识别语音...var websearchgrammar = newwindows.media.speechrecognition.speechrecognitiontopicconstraint(windows.media.speechrecognition.speechrecognition...

    asr自动语音识别(automatic speech recognition)是一种将人的语音转换为文本的技术。 以前的asr太难用了。 瑞士那边做了一款厉害的asr来替换。 据说是基于人工智能的,大数据的。 反正就是很牛的,让我来测试,供他们拍脑袋来做决策。 我只测反应时间,至于准不准,不在此次范围内(噪音,精度等)。 开发将asr的sdk...

    s027wmh6mw.png

    asr自动语音识别(automatic speech recognition)是一种将人的语音转换为文本的技术。 以前的asr太难用了。 瑞士那边做了一款厉害的asr来替换。 据说是基于人工智能的,大数据的。 反正就是很牛的,让我来测试,供他们拍脑袋来做决策。 我只测反应时间,至于准不准,不在此次范围内(噪音,精度等)。 开发将asr的sdk...

    hrn3o5zf3s.jpeg

    《mit科技评论》认为,“科大讯飞旗下的语音助手是中国版的siri,其可携带实时翻译器则是一款杰出的人工智能应用,克服了方言、俚语和背景杂音,可将汉语精准地翻译成十几种语言。 科大讯飞在中国语音技术市场的占有率70%。 越来越多的人认为,语音识别将成为下一代交互革命的关键技术。 与此同时,在日常生活中...

    前一篇博客说了一下怎么在 windows 平台使用 pocketsphinx 做中文语音识别,今天看看在 linux 上怎办实现。 由于 pocketsphinx 没有提供 linux 的二进制包,因此我们需要自己根据源码编译。 下载从下面地址下载源代码 https:sourceforge.netprojectscmusphinxfiles 这里,我使用的是 sphinxbase-5prealpha.tar.gz 和 ...

    原文博客:doi技术团队链接地址:https:blog.doiduoyi.comauthors1584446358138初心:记录优秀的doi技术团队学习经历本文链接:基于pytorch实现的masr中文语音识别masr是一个基于端到端的深度神经网络的中文普通话语音识别项目,本项目是基于masr 进行开发的。 本教程源码地址:https:github.comyeyupiaolingmasr.git...

    j09u668v7l.png

    常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如windows pcm文件,也就是俗称的wav文件。 wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。 下图是一个波形的示例。? 在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。 这个静音切除的操作一般称为...

    高通公司人工智能研究人员表示,该公司正在研制用于智能终端的语音识别系统,通过综合采用循环神经网络和卷积神经网络,该系统语音识别准确率可达95%。 在波士顿举行的re-work深度学习峰会上,高通公司的人工智能研究员chris lott介绍了他的团队在一个新语音识别程序方面的工作。 该系统工作于智能手机或其他便携式...

    38zux8hug1.jpg

    整合了语音识别的 python 程序提供了其他技术无法比拟的交互性和可访问性。 最重要的是,在 python 程序中实现语音识别非常简单。 阅读本指南,你就将会了解。 你将学到:语音识别的工作原理; pypi 支持哪些软件包; 如何安装和使用 speechrecognition 软件包——一个功能全面且易于使用的 python语音识别库。 ▌语言...

    最重要的是,在 python 程序中实现语音识别非常简单。 阅读本指南,你就将会了解。 你将学到:语音识别的工作原理; pypi 支持哪些软件包; 如何安装和使用 speechrecognition 软件包——一个功能全面且易于使用的 python语音识别库。 ▌语言识别工作原理概述语音识别源于 20 世纪 50 年代早期在贝尔实验室所做的研究 ...

    整合了语音识别的 python 程序提供了其他技术无法比拟的交互性和可访问性。 最重要的是,在 python 程序中实现语音识别非常简单。 阅读本指南,你就将会了解。 你将学到:语音识别的工作原理; pypi 支持哪些软件包; 如何安装和使用 speechrecognition 软件包——一个功能全面且易于使用的 python语音识别库。 ▌语言...

    qd340a9eu2.png

    作者 | pelhans来源 | csdn博客目前网上关于tensorflow 的中文语音识别实现较少,而且结构功能较为简单。 而百度在paddlepaddle上的 deepspeech2 实现功能却很强大,因此就做了一次大自然的搬运工把框架转为tensorflow.... 简介百度开源的基于paddlepaddle的deepspeech2实现功能强大,简单易用,但新框架上手有难度...

    zxl0aixylx.svg

    }}开始识别按钮 语音合成按钮private voidbutton2_click(object sender, eventargs e){ string value = this.videotype.text; string filepath = this.filepath.text; 设置appidaksk string app_id = 14433392; string api_key = c7wmyglewv3wm2yogwv5gd08; string secret_key = xcvwiwikalbdbaicgisnq6aqimtj3qua...

    展开全文
  • Windows语音识别技术 Windows语音识别技术 Windows语音识别技术 Windows语音识别技术 信管131 操作步骤 在开始菜单栏打开语音识别 朗读开始聆听或停止聆听来控制语音识别的开始和结束 可以执行所需的命令在执行前...
  • Windows语音识别技术 操作步骤 在开始菜单栏打开语音识别 朗读开始聆听或停止聆听来控制语音识别的开始和结束 可以执行所需的命令在执行前可以了解帮助教程了解命令的说出方式 在使用word时先选择语言再进行之后的...
  • Windows 语音识别编程

    2018-11-15 02:35:23
    Windows 语音识别编程

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                     语音类
      1)在构造语音类之前,必须先设置好工程环境:
      a、从微软官方网站下载windows speech sdk并安装,然后在Visual Studio 6.0中进行相关设置,在Project Setings选项的C++选项卡的“分类:预处理器”添加“,__WIN32_DCOM”(为预先初始化COM组件成功);
      b、将预处理头文件选项选中“自动使用预补偿页眉”;
      c、在常规选项卡中选择“实用MFC静态连接库”;
      入图:(一)
      
      2)封装语音类
      由于采用面向对象的编程理念,借助UML(Unified Modeling Language统一建模语言)构造CSPEECH语音类如下
      
      CSPEECH类
      
      + void InitSR(); //初始化语音
      +void RecoEvent();//识别命令函数
      
      +BOOL b_initSR;
      +BOOL b_Cmd_Grammar;
      
      //3个语音接口
      +CComPtr m_cpRecocontxt;
      +CComPtr m_cpRecoGrammar;
      +CComPtr m_cpRecoEngine;
      
      然后开始添加语音类,需要注意的是在定义语音类的头文件中,包含〈sphelper.h〉并且自定义语音识别消息和类型
      #define GID_CMD_GR 333333
      #define WM_RECOEVENT WM_USER+102
      剩下来就是对cpp文件的函数initSR()和RecoEvent()补充函数体
      
      3)具体见下面代码:
      (1)void CSpeech::initSR()
      {
      HRESULT hr=S_OK;
      hr=m_cpRecoEngine.CoCreateInstance(CLSID_SpInprocRecognizer);//创建识别引擎COM实例
      if(SUCCEEDED(hr))
      {
      hr =m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt );//创建识别上下文
      }
      else
      MessageBox(hWnd,"error1","error",S_OK);
      if(SUCCEEDED(hr))
      {
      hr = m_cpRecoCtxt->SetNotifyWindowMessage(hWnd, WM_RECOEVENT, 0, 0 );
      }//消息机制设置,使计算机时刻监听语音消息
      else
      MessageBox(hWnd,"error2","error",S_OK);
      if (SUCCEEDED(hr))
      {
      ULONGLONG ullMyEvents = SPFEI(SPEI_RECOGNITION) | SPFEI(SPEI_HYPOTHESIS);
      hr = m_cpRecoCtxt->SetInterest(ullMyEvents, ullMyEvents);
      }
      else
      MessageBox(hWnd,"error3","error",S_OK);
      //设置默认的音频
      CComPtr m_cpAudio;
      hr=SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN,&m_cpAudio);//建立默认的音频输入对象
      hr=m_cpRecoEngine->SetInput(m_cpAudio,TRUE);//设置识别引擎输入源
      hr=m_cpRecoCtxt->CreateGrammar(GID_CMD_GR,&m_cpCmdGrammar);//创建命令语法
      b_Cmd_Grammar=TRUE;
      if(FAILED(hr))
      {
      MessageBox(hWnd,"error 4","error",S_OK);
      }
      hr=m_cpCmdGrammar->LoadCmdFromResource(NULL,MAKEINTRESOURCEW(IDR_CMDCTRL),L"SRGRAMMAR",MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), SPLO_DYNAMIC);//加载命令语法文件
      if(FAILED(hr))
      {
      MessageBox(hWnd,"error5","error",S_OK);
      }
      b_initSR=TRUE;
      }
      
      (2)BOOL CSpeech::RecoEvent()
      {
      USES_CONVERSION;
      CSpEvent event;
      while(event.GetFrom(m_cpRecoCtxt)==S_OK)
      {
      switch(event.eEventId)
      {
      case SPEI_RECOGNITION:
      {
      static const WCHAR wszUnrecognized[]=L"";
      CSpDynamicString dstrText;
      if(FAILED(event.RecoResult()->GetText(SP_GETWHOLEPHRASE,SP_GETWHOLEPHRASE,TRUE,&dstrText,NULL)))
      {
      dstrText=wszUnrecognized;
      }
      dstrText.CopyToBSTR(&SRout);
      Recstring.Empty();
      Recstring=SRout;
      if(b_Cmd_Grammar)
      {
      if(Recstring=="左")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"左转",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      m_OpenGL->m_baiscobj->LEFT=1;
      return TRUE ;
      }
      
      if(Recstring=="向下走")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"开始后退",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      m_OpenGL->m_baiscobj->BACK=1;
      return TRUE ;
      }
      if(Recstring=="最小化")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"最小化",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      SendMessage(hWnd,WM_SYSCOMMAND, SC_MINIMIZE, MAKELPARAM(0, 0));
      
      return TRUE;
      }
      if(Recstring=="右")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"开始右转",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      m_OpenGL->m_baiscobj->RIGHT=1;
      return TRUE ;
      }
      if(Recstring=="停下来")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"动作开始了",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      m_OpenGL->m_baiscobj->Move=0;
      m_OpenGL->m_baiscobj->BACK=0;
      m_OpenGL->m_baiscobj->LEFT=0;
      m_OpenGL->m_baiscobj->RIGHT=0;
      return TRUE ;
      }
      
      if(Recstring=="跑步")
      {
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return FALSE;
      }
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"动作开始了",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      m_OpenGL->m_baiscobj->Move=1;
      return TRUE ;
      }
      if(Recstring=="退出")
      {
      m_OpenGL->CleanUp(); // 结束处理
      PostQuitMessage(0);
      return TRUE;
      }
      }
      }
      }
      }return TRUE;
      }
      要注意的是RecoEvent()必须能处理人物、摄像头的漫游,所以在人物、摄像机类的行为函数中添加了控制变量Move、BACK、LEFT、RIGHT;并附了初值1,当在行为函数中为1时行为函数体执行,所以也必须
      #include "OpenGL.h"
      #include "baiscobj.h"
      其间我们借助于指针变量,巧妙的使语音能控制行为,却不影响动画的刷新,但不足的是由于opengl动画md2模型的不能导入成功,使踢球,跳木箱等功能函数没有完成,所以只要行为函数出来,可通过上述同样方法实现语音控制。
      
      4)如何在winmain()函数中执行语音程序?
      首先包含语音头文件〈sapi.h〉
      接着(#define CSpeech speech)定义语音类对象
      
      INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,INT )// WinMain程序入口
      {
      ::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);//初始化COM
      ……
      char cc[]="tml";
      WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
      GetModuleHandle(NULL), NULL, NULL, NULL, (LPCTSTR)IDR_MENU1,
      cc, NULL };
      RegisterClassEx( &wc );
      m_OpenGL=new OpenGL();//
      hWnd = CreateWindowEx(NULL,cc,"智能精灵键盘(↑进↓退→右←左UP仰DOWM俯)",
      dwStyle|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,nX,nY,Width, Height,NULL,NULL,hInst,NULL); // 创建窗口
      ShowWindow( hWnd, SW_SHOWDEFAULT ); // 显示窗口
      UpdateWindow( hWnd ); // 刷新窗口
      speech.b_Cmd_Grammar=FALSE;
      speech.initSR();
      GameLoop(); // 进入消息循环
      return 0;
      }
      通过speech.initSR(),执行语音的初始化,为了设置一个简单的语音识别开关,简单的添加一个任务栏,只有语音这一个菜单资源,然后利用消息机制,在消息处理函数里Switch(message)里添加:
      case WM_COMMAND:
      switch(LOWORD(wParam))
      {
      case IDM_SPEECH:speech.startcmd();
      }
      return 0;break;
      即当单击语音菜单时,则使语音功能完全激活,下面是这个函数的实体:
      
      void CSpeech::startcmd()
      {
      if(b_initSR)
      {
      HRESULT hr=m_cpCmdGrammar->SetRuleState(NULL,NULL,SPRS_ACTIVE);
      ISpVoice *pVoice=NULL;
      if(FAILED(CoInitialize(NULL)))
      {
      MessageBox(hWnd,"Error to initialize COM","error",S_OK);
      return ;
      }
      hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice);
      if(SUCCEEDED(hr))
      {
      hr=pVoice->Speak(L"语法已经激活",0,NULL);
      pVoice->Release();
      pVoice=NULL;
      }
      CoUninitialize();
      }
      }
      5)在所有的工作完成之前,还必须先在项目工程下添加XML语法文件,通过initSR()中的LoadCmdFromResource()函数加载;XML文件可通过以记事本形式打开编辑。具体如下:
      ---

    向上走

    向下走

    停下来

    跑步

    识别

    语音

    还原

    文件

    踢球

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • c# windows语音识别与朗读示例 本示例通过windows语音识别功能进行语音识别和文本朗读。 打开windows麦克风,点击start按键,大声朗读 “中国”、“美国”、“英国”,识别成功将发出“嘟”的提示音并朗读对应结果。...

    c# windows语音识别与朗读示例

    本示例通过windows语音识别功能进行语音识别和文本朗读。
    打开windows麦克风,点击start按键,大声朗读 “中国”、“美国”、“英国”,识别成功将发出“嘟”的提示音并朗读对应结果。

    用到的语音识别模块包括:
    using System.Speech.Recognition;
    using System.Speech.Synthesis;

    动态连接库文件在我的资源中下载.System.Speach.dll

    示例界面如下:
    在这里插入图片描述
    程序源码如下:

    using System;
    using System.Runtime.InteropServices;
    using System.Speech.Recognition;
    using System.Speech.Synthesis;
    using System.Threading;
    using System.Windows.Forms;
    
    namespace Test
    {
        public partial class FormVoiceControl : Form
        {
            static SpeechSynthesizer SS = new SpeechSynthesizer();
            private SpeechRecognitionEngine SRE = new SpeechRecognitionEngine(); //语音识别模块
            private bool SRE_listening = false;
            private int wordid;
            private string shibie;
    
            [DllImport("kernel32.dll")]
            public static extern bool Beep(int freq, int duration);
    
            public FormVoiceControl()
            {
                InitializeComponent();
            }
    
            public void InitVoice()  //语音识别初始化
            {
                //SS.SelectVoice("lily");
                SRE.SetInputToDefaultAudioDevice();  // 默认的语音输入设备,也可以设定为去识别一个WAV文
    
                GrammarBuilder GB = new GrammarBuilder();
    
                GB.Append(new Choices(new string[] { "中国", "美国", "英国"}));
    
                DictationGrammar DG = new DictationGrammar();
    
                Grammar G = new Grammar(GB);
    
                G.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(G_SpeechRecognized);  //注册语音识别事件
    
                SRE.EndSilenceTimeout = TimeSpan.FromSeconds(2);
    
                SRE.LoadGrammar(G);
    
            }
    
            void G_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
            {
                Beep(500, 500);//已识别提示音
    
                string result = e.Result.Text;            
                switch (result)
                {
                    case "中国":
                        shibie = "中国:五星红旗";
                        choice(0);
                        break;
                    case "美国":
                        shibie = "美国:星条旗";
                        choice(1);                    
                        break;
                    case "英国":
                        shibie = "英国:米字旗";
                        choice(2);
                        
                        break;               
                }
    
            }
            private void Button1_Click(object sender, EventArgs e)
            {
                if (SRE_listening == false)
                {
                    button1.Text = "stop";
                    SRE.RecognizeAsync(RecognizeMode.Multiple);
                }
                else
                {
                    button1.Text = "start";
                    SRE.RecognizeAsyncStop();
                }
                lblanswer.Text = "";
               SRE_listening = !SRE_listening;
            }
    
            private void choice(int id)
            {
                wordid = id;
    
                Thread t1;
                Thread t2;           
    
                t1 = new Thread(new ThreadStart(ShowAnswer));
                t1.Start();
                t1.Join();
                t2 = new Thread(new ThreadStart(SpeekAnswer));
                t2.Start();
            }
            void ShowAnswer()  //线程
            {
                MethodInvoker mi = new MethodInvoker(this.dosomething);
                this.BeginInvoke(mi);
    
            }
            void dosomething()
            {
                lblanswer.Text = shibie;
            }
            void SpeekAnswer()  //线程
            {
                switch (wordid)
                {
                    case 0:
                        SS.Speak("五星红旗");
                        
                        break;
                    case 1:
                        SS.Speak("星条旗");
                        
                        break;
                    case 2:
                        SS.Speak("米字旗");
                        
                        break;               
                }
            }
    
            private void FormVoiceControl_Load(object sender, EventArgs e)
            {
                InitVoice();
    
            }     
    
    
        }
    }
    
    
    展开全文
  • Windows语音识别(WSR),包含在Microsoft Windows Vista,Windows 7中,可免费用于Windows XP 蜻蜓的文档可从在线获得。 蜻蜓的常见问题解答可在。 可以在找到蜻蜓的邮件列表/讨论组。 特征 编写Dragonfly的目的是...
  • windows语音识别vb扩展

    2009-03-14 12:16:43
    windows语音识别vb扩展,自己编的小程序,要安装微软的speech.sdk。
  •  a、从微软官方网站下载windows speech sdk并安装,然后在Visual Studio 6.0中进行相关设置,在Project Setings选项的C++选项卡的“分类:预处理器”添加“,__WIN32_DCOM”(为预先初始化COM组件成功);   b、将...
    语音类 
      1)在构造语音类之前,必须先设置好工程环境: 
      a、从微软官方网站下载windows speech sdk并安装,然后在Visual Studio 6.0中进行相关设置,在Project Setings选项的C++选项卡的“分类:预处理器”添加“,__WIN32_DCOM”(为预先初始化COM组件成功); 
      b、将预处理头文件选项选中“自动使用预补偿页眉”; 
      c、在常规选项卡中选择“实用MFC静态连接库”; 
      入图:(一) 
       
      2)封装语音类 
      由于采用面向对象的编程理念,借助UML(Unified Modeling Language统一建模语言)构造CSPEECH语音类如下 
       
      CSPEECH类 
       
      + void InitSR(); //初始化语音 
      +void RecoEvent();//识别命令函数 
       
      +BOOL b_initSR; 
      +BOOL b_Cmd_Grammar; 
       
      //3个语音接口 
      +CComPtr m_cpRecocontxt; 
      +CComPtr m_cpRecoGrammar; 
      +CComPtr m_cpRecoEngine; 
       
      然后开始添加语音类,需要注意的是在定义语音类的头文件中,包含〈sphelper.h〉并且自定义语音识别消息和类型 
      #define GID_CMD_GR 333333 
      #define WM_RECOEVENT WM_USER+102 
      剩下来就是对cpp文件的函数initSR()和RecoEvent()补充函数体 
       
      3)具体见下面代码: 
      (1)void CSpeech::initSR() 
      { 
      HRESULT hr=S_OK; 
      hr=m_cpRecoEngine.CoCreateInstance(CLSID_SpInprocRecognizer);//创建识别引擎COM实例 
      if(SUCCEEDED(hr)) 
      { 
      hr =m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt );//创建识别上下文 
      } 
      else 
      MessageBox(hWnd,"error1","error",S_OK); 
      if(SUCCEEDED(hr)) 
      { 
      hr = m_cpRecoCtxt->SetNotifyWindowMessage(hWnd, WM_RECOEVENT, 0, 0 ); 
      }//消息机制设置,使计算机时刻监听语音消息 
      else 
      MessageBox(hWnd,"error2","error",S_OK); 
      if (SUCCEEDED(hr)) 
      { 
      ULONGLONG ullMyEvents = SPFEI(SPEI_RECOGNITION) | SPFEI(SPEI_HYPOTHESIS); 
      hr = m_cpRecoCtxt->SetInterest(ullMyEvents, ullMyEvents); 
      } 
      else 
      MessageBox(hWnd,"error3","error",S_OK); 
      //设置默认的音频 
      CComPtr m_cpAudio; 
      hr=SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN,&m_cpAudio);//建立默认的音频输入对象 
      hr=m_cpRecoEngine->SetInput(m_cpAudio,TRUE);//设置识别引擎输入源 
      hr=m_cpRecoCtxt->CreateGrammar(GID_CMD_GR,&m_cpCmdGrammar);//创建命令语法 
      b_Cmd_Grammar=TRUE; 
      if(FAILED(hr)) 
      { 
      MessageBox(hWnd,"error 4","error",S_OK); 
      } 
      hr=m_cpCmdGrammar->LoadCmdFromResource(NULL,MAKEINTRESOURCEW(IDR_CMDCTRL),L"SRGRAMMAR",MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), SPLO_DYNAMIC);//加载命令语法文件 
      if(FAILED(hr)) 
      { 
      MessageBox(hWnd,"error5","error",S_OK); 
      } 
      b_initSR=TRUE; 
      } 
       
      (2)BOOL CSpeech::RecoEvent() 
      { 
      USES_CONVERSION; 
      CSpEvent event; 
      while(event.GetFrom(m_cpRecoCtxt)==S_OK) 
      { 
      switch(event.eEventId) 
      { 
      case SPEI_RECOGNITION: 
      { 
      static const WCHAR wszUnrecognized[]=L""; 
      CSpDynamicString dstrText; 
      if(FAILED(event.RecoResult()->GetText(SP_GETWHOLEPHRASE,SP_GETWHOLEPHRASE,TRUE,&dstrText,NULL))) 
      { 
      dstrText=wszUnrecognized; 
      } 
      dstrText.CopyToBSTR(&SRout); 
      Recstring.Empty(); 
      Recstring=SRout; 
      if(b_Cmd_Grammar) 
      { 
      if(Recstring=="左") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"左转",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      m_OpenGL->m_baiscobj->LEFT=1; 
      return TRUE ; 
      } 
       
      if(Recstring=="向下走") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"开始后退",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      m_OpenGL->m_baiscobj->BACK=1; 
      return TRUE ; 
      } 
      if(Recstring=="最小化") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"最小化",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      SendMessage(hWnd,WM_SYSCOMMAND, SC_MINIMIZE, MAKELPARAM(0, 0)); 
       
      return TRUE; 
      } 
      if(Recstring=="右") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"开始右转",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      m_OpenGL->m_baiscobj->RIGHT=1; 
      return TRUE ; 
      } 
      if(Recstring=="停下来") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"动作开始了",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      m_OpenGL->m_baiscobj->Move=0; 
      m_OpenGL->m_baiscobj->BACK=0; 
      m_OpenGL->m_baiscobj->LEFT=0; 
      m_OpenGL->m_baiscobj->RIGHT=0; 
      return TRUE ; 
      } 
       
      if(Recstring=="跑步") 
      { 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return FALSE; 
      } 
      HRESULT hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"动作开始了",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      m_OpenGL->m_baiscobj->Move=1; 
      return TRUE ; 
      } 
      if(Recstring=="退出") 
      { 
      m_OpenGL->CleanUp(); // 结束处理 
      PostQuitMessage(0); 
      return TRUE; 
      } 
      } 
      } 
      } 
      }return TRUE; 
      } 
      要注意的是RecoEvent()必须能处理人物、摄像头的漫游,所以在人物、摄像机类的行为函数中添加了控制变量Move、BACK、LEFT、RIGHT;并附了初值1,当在行为函数中为1时行为函数体执行,所以也必须 
      #include "OpenGL.h" 
      #include "baiscobj.h" 
      其间我们借助于指针变量,巧妙的使语音能控制行为,却不影响动画的刷新,但不足的是由于opengl动画md2模型的不能导入成功,使踢球,跳木箱等功能函数没有完成,所以只要行为函数出来,可通过上述同样方法实现语音控制。 
       
      4)如何在winmain()函数中执行语音程序? 
      首先包含语音头文件〈sapi.h〉 
      接着(#define CSpeech speech)定义语音类对象 
       
      INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,INT )// WinMain程序入口 
      { 
      ::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);//初始化COM 
      …… 
      char cc[]="tml"; 
      WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, 
      GetModuleHandle(NULL), NULL, NULL, NULL, (LPCTSTR)IDR_MENU1, 
      cc, NULL }; 
      RegisterClassEx( &wc ); 
      m_OpenGL=new OpenGL();// 
      hWnd = CreateWindowEx(NULL,cc,"智能精灵键盘(↑进↓退→右←左UP仰DOWM俯)", 
      dwStyle|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,nX,nY,Width, Height,NULL,NULL,hInst,NULL); // 创建窗口 
      ShowWindow( hWnd, SW_SHOWDEFAULT ); // 显示窗口 
      UpdateWindow( hWnd ); // 刷新窗口 
      speech.b_Cmd_Grammar=FALSE; 
      speech.initSR(); 
      GameLoop(); // 进入消息循环 
      return 0; 
      } 
      通过speech.initSR(),执行语音的初始化,为了设置一个简单的语音识别开关,简单的添加一个任务栏,只有语音这一个菜单资源,然后利用消息机制,在消息处理函数里Switch(message)里添加: 
      case WM_COMMAND: 
      switch(LOWORD(wParam)) 
      { 
      case IDM_SPEECH:speech.startcmd(); 
      } 
      return 0;break; 
      即当单击语音菜单时,则使语音功能完全激活,下面是这个函数的实体: 
       
      void CSpeech::startcmd() 
      { 
      if(b_initSR) 
      { 
      HRESULT hr=m_cpCmdGrammar->SetRuleState(NULL,NULL,SPRS_ACTIVE); 
      ISpVoice *pVoice=NULL; 
      if(FAILED(CoInitialize(NULL))) 
      { 
      MessageBox(hWnd,"Error to initialize COM","error",S_OK); 
      return ; 
      } 
      hr=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&pVoice); 
      if(SUCCEEDED(hr)) 
      { 
      hr=pVoice->Speak(L"语法已经激活",0,NULL); 
      pVoice->Release(); 
      pVoice=NULL; 
      } 
      CoUninitialize(); 
      } 
      } 
      5)在所有的工作完成之前,还必须先在项目工程下添加XML语法文件,通过initSR()中的LoadCmdFromResource()函数加载;XML文件可通过以记事本形式打开编辑。具体如下: 
      ---

    向上走

    向下走

    停下来

    跑步

    识别

    语音

    还原

    文件

    踢球

    展开全文
  • 该dragonfluid库是一个简单的扩展,,图书馆创建规则或宏与龙NaturallySpeaking或Windows语音识别的工作。 Dragonfluid增加了“开箱即用”支持,可连续链接多个命令,而不会在讲话中暂停。 假定您熟悉及其用法。 学...
  • 启用麦克风 ...关键字识别 Step 1: 定义字符串数组 Step 2: 订阅和处理OnPhraseRecognized事件。当给定短语被识别时,将调用此事件。. Step 3: 开始关键字识别 using UnityEngine; using System...
  • Kinect for windows提供了语音识别的能力,它靠Kinect的语音采集流进行识别的,这是建立在微软的语音识虽库的基础上的,关于微软语音识别可以参考http://msdn.microsoft.com/en-us/library/hh361572(v=office.14)....
  • 由于win7阉割版语音识别(控制面板-》轻松访问-》语音识别) 没有语音识别 需要进行下文配置(abcd);或者你感觉 运行程序前要打开语音识别太麻烦 都可以尝试下文方法配置识别系统。 a、下载TTSrepair.exe安装,...
  • windows 语音识别

    2011-12-27 19:27:39
    The Recognition namespace contains Windows Desktop Speech technology types for implementing speech recognition. The Windows Desktop Speech Technology software offers a basic speech recognition infras
  • 开玩笑,我在这绝不可能解释好这个问题,但是从另一个角度简单来讲,与机器人交流其实这是通过语音来实现与机器交互,互动的一种操作,人与机器人的沟通其核心的一个方面便是语音识别,就是说机器人得先听懂人说话...
  • unity3d使用调用win10语音识别
  • 它利用统一的Windows 10语音识别引擎 您将需要启用它才能使用此应用程序 他们是从参与此应用程序的一些网络爬取,以获取单词的拼音以及在资源文件夹中的应用程序中大量存储类似数据 该应用程序的当前版本与专有api...
  • unity3d中场景跳转时出现的win10语音识别问题
  • 我的win10的64位系统,在“控制面板”的“语音识别”中提示:windows语音识别不能用于当前的显示语言,如下图: [img=https://img-bbs.csdn.net/upload/202003/10/1583811043_409115.png][/img] 请问这是什么...
  • windows平台语音识别

    2017-10-30 15:03:15
    windows平台的语音识别程序,调用讯飞接口,能实现离线语音识别
  • 语音识别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 988
精华内容 395
关键字:

windows语音识别