文档库 最新最全的文档下载
当前位置:文档库 › Kinect for Windows SDK开发入门(十三):语音识别 下

Kinect for Windows SDK开发入门(十三):语音识别 下

Kinect for Windows SDK开发入门(十三):语音识别 下
Kinect for Windows SDK开发入门(十三):语音识别 下

[译]Kinect for Windows SDK开发入门(十三):语音识别下

上一篇文章介绍了Kinect中语音识别的基本概念,以及一些语音处理方面的术语。在此基础上使用Kinect麦克风阵列来进行音频录制的例子说明了Kinect中音频处理的核心对象及其配置。本文将继续介绍Kinect中的语音识别,并以两个小例子来展示语音识别中的方向识别和语音命令识别。

1. 使用定向麦克风进行波速追踪(Beam Tracking for a Directional Microphone)

可以使用这4个麦克风来模拟定向麦克风产生的效果,这个过程称之为波束追踪(beam tracking),为此我们新建一个WPF项目,过程如下:

1. 创建一个名为KinectFindAudioDirection的WPF项目。

2. 添加对Microsoft.Kinect.dll和Microsoft.Speech.dll的引用。

3. 将主窗体的名称改为“Find Audio Direction”

4. 在主窗体中绘制一个垂直的细长矩形。

界面上的细长矩形用来指示某一时刻探测到的说话者的语音方向。矩形有一个旋转变换,在垂直轴上左右摆动,以表示声音的不同来源方向。前端页面代码:

界面。后台逻辑代码和之前的例子大部分都是相同的。首先实例化一个KinectAudioSource

赋值给本身。将BeamAngleMode设置为Adaptive,使得能够自动追踪说话者的声音。我们需要编写

KinectAudioSource对象的BeamChanged事件对应的处理方法。当用户的说话时,位置发生变化时就会触发该事件。我们需要创建一个名为BeamAngle的属性,使得矩形的RotateTransform可以绑定这个属性。

public partial class MainWindow : Window, INotifyPropertyChanged

{

public MainWindow()

{

InitializeComponent();

this.DataContext = this;

this.Loaded += delegate { ListenForBeamChanges(); };

}

private KinectAudioSource CreateAudioSource()

{

var source = KinectSensor.KinectSensors[0].AudioSource;

source.NoiseSuppression = true;

source.AutomaticGainControlEnabled = true;

source.BeamAngleMode = BeamAngleMode.Adaptive;

return source;

}

private void ListenForBeamChanges()

{

KinectSensor.KinectSensors[0].Start();

var audioSource = CreateAudioSource();

audioSource.BeamAngleChanged += audioSource_BeamAngleChanged;

audioSource.Start();

}

public event PropertyChangedEventHandler PropertyChanged;

private void OnPropertyChanged(string propName)

{

if (PropertyChanged != null)

PropertyChanged(this, new PropertyChangedEventArgs(propName));

}

private double _beamAngle;

public double BeamAngle

{

get { return _beamAngle; }

set

{

_beamAngle = value;

OnPropertyChanged("BeamAngle");

以上代码中,还需要对BeamChanged事件编写对应的处理方法。每次当波束的方向发生改变时,就更改BeamAngle的属性。SDK 中使用弧度表示角度。所以在事件处理方法中我们需要将弧度换成度。为了能达到说话者移到左边,矩形条也能够向左边移动的效果,我们需要将角度乘以一个-1。代码如下:

运行程序,然后在房间里不同地方走动,可以看到矩形条会根据你的位置左右摆动。

2. 语音命令识别

在这一部分,我们将会结合KinectAudioSource和SpeechRecognitionEngine来演示语音命令识别的强大功能。为了展示语音命令能够和骨骼追踪高效结合,我们会使用语音命令向窗体上绘制图形,并使用命令移动这些图形到光标的位置。命令类似如下:Create a yellow circle, there.

Create a cyan triangle, there.

Put a magenta square, there.

Create a blue diamond, there.

Move that ... there.

Put that ... there.

Move that ... below that.

Move that ... west of the diamond.

Put a large green circle ... there.

程序界面大致如下:

和之前的应用程序一样,首先创建一下项目的基本结构:

1. 创建一个名为KinectPutThatThere的WPF项目。

2. 添加对Microsoft.Kinect.dll和Microsoft.Speech.dll的引用。

3. 将主窗体的名称改为“Put That There”

4. 添加一个名为CrossHairs.xaml的用户自定义控件。

CrossHair用户控件简单的以十字光标形式显示当前用户右手的位置。下面的代码显示了这个自定义控件的XAML文件。注意到对象于容器有一定的偏移使得十字光标的中心能够处于Grid的零点。

在应用程序的主窗体中,将根节点从grid对象改为canvas对象。Canvas对象使得将十字光标使用动画滑动到手的位置比较容易。在主窗体上添加一个CrossHairs自定义控件。在下面的代码中,我们可以看到将Canvas对象嵌套在了一个Viewbox控件中。这是一个比较老的处理不同屏幕分辨率的技巧。ViewBox控件会自动的将内容进行缩放以适应实际屏幕的大小。设置MainWindows的背景色,并将Canvas的颜色设置为黑色。然后在Canvas的底部添加两个标签。一个标签用来显示SpeechRecognitionEngine将要处理的语音指令,另一个标签显示匹配正确的置信度。CrossHair自定义控件绑定了HandTop和HandLeft属性。两个标签分别绑定了HypothesizedText和Confidence属性。代码如下:

在后台逻辑代码中,让MainWindows对象实现INofityPropertyChanged事件并添加OnPropertyChanged帮助方法。我们将创建4个属性用来为前台UI界面进行绑定。

public partial class MainWindow : Window, INotifyPropertyChanged

{

private double _handLeft;

public double HandLeft

{

get { return _handLeft; }

set

{

_handLeft = value;

OnPropertyChanged("HandLeft");

}

}

private double _handTop;

public double HandTop

{

get { return _handTop; }

set

{

_handTop = value;

OnPropertyChanged("HandTop");

}

}

private string _hypothesizedText;

public string HypothesizedText

{

get { return _hypothesizedText; }

set

添加CreateAudioSource方法,在该方法中,将KinectAudioSource对象的AutoGainControlEnabled的属性设置为false。

上面是多有设计到手部追踪的代码。一旦我们设置好HandTop和HandLeft属性后,UI界面上的十字光标位置就会自动更新。

接下来我们需要实现语音识别部分的逻辑。SpeechRecognitionEngine中的StartSpeechRecognition方法必须找到正确的语音识别库来进行语音识别。下面的代码展示了如何设置语音识别库预计如何将KinectAudioSource传递给语音识别引起。我们还添加了SpeechRecognized,SpeechHypothesized以及SpeechRejected事件对应的方法。SetInputToAudioStream中的参数和前篇文章中的含义一样,这里不多解释了。注意到SpeechRecognitionEngine和KinectAudioSource都是Disposable类型,因此在整个应用程序的周期内,我们要保证这两个对象都处于打开状态。

要完成程序逻辑部分,我们还需要处理语音识别时间以及语音逻辑部分,以使得引擎能够直到如何处理和执行我们的语音命令。SpeechHypothesized以及SpeechRejected事件代码如下,这两个事件的逻辑很简单,就是更新UI界面上的label。SpeechRecognized事件有点复杂,他负责处理传进去的语音指令,并对识别出的指令执行相应的操作。另外,该事件还负责创建一些GUI对象(实际就是命令模式),我们必须使用Dispatcher对象来发挥InterpretCommand到主UI线程中来。

现在到了程序核心的地方。创建语法逻辑并对其进行解析。本例中的程序识别普通的以“put”或者“create”开头的命令。前面是什么我们不关心,紧接着应该是一个颜色,然后是一种形状,最后一个词应该是“there”。下面的代码显示了创建的语法。

上面的代码中,我们首先创建一个Choices对象,这个对象会在命令解析中用到。在程序中我们需要颜色和形状对象。另外,第一个单词是“put”或者“create”,因此我们也创建Choices对象。然后使用GrammarBuilder类将这些对象组合到一起。首先是”put”或者“create”然后是一个占位符,因为我们不关心内容,然后是一个颜色Choices对象,然后是一个形状Choices对象,最后是一个“there”单词。

我们将这些语法规则加载进语音识别引擎。同时我们也需要有一个命令来停止语音识别引擎。因此我们创建了第二个语法对象,这个对象只有一个”Quit”命令。然后也将这个语法规则加载到引擎中。

一旦识别引擎确定了要识别的语法,真正的识别工作就开始了。被识别的句子必须被解译,出别出来想要的指令后,我们必须决定如何进行下一步处理。下面的代码展示了如何处理识别出的命令,以及如何根据特定的指令来讲图形元素绘制到UI界面上去。

break;

case "blue": color = Colors.Blue;

break;

case "green": color = Colors.Green;

break;

case "red": color = Colors.Red;

break;

default:

return;

}

var shapeString = result.Words[3].Text;

Shape shape;

switch (shapeString)

{

case "circle":

shape = new Ellipse();

shape.Width = 150;

shape.Height = 150;

break;

case "square":

shape = new Rectangle();

shape.Width = 150;

shape.Height = 150;

break;

case "triangle":

var poly = new Polygon();

poly.Points.Add(new Point(0, 0));

poly.Points.Add(new Point(150, 0));

poly.Points.Add(new Point(75, -150));

shape = poly;

break;

case "diamond":

var poly2 = new Polygon();

poly2.Points.Add(new Point(0, 0));

poly2.Points.Add(new Point(75, 150));

poly2.Points.Add(new Point(150, 0));

poly2.Points.Add(new Point(75, -150));

shape = poly2;

break;

default:

return;

}

shape.SetValue(Canvas.LeftProperty, HandLeft);

方法中,我们首先检查语句识别出的单词是否是”Quit”如果是的,紧接着判断第二个单词是不是”application”如果两个条件都满足了,就不进行绘制图形,直接返回。如果有一个条件不满足,就继续执行下一步。

InterpretCommand方法然后判断第一个单词是否是“create”或者“put”,如果不是这两个单词开头就什么也不执行。如果是的,就判断第三个单词,并根据识别出来的颜色创建对象。如果第三个单词没有正确识别,应用程序也停止处理。否则,程序判断第四个单词,根据接收到的命令创建对应的形状。到这一步,基本的逻辑已经完成,最后第五个单词用来确定整个命令是否正确。命令处理完了之后,将当前受的X,Y坐标赋给创建好的对象的位置。

运行程序后,按照语法设定的规则就可以通过语音以及骨骼追踪协作来创建对象了。

有一点遗憾的是,Kinect的语音识别目前不支持中文,即使在5月份发布的SDK1.5版本增加的识别语言种类中也没有中文,也有可能是因为目前Xbox和kinect没有在中国大陆销售的原因吧。所以大家只有用英语进行测试了。

3. 结语

本文接上文,用一个显示语音来源方向的例子展示了语音识别中的方向识别。用一个简单的语音识别结合骨骼追踪来演示了如何根据语音命令来执行一系列操作。在语音命令识别中详细介绍了语音识别语法对象逻辑的建立,以及语音识别引擎相关事件的处理。本文代码点击此处下载,希望本文对您了解Kinect SDK中的语音识别有所帮助。

下文将介绍在Kinect开发中可能会用到的一些第三方类库和开发工具,敬请期待!

HTK(V3.1)基础指南中文版

HTK(V3.1)基础指南(原文:HTK(v.3.1):Basic Tutorial) Nicolas Moreau/02.02.2002 陶阳译 taoyangxp@https://www.wendangku.net/doc/831239934.html, 江西.南昌 2009.6.1

目录 0HTK简介 (1) 1Yes/No识别系统 (1) 1.1搭建步骤 (1) 1.2工作环境构建 (1) 1.3标准HTK工具选项 (1) 2创建训练集 (1) 2.1录音 (2) 2.2标注信号 (2) 2.3文件重命名 (2) 3声学分析 (2) 3.1配置参数 (3) 3.2源/目标规范 (3) 4HMM定义 (4) 5HMM训练 (6) 5.1初始化 (6) 5.2训练 (8) 6任务定义 (8) 6.1语法和字典 (8) 6.2网络 (9) 7识别 (10) 8性能测试 (12) 8.1主标签文件 (12) 8.2错误率 (13)

0HTK简介 HTK是指隐马尔可夫模型工具箱(Hidden Markov Model Toolkit),由剑桥大学工程系(CUED)研发而成。该工具箱的目的是搭建使用隐马尔可夫模型(HMMs)。HTK主要 用于语音识别研究(但是HMMs应用范围很广,还有很多其它可能的应用…) HTK由一系列库模块构成,包括C语言形式的可用工具,可自由下载,包括一个完整的文档说明(大约300页),见https://www.wendangku.net/doc/831239934.html,/。 1Yes/No识别系统 本指南中,我们将基于HTK工具集建立一个2-单词识别系统,词汇集是{Yes,No}。 这是可以设计出来的最基本的自动语音识别(ASR)系统。 1.1搭建步骤 构建语音识别系统的主要步骤如下: (1)训练库的创建:词汇集中的每个元素进行多次录制,且与相应词汇做好标签; (2)声学分析:训练波形数据转换为一系列系数向量; (3)模型定义:为总词汇集中的每个元素定义一个HMM原型; (4)模型训练:使用训练数据对每个HMM模型进行初始化、训练; (5)任务定义:识别系统的语法(什么可被识别)的定义; (6)未知输入信号识别; (7)评估:识别系统的性能可通过测试数据进行评估。 1.2工作环境构建 建议创建如下的目录结构: (1)data/:存储训练和测试数据(语音信号、标签等等),包括2个子目录,data/train/ Array和data/test/,用来区分识别系统的训练数据和评估数据; (2)analysis/:存储声学分析步骤的文件; 建立以下目录 (3)training/:存储初始化和训练步骤的相关文件; (4)model/:存储识别系统的模型(HMMs)的相关文件; (5)def/:存储任务定义的相关文件; (6)test/:存储测试相关文件。 1.3标准HTK工具选项 一些标准选项对每个HTK工具都是通用的。我们将使用以下一些选项: (1)-A:显示命令行参数; (2)-D:显示配置设置; (3)-T1:显示算法动作的相关信息。 完整的选项列表请参见:HTK文档,第50页(第四章操作环境)。 2 创建训练集Array 图1录制标签训练数据 首先,我们录制Yes和No两个语音信号,作为要训练的单词模型(训练集)。 然后为每个语音信号打上标签,也就是说,关联一个文本来描述语音内容。录制和打标签,

语音识别技术文献综述

语音识别技术综述 The summarization of speech recognition 张永双 苏州大学 摘要 本文回顾了语音识别技术的发展历史,综述了语音识别系统的结构、分类及基本方法,分析了语音识别技术面临的问题及发展方向。 关键词:语音识别;特征;匹配 Abstact This article review the courses of speech recognition technology progress ,summarize the structure,classifications and basic methods of speech recognition system and analyze the direction and the issues which speech recognition technology development may confront with. Key words: speech recognition;character;matching 引言 语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门交叉学科,所涉及的领域有信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等,甚至还涉及到人的体态语言(如人民在说话时的表情手势等行为动作可帮助对方理解)。其应用领域也非常广,例如相对于键盘输入方法的语音输入系统、可用于工业控制的语音控制系统及服务领域的智能对话查询系统,在信息高度化的今天,语音识别技术及其应用已成为信息社会不可或缺的重要组成部分。 1.语音识别技术的发展历史 语音识别技术的研究开始二十世纪50年代。1952年,AT&Tbell实验室的Davis等人成功研制出了世界上第一个能识别十个英文数字发音的实验系统:Audry系统。

语音识别基本知识及单元模块方案设计

语音识别是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语言。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都有非常密切的关系。语音识别技术正逐步成为计算机信息处理技术中的关键技术,语音技术的应用已经成为一个具有竞争性的新兴高技术产业。 1语音识别的基本原理 语音识别系统本质上是一种模式识别系统,包括特征提取、模式匹配、参考模式库等三个基本单元,它的基本结构如下图所示: 未知语音经过话筒变换成电信号后加在识别系统的输入端,首先经过预处理,再根据人的语音特点建立语音模型,对输入的语音信号进行分析,并抽取所需的特征,在此基础上建立语音识别所需的模板。而计算机在识别过程中要根据语音识别的模型,将计算机中存放的语音模板与输入的语音信号的特征进行比较,根据一定的搜索和匹配策略,找出一系列最优的与输入语音匹配的模板。然后根据此模板的定义,通过查表就可以给出计算机的识别结果。显然,这种最优的结果与特征的选择、语音模型的好坏、模板是否准确都有直接的关系。2语音识别的方法 目前具有代表性的语音识别方法主要有动态时间规整技术(DTW)、隐马尔可夫模型(HMM)、矢量量化(VQ)、人工神经网络(ANN)、支持向量机(SVM)等方法。 动态时间规整算法(Dynamic Time Warping,DTW)是在非特定人语音识别中一种简单有效的方法,该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题,是语音识别技术中出现较早、较常用的一种算法。在应用DTW算法进行语音识别时,就是将已经预处理和分帧过的语音测试信号和参考语音模板进行比较以获取他们之间的相似度,按照某种距离测度得出两模板间的相似程度并选择最佳路径。 隐马尔可夫模型(HMM)是语音信号处理中的一种统计模型,是由Markov链演变来的,所以它是基于参数模型的统计识别方法。由于其模式库是通过反复训练形成的与训练输出信号吻合概率最大的最佳模型参数而不是预先储存好的模式样本,且其识别过程中运用待识别语音序列与HMM参数之间的似然概率达到最大值所对应的最佳状态序列作为识别输出,因此是较理想的语音识别模型。 矢量量化(Vector Quantization)是一种重要的信号压缩方法。与HMM相比,矢量量化主要适用于小词汇量、孤立词的语音识别中。其过程是将若干个语音信号波形或特征参数的标量数据组成一个矢量在多维空间进行整体量化。把矢量空间分成若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表矢量代替。矢量量化器的设计就是从大量信号样本中训练出好的码书,从实际效果出发寻找到好的失真测度定义公式,设计出最佳的矢量量化系统,用最少的搜索和计算失真的运算量实现最大可能的平均信噪比。在实际的应用过程中,人们还研究了多种降低复杂度的方法,包括无记忆的矢量量化、有记忆的矢量量化和模糊矢量量化方法。 人工神经网络(ANN)是20世纪80年代末期提出的一种新的语音识别方法。其本质上是一

微软Speech SDK 5.1开发语音识别系统主要步骤

微软语音识别分两种模式:文本识别模式和命令识别模式.此两种模式的主要区别,主要在于识别过程中使用的匹配字典不同.前者使用的是通用字典,特点是内容多,覆盖的词汇量大,字典由sdk提供.适用于没有预定目标的随机听写之类的应用.同时因为词汇量大直接导致识别的精度降低,识别速度较慢.后者的字典需要开发者自己编写,就是你们所说的xml文件.xml 文件作为一种数据存储的方式,有一定的格式,定义了sdk需要确定的一些标签,和用以匹配的词汇.这种方式由开发者定义词汇的数量,大大降低匹配过程中需要检索的词汇量,提高了识别速度.同时因为侯选项极少,所以一般不会识别错误.其缺点也是明显的:词汇量小,只有预先输入字典的词汇可以被识别出来,所以一般用来作为常用命令的识别,方便用户操作,代替菜单命令等. 利用微软Speech SDK 5.1在MFC中进行语音识别开发时的主要步骤,以Speech API 5.1+VC6为例: 1、初始化COM端口 一般在CWinApp的子类中,调用CoInitializeEx函数进行COM初始化,代码如下: ::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED); // 初始化COM 注意:调用这个函数时,要在工程设置(project settings)->C/C++标签,Category中选Preprocessor,在Preprocessor definitions:下的文本框中加上“,_WIN32_DCOM”。否则编译不能通过。 2、创建识别引擎 微软Speech SDK 5.1 支持两种模式的:共享(Share)和独享(InProc)。一般情况下可以使用共享型,大的服务型程序使用InProc。如下: hr = m_cpRecognizer.CoCreateInstance(CLSID_SpSharedRecognizer);//Share hr = m_cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);//InProc 如果是Share型,可直接进到步骤3;如果是InProc型,必须使用ISpRecognizer::SetInput 设置语音输入。如下: CComPtr cpAudioToken; //定义一个token hr = SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN, &cpAudioToken); //建立默认的音频输入对象 if (SUCCEEDED(hr)) { hr = m_cpRecognizer->SetInput(cpAudioT oken, TRUE);} 或者: CComPtr cpAudio; //定义一个音频对象 hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &cpAudio);//建立默认的音频输入对象 hr = m_cpRecoEngine->SetInput(cpAudio, TRUE);//设置识别引擎输入源 3、创建识别上下文接口 调用ISpRecognizer::CreateRecoContext 创建识别上下文接口(ISpRecoContext),如下:hr = m_cpRecoEngine->CreateRecoContext( &m_cpRecoCtxt ); 4、设置识别消息 调用SetNotifyWindowMessage 告诉Windows哪个是我们的识别消息,需要进行处理。如下:

语音识别基础讲义01

第一章 绪论 1.1 语音识别的重要性 1.1.1 语音信息处理与语音识别 人类利用语言相互交流信息,包括语音和文字两种表达方式。通过语音相互传递信息,这是人类最重要的基本功能之一。随着信息社会的发展,人与人之间,自不必说,即使在人与机器之间也每时每刻都需要进行大量的信息交换。人类在利用语音进行信息交流时,说话人大脑产生思想,通过语言转换,再由发声器官发出相应的语音;语音的声波经由空气传播到达听话人的耳朵,通过听觉器官将语音传送到大脑,由此理解该语音所表达的语言意义。这是人类进行信息交流与处理的过程。用计算机来模拟人类的这一交流信息的过程,包括以下几个部分: (1)将大脑产生的思想转换成语言; (2)将语言转换成相应的语音; (3)识别表达语言的语音内容; (4)理解语音所表达的语言意义。 上述(1)与(4)的部分属于自然语言生成和理解的研究范围,(2)的部分属于语音合成的研究范围;(3)的部分则属于语音识别的研究范围。图1.1为人与人之间、人与机器之间的语音信息处理流程的示意图。 图1.1 人与人之间、人与机器之间的语音信息处理流程图 1.1.2 语音识别的重要性 计算机语音识别是智能计算机系统的重要特征。这一技术的应用将从根本上改变计算机的人机界面,从而对计算机的发展以及推广应用产生深远的影响。基于电话的语音识别技术,使计算机直接为客户提供金融、证券和旅游等方面的信息查询及服务成为可能,进而成为电子商务进展中的重要一环(V oice-Commerce)。其次,语音识别技术作为声控产业,必将对编辑排版、办公自动化、工业过程和机器操作的声控技术起到重大的推进作用。因此可以预言,语音技术必将对工业、金融、商业、文化、教育等诸方面事业产生革命性的影响。这是一项具有巨大应用推广前景的工程。正是由于这一点,一些主要先进国家都把此工程列为国家级研究项目。 面对如此广阔的应用领域,目前国内外众多公司正积极推动语音识别技术的应用。 人与人之间的语音通信 (人 说话方 收听方 (机器

(完整版)基于单片机的语音识别系统好毕业设计论文

基于单片机的语音识别系统

摘要 近几年来,智能化和自动化技术在玩具制造领域中越来越被关注。本文介绍一种智能化小车控制系统的设计——语音控制小车。语音控制小车是基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。首先介绍了SPCE061A的主要性能及其引脚的功能;接着完成了电源电路、复位电路、键盘电路、音频输入电路,音频输出电路和无线控制电路等硬件功能模块的设计。软件设计模块能实现智能小车的前进、后退、转向、停止、避障、表演动作以及循线等功能。测试表明,在环境背景噪音不太大,控制者的发音清晰的前提下,语音控制小车的语音识别系统能对特定的语音指令做出智能反应,做出预想中的有限的动作 关键词:spec061a 语音识别驱动电路声控小车智能反应

Abstract In recent years, Intelligent and automation technology in the toy manufacture paid more and more attention.Introduce an intelligent vehicle control system design. SPCE061A program the system to single-chip, based on implementation of the car's voice control, This paper introduces the and implementation. The SPCE061A's main characters and pin function are introduced firstly. Completed the power circuit, reset circuit, keyboard circuitry, audio input circuits, audio output circuit and control circuit of wireless of function modules. Software design module can achieve smart car forward, backward, turn, stop, obstacle avoidance, performing actions, as well as on-line functions. Test showed that the background noise in the environment is not too great, control persons under the premise of clear pronunciation, voice control car speech recognition systems for specific voice commands to make intelligent reaction, limited to the desired action. Keywords: spec061a 、voice recogniton、Driving circuit、Voice control dolly、intelirent response

基于matlab的语音识别系统

机电信息工程学院专业综合课程设计 系:信息与通信工程 专业:通信工程 班级:081班 设计题目:基于matlab的语音识别系统 学生姓名: 指导教师: 完成日期:2011年12月27日

一.设计任务及要求 1.1设计任务 作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。以语音识别开发出的产品应用领域非常广泛,有声控电话交换、语音拨号系统、信息网络查询、家庭服务、宾馆服务、旅行社服务系统、订票系统、声控智能玩具、医疗服务、银行服务、股票查询服务、计算机控制、工业控制、语音通信系统、军事监听、信息检索、应急服务、翻译系统等,几乎深入到社会的每个行业、每个方面,其应用和经济社会效益前景非常广泛。本次任务设计一个简单的语音识别系。 1.2设计要求 要求:使用matlab软件编写语音识别程序 二.算法方案选择 2.1设计方案 语音识别属于模式识别范畴,它与人的认知过程一样,其过程分为训练和识别两个阶段。在训练阶段,语音识别系统对输入的语音信号进行学习。学习结束后,把学习内容组成语音模型库存储起来;在识别阶段,根据当前输入的待识别语音信号,在语音模型库中查找出相应的词义或语义。 语音识别系统与常规模式识别系统一样包括特征提取、模式匹配、模型库等3个基本单元,它的基本结构如图1所示。 图1 语音识别系统基本结构图 本次设计主要是基于HMM模型(隐马尔可夫模型)。这是在20世纪80年代引入语音识别领域的一种语音识别算法。该算法通过对大量语音数据进行数据统计,建立识别词条的统计模型,然后从待识别语音信号中提取特征,与这些模

型进行匹配,通过比较匹配分数以获得识别结果。通过大量的语音,就能够获得一个稳健的统计模型,能够适应实际语音中的各种突发情况。并且,HMM算法具有良好的识别性能和抗噪性能。 2.2方案框图 图2 HMM语音识别系统 2.3隐马尔可夫模型 HMM过程是一个双重随机过程:一重用于描述非平稳信号的短时平稳段的统计特征(信号的瞬态特征);另一重随机过程描述了每个短时平稳段如何转变到下一个短时平稳段,即短时统计特征的动态特性(隐含在观察序列中)。人的言语过程本质上也是一个双重随机过程,语音信号本身是一个可观测的时变列。可见,HMM合理地模仿了这一过程,是一种较为理想的语音信号模型。其初始状态概率向量π,状态转移概率矩阵向量A,以及概率输出向量B一起构成了HMM的3个特征参量。HMM 模型通常表示成λ={π,A,B}。 2.4HMM模型的三个基本问题 HMM模型的核心问题就是解决以下三个基本问题: (1)识别问题:在给定的观测序列O和模型λ=(A,B,π)的条件下,如何有效地计算λ产生观测序列O的条件概率P(O︱λ)最大。常用的算法是前后向算法,它可以使其计算量降低到N2T次运算。 (2)最佳状态链的确定:如何选择一个最佳状态序列Q=q1q2…qT,来解释观察序列O。常用的算法是Viterbi算法。 (3)模型参数优化问题:如何调整模型参数λ=(A,B,π),使P(O︱λ)最大:这是三个问题中最难的一个,因为没有解析法可用来求解最大似然模型,所以只能使用迭代法(如Baum-Welch)或使用最佳梯度法。 第一个问题是评估问题,即已知模型λ=(A,B,π)和一个观测序列O,如何计算由该模型λ产生出该观测序列O的概率,问题1的求解能够选择出与给定的观测序列最匹配的HMM模型。 第二个问题力图揭露模型中隐藏着的部分,即找出“正确的”状态序列,这是一个典型的估计问题。

语音识别技术基础知识

语音识别技术基础知识

————————————————————————————————作者:————————————————————————————————日期:

语音识别技术基础知识 6月27日,美国权威科技杂志《MIT科技评论》公布2017全球最聪明50家公司榜单。科大讯飞名列中国第一、全球第六。全世界排在科大讯飞前面企业分别是:英伟达、Spacex、亚马逊、23andme、Alphabet。《MIT科技评论》认为,“科大讯飞旗下的语音助手是中国版的Siri,其可携带实时翻译器则是一款杰出的人工智能应用,克服了方言、俚语和背景杂音,可将汉语精准地翻译成十几种语言。科大讯飞在中国语音技术市场的占有率70%。”越来越多的人认为,语音识别将成为下一代交互革命的关键技术。 与此同时,在日常生活中,我们已经习惯用Siri或者Cortana这样的语音助手在一些特定的情况下帮我们解决一些小问题,如在开车时制定本周的日常,简短地回复他人消息等等,然而,在大多数情况下语音助手的使用率并不高,据研究机构CreativeStrategies的调查-有62%的安卓用户从未使用过语音助手,而这个数字苹果用户中则是70%。是语音识别的技术还不够先进,还是人们不需要语音助手呢?Amazon Echo的成功或许能给我一些启示。 Amazon Echo是亚马逊公司于2014年11月推出的一款家庭语音助手,能够实现包括购物、控制智能家居、阅读Kindle、预约Uber、跟踪(亚马逊)快递、订披萨、计时、算术、放音乐、找手机、模仿雨声等等诸多功能,一经推出就点燃了市场的热情,据国外研究机构统计,2015年Echo的销量是170万台左右,2016年则增长至650万余台,而截至2017年1月,亚马逊Echo的全球销量已超过700万台,预计今年将突破1100万台。另据eMarketer的一份报告,在美国智能音箱市场,亚马逊Echo占据的市场份额超过70%。 同样是语音助手,为何Echo与Siri的境况如此不同呢,有研究者认为,这主要是两种产品使用环境不同而导致的。对于大多数人而言,在公共场合拿出手机,对着一个机器人说话不但缺乏隐私,同时多少有些不适;而在家庭中,面对家人和朋友,这点就能够有效避免,同时安静的环境更能有效提高机器识别的速度与精度,可以认为,Amazon Echo精准地切入了市场。然而,其他巨头也不甘人后,纷纷推出了自己的家庭智能语音助手:苹果推出了Home pod, 而google 也推出了google home. 看来,一场语音大战已经风雨欲来。

基于单片机的语音识别智能家居控制系统设计

基于单片机的语音识别智能家居控制系统设计 摘要:“智能家居”主要通过利用先进的单片机技术,蓝牙识别技术和语音识别技术,将家用电器,如电灯,电视,冰箱等联系起来,通过语音来控制各个家用电器设备,是人们的生活更加方便,安全和健康。 关键词:智能家居;单片机;语音识别 传统的家电控制方式主要有开关按键和红外遥控两种。这两种必须需要人去直接触碰,有着极大的安全隐患,而且控制距离短,不能够穿墙控制。我们在日常生活中经常遇到以下情况,躺在床上看书或看电视时,卧室电灯不能方便地控制,还要起来去关掉电灯。类似这种不方便的情况在家庭生活中多有出现。尤其是对于老年人、残疾人来说,家电控制更为不易。因此我设计了一种基于单片机的智能家居语音控制系统,采用了语音指令控制家用电器的开启或关闭,从而使现代家居生活更轻松、更便捷、更安全。 1 系统介绍 系统主要分为以下几个部分:由语音识别模块、51单片机、蓝牙发送模块组成语音遥控;由蓝牙接收模块、主控器、接口电路组成家电语音控制平台。 2 硬件电路 整个系统的硬件电路主要包括核心主控制和语音识别两个部分主控制部分为STC公司STC12LE5A60S2单片机,语音识别部分为LD3320语音识别芯片系统,用户发出声音控制指令时,语音识别部分把指令传送给主控制器,主控制器处理后,发出命令控制外围的家用电器设备。 3 非特定人语音识别模块设计

LD3320主要组成有高精度的语音识别处理器和一些外部电路,包括声音输出接口和麦克风接口。可以真正实现语音识别,声音控制和人际对话的各项功能,另外还有完整的非特征人语音识别特征库和高效的人语言识别搜索引擎模块。 (1)语音识别分三个步骤:频谱分析、特征提取、匹配识别。LD3320已把各部分硬件集成在单芯片上,我们主要对LD3320进行二次开发。 (2)LD3320芯片采用并行方式直接与单片机相接,具有识别率高,识别速度快,多接口,多支持等优点,可以连续快速识别多种语言。 (3)设计步骤:确定寄存器读写操作方式(并行或串行SPI),熟悉寄存器的功能,确定所需寄存器的地址,编写驱动程序(初始化→写入识别列表→开始识别→响應中断)。 4 单片机控制器 51单片机的显著特征是采用超低功耗架构,可显著延长电池使用寿命;在本设计中,单片机的P0口接LD3320的8个数据口,P3口连接RDB、WRB、CSB、RSTB等控制引脚;SIMO0、SOMI0口连接射频模块的SPI数据口;在主控器上还接有一个扬声器,作为信息反馈装置;51单片机系列单片机针对C语言与汇编程序精心优化,我们可以通过简单的C 语言编程对其行控制。 5 无线信息传输——蓝牙通信 利用HC05蓝牙发射/接收模块完成“操作指令”的发送和接收。 为了实现对家电电器的控制,我们采用LED灯和继电器模拟实物电灯或者家电,通过语音识别去控制家电的开关,为了提高系统的识别率,本系统采用两级指令完成对系统的控制。向LD模块添加关键词时,通过编辑程序定义二维数组设定一级语音指令为“小黑”,二级语音指令为“开灯”、“关灯”,设定指令时,添加拼音的输入方式作为关键词数组,例如添加“小黑”命令,则写入“xiaohei”,汉字间的拼音用空格隔开。实现功能为接收语音

《语音识别入门教程》

语音识别入门(V1.0) 丁鹏、梁家恩、苏牧、孟猛、李鹏、王士进、王晓瑞、张世磊 中科院自动化所高创中心,北京,100080 【摘要】本文主要以剑桥工程学院(CUED)的语音识别系统为例,并结合我们实验室自身的研究与开发经验,讲述当前主流的大词汇量连续语音识别系统(LVCSR)的框架和相关技术,对实验室的同学进行一个普及和入门引导。 【关键词】语音识别,HTK,LVCSR,SRI 1. 引言 语音识别技术发展到今天,取得了巨大的进步,但也存在很多的问题。本文主要以CUED 的语言识别系统为例,说明LVCSR系统技术的最新进展和研究方向,对实验室的同学进行一个普及和入门引导。 1.1 国际语音识别技术研究机构 (1)Cambridge University Engineering Department (CUED) (2)IBM (3)BBN (4)LIMSI (5)SRI (6)RWTH Aachen (7)AT&T (8)ATR (9)Carnegie Mellon University (CMU) (10)Johns Hopkins University (CLSP) 1.2 国际语音识别技术期刊 (1)Speech Communication (2)Computer Speech and Language (CSL) (3)IEEE Transactions on Speech and Audio Processing 1.3 国际语音识别技术会议 (1)ICASSP(International Conference on Acoustic, Speech and Signal Processing)每年一届,10月截稿,次年5月开会。 (2)ICSLP(International Conference on Spoken Language Processing) 偶数年举办,4月截稿,9月开会。

Win7语音识别功能 让Win7“听话”

Win7语音识别功能让Win7“听话” 经常你会看到现在很多人开始使用手机的语音功能来交流,而不是传统上的电话,比如苹果iPhone 里的siri,或者是语音QQ、语音输入等,你想要执行什么命令,比如打开一个网页,打开一个程序等,都可以通过语音去执行,而无需手动去查找。在计算机上这个功能也一样存在,我们可以暂时抛开键盘的束缚,跟计算机直接对话交流,从而实现程序的执行,比如播放影音,打开网页,文字输入,这一切并不是科幻,在Win7系统里就有这样一个功能——语音识别,所以,今天我们来一起探寻Win7语音识别的神奇。 开启语音识别功能 当然要使用语音识别功能,你先得把麦克风正确接入计算机,离开了麦克风,计算机可就没有了“耳朵”,无法听到你说的话了。其次,需要启动Windows7的语音识别功能(开始-> 控制面板->语音识别)。进入语音识别项目后,可以看到有5大选项,我们选择“启动语音识别”这一选项。 ▲在控制面板中打开语音识别 首次使用语音识别功能,Win7将引导用户进行语音识别设置,询问用户使用何种麦克风、指导用户如何正确使用麦克风、测试麦克风是否正常、选择语音识别的激活方式等。在最后还有一个打印语音参考卡片的选项,用户可以选择打印或在电脑上直接查看可以使用的

语音命令。 ▲选择麦克风类型

▲测试一下你的麦克风

▲在帮助文档里可以查看语音命令的规则 目前的计算机还没达到真正的人工智能水平,所以想要命令它做事,就得记得用一系列规定的命令,只有命令准确,它才会正确执行,所以建议用户先仔细查看相关的操作命令,再耐心的花一些时间来学习教程。 语音识别的练习 这个引导式的教程很详细,可以让用户在短时间内学会语音识别的基本规则。 ▲ 语音识别教程 正确命令的重要性?请看看这个笑话会让你印象深刻的: “有个人发了笔财,就想买匹马,卖马的人就给他找了一匹合乎他要求的马,并介绍说这马跑起来飞快,又听话,你要是想让它跑就说一声…感谢上帝?,要是想让它停就说一声…阿门?就可以了。那个人听了很高兴,就当场买下了这匹马。 然后就骑上它,说了声…感谢上帝?,那马就真的飞奔了起来,快得把那个人吓得魂不附体,后来它竟然向一个悬崖跑去,那人急了,拼命地拉缰绳也拉不住。 在最后的时刻,他忽然想起了卖马人告诉他的话,就说了句…阿门?,那马就立刻停在了悬崖的边上,那人这才松了口气,他手抚着自己激烈跳动的心脏,觉得自己的一颗心终于掉回了肚里,就说了声---…感谢上帝?!”

用于智能家居语音识别系统设计

仪器科学与电气工程学院 本科毕业论文(设计)开题报告题目:用于智能家居的语音识别系统设计 学生姓名:学号: 专业:电气工程及其自动化 指导教师:讲师 2015年1月3日

1. 选题依据 1.1选题背景 语言作为人类信息交流中最重要的和最方便的方式,人与机器的交流能否像人与人一样自如,是人们研究的问题。控制论创始人维纳在1950年就曾指出:“通常,我们把语言仅仅看作人与人之间的通信手段,但是,要使人向机器,机器向人以及机器向机器讲话,那也是完全办得到的”。 随着现代科学技术的进一步发展和人民生活水平不断的提高,人们对家庭住宅需求的概念也发生了彻底的改变。人们正在从以往追求房屋空间的宽阔和装饰的亮丽、豪华,向着追求品味、安全、舒适、便捷和智能方向发展。现在的家庭不仅要满足人们生活、工作、娱乐和交流的需要,同时还可以提供充分的安全防护、物业管理等手段。智能家居是建筑艺术、生活理念与信息技术、电子技术等现代高科技手段完美结合的产物,它的出现满足了人们对住宅高性能、智能化的要求21世纪信息时代的到来,IT产业的发展和人们生活水平的提高,“智能家居”、“家庭自动化”、“网络家电”、“家庭网络”等技术的推动,智能家居的生活已经近在咫尺。 在智能家居中传统的家用电器的控制,无外乎两种控制方式:手动或遥控。随着家用电器的增多,开关和遥控越来越多,使用极不方便。这时,我们可以釆用语音识别的方式控制,例如,在观看电视频道时,我们可以很方便地直接说出“中央一套”来,所以语音识别及控制在智能家居中尤其重要。 1.2国内外研究现况 1、语音识别技术的发展 就技术而言,目前国内外对语音识别理论及各种实用算法的研究是一热点。人们普遍关心的问题是不断提高语音识别的识别率、识别更多的词汇量、扩大语音识别的应用等研究。语音识别技术发展到今天,PC 机的语音识别系统己经趋于成熟,而且还出现了一些具有实用价值和市场语音识别前景的语音识别芯片。近几年来,个人消费类电子产品的广泛使用,使大量的识别系统从实验室 PC 平台转移到嵌入式平台设备中,现在嵌入式对特定人语音识别系统的识别精度己经达到 98%以上。嵌入式语音识别系统和 PC 机的语音识别系统相比,虽然其运算速度和内存容量有一些限制,但是它也有各自的特点。嵌入式系统体积小、可靠性高、耗电低、投入小、便于移动等优点,是嵌入式语音识别系统和 PC 机的语音识别系统相比的最大优势。而且嵌入式语音识别系统多为实时系统,当用户讲话后,系统能够立即完成词条识别并作出反应。这些特点决定了嵌入式语音识别系统的应用十分广泛。可以预测在近几年内,嵌入式语音识别系统的应用将更加广泛。各种语音识别系统将出现在市场上。根据美国专家预测,具有语音识别功能的产品可达 50 亿美元。在短期内还不可能具

六年级信息技术《语音识别》教学设计

月日第周星期总第课时 第26课语音识别 【教材分析】 本课是人工智能模块的最后一课。本课是一个实践活动,应用计算思维,结合xDing软件AI模块来解决生活中的问题。 首先提出问题——如何实现语音控制。xDing软件中AI选项中有“智能语音输入”模块。通过该模块可以向开源机器人“小丁”发出语音指令。 然后解决问题——“小丁”怎样才能“听懂”语音指令?教材中指引学生用“如果”条件语句进行指令判断,然后根据语音指令写出不同执行方式。 最后总结验证——运行程序,并通过话筒发出指令,观察舵机运行状况。根据舵机转动情况调整程序让“小丁”能“听懂”更多语音指令。 【学情分析】 六年级学生经过本单元前3课的学习已经对人工智能的定义、发展、分类有了初步的了解。对于xDing软件中AI模块中的控件的应用也有了使用经验。 【教学目标与要求】 1.通过数字化学习方式了解现实生活中语音识别的意义。 2.通过硬件搭建和xDing软件编程制作语音控制的门,培养学生计算思维。 3.尝试利用编程和语音识别技术实现更细致的舵机控制,培养创新意识。 【教学重点与难点】 重点: 1.掌握使舵机摇臂模拟开关门的算法。 2.学会使用xDing软件实现语音控制舵机开关门的编程操作。 难点:体验用计算思维解决生活中的实际问题的方法,尝试利用语音识别技术进行控制舵机的编程。 【教学方法与手段】 方法:通过提问激发学生的学习动机,教学过程中采用了任务驱动法进行教学,将自主探究和小组合作学习相结合,重点培养学生对应用xDing软件实现人工智能的兴趣,提高学生编程热情。 手段:多媒体教学课件、教师演示与学生操作相结合。

【课时安排】 安排1课时。 【教学过程】 一、导入 1. 播放语音识别相关视频,让学生欣赏。 2. 讨论所看到的画面介绍了什么知识? 3. 现实生活中语音识别有哪些实际应用?未来语音识别可能会帮助人们做什么? 4. 小问号看了以后也想要设计一个“听话”的门。小博士说xDing软件中的人工智能模块可以帮助他实现。同学们觉得应该利用哪些控件帮助小问号实现梦想? 板书:语音识别 【设计意图】观看视频了解人工智能正在步入人们的生活之中。特别是语音识别技术越来越成熟,被广泛应用在翻译、门禁等领域。 二、新授 1. 硬件搭建。 (1)舵机接上白色摇臂代表门的开关状态。 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统,在很多玩具中都有使用。 (2)将白色摇臂按照垂直于舵机最长边的方向固定好(这里代表舵机0度)。 (3)用数据线连接开源机器人“小丁”和舵机。 舵机连接线“棕”“红”“橘”,与开源机器人舵机接口1“黑”“红”“黄”相对应。 (4)用USB数据线将开源机器人与电脑连接起来并安装固件。 【设计意图】硬件有固定的连接方法,这里必须通过课件或者教师演示把固定接法讲述清楚,特别是接口号和后面编程时选择的号码要一一对应。 2.编写程序。 (1)设置初始角度。 我们先把门先关上,找找看哪个控件可以帮我们设置好关门的初始状态?

人工智能 语音识别 论文

基于神经网络的语音信号识别 摘要 语言是人类之间交流信息的主要手段之一,自电脑发明以来,人们就一直致力于使电脑能够理解自然语言。语音识别技术是集声学、语音学、语言学、计算机、信息处理和人工智能等诸领域的一项综合技术,应用需求十分广阔,长期以来一直是人们研究的热点。神经网络是在现代科学研究成果的基础上提出来的模拟人脑结构机制的一门新兴科学,它模拟了人类神经元活动的原理,具有自学习、联想、对比、推理和概括能力,为很好地解决语音识别这样一个复杂的模式分类问题提供了新的途径。本文针时语音识别的特点.BP 神经网络在语音识别技术中的应用进行了探索性研究,对进而结合人工智能领域较为有效的方法——遗传(GA)算法。针对传统BP 算法识别准确率高但训练速度慢的缺点,对BP 网络进行改进,构建了一种基于遗传神经网络的语音识别算法(GABP),并建立相应的语音识别系统。仿真实验表明,该算法有效地缩短了识别时问,提高了网络训练速度和语音的识别率。关键词:语音识别,神经网络,遗传算法,遗传神经网络,BP 网络RECOGNITIO THE RSREARCH OF SPEECH RECOGNITION BASED ON THE NEURAL NETWORK ABSTRACT Language is one of the most important means of exchanging information among the mankind.Since the computer was invented,many scientists have been devoted to enabling the computer to understand the natural language.Speech recognition is a comprehensive technology of such areas as acoustics,phonetics,linguistics,computer science,information processing and artificial intelligence,which can be used widely.The research of speech recognition technology has been focused by the world for a long time.The neural network is a new developing science,which simulates the mechanism of human brain and was putted forward by the developing of modern science.is not the overall description of human brain,the abstract,It but simulation and simplifying of the physical neural networks of human beings. The purpose of the research in this area is exploring the human brain mechanisms in information processing,storing and searching.If people can understand these mechanisms,a new way for the research of artificial intelligence,information processing and etc. can be opened up. Artificial neural network is a system which using a physically feasible system to imitate the structure and function of nerve cells in human brain,which has the ability of self—learning,contrasting,reasoning and summarizing .It have offered a new way in solving such complicated pattern classification problems as speech recognition.This paper mainly studies the application of the BP neural network in the research of speech recognition. BP neural network can get higher identification precision, but its training speed is very low, a new recognizing algorithm based on BP algorithm by combining with good effect method in ANN which named genetic algorithm (GA) was proposed and used to improve the BP neural network. Experiments results show that the training speed can be accelerated by the method and the recognition performance is also promoted.words: Key words speech recognition, neural network, genetic algorithm, genetic neural network, BP network 1.绪论1.1 1.1 课题背景1.1.1 语音识别概述随着计算机技术的发展,人与机器之间的交流也越来越广泛和深入,计算机己经渗透到人们生活的各个方面。在现代社会中,人们逐渐习惯借助计算机来完成各项事务。在这种情况下,如何让计算机智能化地与人进行通信,使人机交互更加自然方便成为现代计算机科学的重要研究课题之一。语音识别(Speech Recognition)主要是指让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息,执行人的各种意图。语音识别是一门涉及面很广的交叉学科,它是目前发展最为迅速的信息研究诸领域中的一个。语音识别的最大优势在于使得人机用户界面更加自然和容易使用。随着计算机技术、模式识别和信号处理技

相关文档
相关文档 最新文档