昆明理工大学 人工智能 大作业
人工智能实验报告八数码难题

昆明理工大学信息工程与自动化学院学生实验报告(201 —201 学年第一学期)课程名称:开课实验室:年月日一、实验内容八数码难题,问题描述:在3×3方格棋盘上,分别放置了标有数字1,2,3,4,5,6,7,8的八张牌,初始状态S0,目标状态S1如图所示,可以使用的操作有:空格上移,空格左移,空格右移,空格下移。
只允许位于空格左,上,右,下方的牌移入空格。
用广度优先搜索策略寻找从初始状态到目标状态的解路径。
二、实验原理算法思想:这是一种盲目搜索算法。
算法主要思想是从初始结点开始依次沿其上下左右四个方向扩展结点,并逐一检查这些后继结点是否为目标结点,若不等于目标结点则把该后继结点插入到数组末尾。
然后取数组中未扩展的第一个结点重复以上操作,直到得到目标结点为止或在限定步数以内未得到解。
广度优先搜索策略数据结构:void Bfs(){queue<Map> Queue;Queue.push(org);HashTable[ org.myindex ] = -1;while( NOT Queue.empty() ){Map node = Queue.front();Queue.pop( );for(int k =0 ; k < 4; k ++ ){Map tmp = node;tmp.position = node.position + derection[k];if(tmp.position < 0 || tmp.position > 8 || ( k > 1 && tmp.position / 3 != node.position /3 ) ) continue;tmp.myindex = HashValue( node , k );if(0 != HashTable[tmp.myindex] ) continue;tmp.detail[ node.position ] = tmp.detail[ tmp.position ] ;tmp.detail[ tmp.position ] = 0 ;HashTable[tmp.myindex] = node.myindex; // 状态记录到hashtable中if( node.myindex == EndIndex ) return ;Queue.push( tmp );}}return ;}三、所用仪器、材料1台PC及VISUAL C++6.0软件四、实验方法、步骤源代码见同一文件夹中bashuma.cpp部分程序代码:typedef struct Node {int num[9];int deepth;int diffnum;int value;struct Node * pre;struct Node * next;struct Node * parent;}numNode;int main ( int argc, char *argv[] ){open=create_numNode();close=create_numNode();open->pre=open->next=close->pre=close->next=NULL;init(); //由用户输入初始和目标状态numNode *p1;p1=create_numNode();p1->parent=NULL;p1->deepth=0;int i=0;for ( i=0; i<9; i++){p1->num[i]=origin[i];}open_insert(open,p1);numNode_num=1;p1=open_getfirst(open);while (p1!=NULL){close_append(close,p1);if(expand(p1))return EXIT_SUCCESS;p1=open_getfirst(open);}printf("No solution!\n");return EXIT_SUCCESS;}void init ( ){while(1){printf("输入初始状态S0(请从左到右依次输入每行数字,0代表空格):\n");char temp[10];scanf("%s",&temp);int i=0;for ( i=0;i<9 && temp[i]-'0'>=0 && temp[i]-'0'<=8; i++){origin[i]=temp[i]-'0';}printf("请输入目标状态S1:\n");scanf("%s",&temp);int j=0;for ( j=0; j<9 && temp[j]-'0'>=0 && temp[j]-'0'<=8; j++){target[j]=temp[j]-'0';}system("cls");if ( i==9&&j==9){break;}}}int operate(int m[], int op){int blank;blank=0;while (m[blank]!=0 && blank<9 )++blank;if (blank==9)return 1;switch (op) {case 1: /* up */if (blank>2)swap(m+blank,m+blank-3);break;case 2: /* down */if (blank<6)swap(m+blank,m+blank+3);break;case 3: /* left */if (blank!=0 && blank!=3 && blank!=6)swap(m+blank,m+blank-1);break;case 4: /* right */if (blank!=2 && blank!=5 && blank!=8)swap(m+blank,m+blank+1);break;default : return 1;}return 0;}五、实验过程原始记录六、实验总结:人工智能这门课程综合了许多学科的知识,这些知识面十分广,以及它的应用也是十分广泛的,才刚开始学习的时候就会感觉有点复杂,因为它毕竟综合了一些我们还没有学过的知识。
20秋季大工《人工智能》终年大作业

20秋季大工《人工智能》终年大作业介绍这份文档旨在说明20秋季大工《人工智能》课程的终年大作业。
本作业的目标是让学生综合应用所学的人工智能知识和技术,解决一个实际的问题或完成一个项目。
作业要求- 作业主题:学生可以根据自己的兴趣和专业背景选择一个合适的主题,但必须与人工智能相关。
- 独立完成:学生需要独立完成作业,不得寻求用户的帮助或借助他人的协助。
- 简单策略:学生应该根据自己的能力和专长,选择简单的策略和方法来解决问题,避免涉及复杂的法律问题。
- 内容确认:不要引用无法确认的内容,确保所提供的信息准确可信。
作业内容学生需要根据自己选择的主题,完成以下任务:1. 问题定义:明确问题的定义和目标,并解释为什么这个问题对人工智能领域具有重要性。
2. 数据收集:收集与问题相关的数据集,并进行预处理和清洗。
3. 模型选择:选择适合解决问题的人工智能模型或算法,并解释选择的原因。
4. 模型训练:使用选定的模型对数据进行训练,并进行模型调优。
5. 模型评估:评估训练好的模型的性能和准确度,解释评估结果。
6. 结果展示:将模型的结果以可视化的方式展示出来,并对结果进行解释和分析。
时间安排作业将在整个学年内进行,学生需要根据以下时间安排完成各个阶段:- 第一学期:- 问题定义和数据收集:9月初至10月底- 模型选择和训练:11月初至12月底- 第二学期:- 模型调优和评估:1月初至2月底- 结果展示和报告撰写:3月初至4月底评分标准作业将根据以下标准进行评分:- 问题定义和目标的清晰度和合理性- 数据收集和预处理的质量- 模型选择和训练的合适性和有效性- 模型评估和结果展示的准确性和可视化效果- 报告撰写和表达的清晰度和逻辑性提交要求学生需要按照要求将作业提交给授课教师或助教。
具体的提交要求将在课程开始时公布。
总结本次终年大作业旨在让学生综合运用人工智能知识和技术,解决一个实际的问题或完成一个项目。
通过完成这个作业,学生将加深对人工智能领域的理解和应用能力,并提升解决问题的能力和创新思维。
【内容详尽-格式完美 5000字+】人工智能大作业任务书实验报告

大作业任务书课程名称:人工智能题目:人工智能:生成智能专业:自动化班级:学号:学生姓名:任课教师:人工智能:生成智能摘要:人工智能在许多领域取得了空前的发展,对抗与博弈的思想也逐渐被应用于许多真实场景,如围棋,对抗游戏等。
不过,这篇文章所探讨的是基于博弈思想的深度学习鉴别生成模型—生成对抗网络(Generative Adversarial Nets,以下简称GANs)的前沿进展。
本文从生成模型的角度出发,针对GANs,使用了交叉熵作为生成器与判别器的损失函数,在基于Tensorflow的深度学习平台应用数字手写数据库MNIST证明了GANs的实用性与收敛性,此外,还综述了近期许多改进的GANs,探讨了其不同应用数据库场景的结果。
关键词:人工智能;博弈;深度学习;生成对抗网络;交叉熵一、引言深度学习旨在发掘在人工智能具有丰富的,分级的能够表征各种数据分布的模型,比如自然界的图像,语音,和自然语言处理等[1]。
深度学习隶属于人工智能的一个重要分支,其与机器学习具有交叉互容的关系,2012年ImageNet挑战赛正式拉开深度学习的序幕,或者说是深层神经网络。
深层神经网络由传统的单层感知机,多层感知机,神经网络发展而来,其为了解决高维数据的维度灾难,模型训练难以泛化,标准解难以收敛等诸多难题。
后续许多研究者投身深度学习领域,并将其应用于各个行业领域,如医疗图像诊断,无人驾驶,语义识别,场景识别等等,取得了不俗的效果。
到目前为止,在深度学习中最引人注目的成就包括了鉴别模型,通常是那些将高维、丰富的特征输入映射到类属标签的模型。
这些显著的成功主要基于反向传播和Dropout算法,使用具有特别良好性能的梯度的分段线性单元。
由于难以去逼近极大似然估计和相关策略中出现的许多难以处理的概率计算问题,以及由于在生成上下文中难以利用分段线性单元的优点,深度生成模型的影响较小。
深度生成模型的成功为深度学习打开了一扇新的大门,之后有许多研究取得了显著的效果。
昆明理工大学 人工智能 大作业

课程名称:人工智能论文题目:中文语音识别技术的最新研究进展学院:信息工程与自动化学院专业:计算机科学与技术年级: 09级学生姓名:孙浩川(200910405310)指导教师:王剑教务处制摘要本文简要介绍了语音识别技术的发展历史,所采用的关键技术以及所面临的困难与挑战,最后讨论了语音识别在通信等领域中的应用。
机器能听懂人类的语言吗?我们能扔掉键盘、鼠标用自然语言操纵计算机吗?随着语音识别技术的发展,梦想正在变为现实。
语音识别以语音为研究对象,它是语音信号处理的一个重要研究方向,是模式识别的一个分支,涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。
简要介绍语音识别的发展历史,采用的关键技术,面临的困难与挑战以及广阔的应用前景。
关键字:中文、语音识别、技术、发展目录一、语音识别技术的发展历史 (3)1、国外的发展形势 (3)2、国内的发展 (3)二、语音识别技术发展所面临的困难 (4)1、认识语音识别系统 (4)2、面临的困难 (4)3、解决困难的方法 (5)三、语音识别技术的应用以及发展前景 (5)1、目前语音识别技术在许多领域的应用 (5)2、对语音识别技术的发展前景 (6)四、结束语(结论) (6)谢辞 (7)参考文献 (8)一、语音识别技术的发展历史1、国外的发展形势首先,从国外的形势看来。
语音识别的研究工作可以追溯到20世纪50年代AT&T 贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。
但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在60年代末70年代初。
实验室语音识别研究的巨大突破产生于20世纪80年代末:人们终于在实验室突破了大词汇量、连续语音和非特定人这三大障碍,他们把原本艰涩的HMM纯数学模型工程化,从而使统计方法成为了语音识别技术的主流,更多地从整体平均的角度来建立最佳的语音识别系统。
XXX大工20春《人工智能》大作业题目及要求 - A算法参考答案

XXX大工20春《人工智能》大作业题目及要求 - A算法参考答案给定一个3x3的九宫格,其中有8个数字和1个空格,要求通过移动数字的位置,将初始状态转化为目标状态。
二、A*算法基本思想A*算法是一种启发式搜索算法,其基本思想是综合考虑当前状态到目标状态的估价函数和已经走过的路径长度,选择下一步最有可能到达目标状态的节点进行搜索。
其中,估价函数是指从当前状态到目标状态的最短距离的估计值。
三、算法程序框图此处应插入算法程序框图,具体细节请见word文档)四、重排九宫问题的启发式函数根据题目要求,给定的启发式函数为f(x)=p(x)+3s(x)p(x),其中p(x)表示x结点和目标结点相比每个将牌“离家”的最短距离之和,s(x)表示每个将牌和目标相比,若该将牌的后继和目标中该将牌的后继不同,则该将牌得2分,相同则该将牌得1分,中间位置有将牌得1分,没将牌得分。
根据该启发式函数,我们可以得到搜索的状态空间图如下:此处应插入搜索的状态空间图,具体细节请见word文档)XXX《人工智能》课程设计题目描述给定一个3×3的棋盘,棋盘上有8个棋子,编号为1~8,现在有一个空格,即棋盘上只有8个棋子,空格可以与其上、下、左、右四个方向相邻的棋子交换位置,现在给定一个初始状态和一个目标状态,请你求出从初始状态到目标状态最少需要移动多少步。
输入格式第一行输入一个字符串,表示初始状态,其中字符1~8表示棋子,字符.表示空格,例如:xxxxxxxx.第二行输入一个字符串,表示目标状态,格式与初始状态相同。
输出格式输出一个整数,表示最少移动的步数。
如果无法从初始状态到达目标状态,则输出-1.输入样例1:xxxxxxxx.123.输出样例1:3输入样例2:xxxxxxxx.xxxxxxxx.输出样例2:22问题分析将每一个状态作为一个结点容易想到可以用广搜的方法解决,这种方法简单,但是就算是加入XXX判重也会搜索很多的无用结点。
昆明理工大学人工智能实验报告

昆明理工大学信息工程与自动化学院学生实验报告(2013——2014 学年第一学期)课程名称:人工智能导论开课实验室:信自楼234室2013年11月5日一、实验问题1、用软件编程解决八数码问题二、实验目的1、熟悉人工智能求解八数码问题,以及对人工智能深入了解。
2、熟悉状态空间的盲目搜索、启发式搜索,和A*算法。
3、熟悉人工智能系统中的问题求解过程。
三、实验原理1、将初始节点s放入open表中2、若open表为空则推出3、移出open表中的第一个节点N放入close表中,并冠以顺序编号n,4、若目标节点Sg=N,则搜索成功,结束5、若N不可扩展,则转入第2步四、程序框图五、实验结果及分析1、通过逆序数的奇数偶数来判断。
因为在空白移动过程中,数码的逆序数不改变。
左右移动,数码序列不变。
上下移动,数码序列中某个数字则移动了两位。
八数码问题为3*3矩阵,3为奇数,故逆序数不作改变。
故可通过判断当前状态S的逆序数以及目标状态的数字序列的逆序数的奇偶性是否相同来判断该问题是否可解。
2、是否达到目标节点,将当前节点和目标节点进行比较3、对于f(n)的考虑,f(n)是否最小,选择最小的扩展,若几个相等的状态同时出现,则随机选一个。
4、将Open表中的所有节点进行排序选择估价函数f(n)最优的进行扩展。
第二种选择就是选择当前层扩展的节点中选择最优的f(n)进行扩展。
六、结论1、尽管明白怎么样解决八数码问题,但用电脑编程还是不会编。
虽然学过C 语言,由于不用也生疏了。
以后对学过的只是温故而知新。
2、通过本次试验我对启发式搜索有了更加深入的了解。
在实验中通过对两种启发式搜索所扩在的节点数来看更加有效 能在复杂情况下求得更加优质的解避免不必要的节点的扩展。
使搜索的速度更快。
3、八数码的启发式搜索、A 算法等用书面的形式很容易表示出来,但用计算机能读懂的语言(如C 语言)表示,这个转换的的过程很困难。
七、源程序及注释#include<stdio.h>#include<conio.h>int n,m;typedef struct Node{char matrix[10];/*存储矩阵*/char operate;/*存储不可以进行的操作,L代表不能左移R代表不能右移U代表不能上移D 代表不能下移*/char extend;/*是否可以扩展,Y代表可以,N代表不可以*/int father;/*指向产生自身的父结点*/}Node;char start[10]={"83426517 "};char end[10]={"1238 4765"};Node base[4000];int result[100];/*存放结果的base数组下标号,逆序存放*/int match()/*判断是否为目标*/{int i;for(i=0;i<9;i++){if(base[n-1].matrix[i]!=end[i]){return 0;}}return 1;}void show()/*显示矩阵的内容*/{int i=1;while(m>=0){int mm=result[m];//clrscr();printf("\n\n\n 状态方格\t\t步骤%d",i);printf("\n\n\n\n\n\t\t\t%c\t%c\t%c\n",base[mm].matrix[0],base[mm].matrix[1],base[mm].matr ix[2]);printf("\n\n\t\t\t%c\t%c\t%c\n",base[mm].matrix[3],base[mm].matrix[4],base[mm].matrix[5]) ;printf("\n\n\t\t\t%c\t%c\t%c\n",base[mm].matrix[6],base[mm].matrix[7],base[mm].matrix[8]) ;//sleep(1);m--;i++;}}void leave()/*推理成功后退出程序之前要执行的函数,主要作用是输出结果*/{ n--; while(base[n].father!=-1){ result[m]=n;m++;n=base[n].father;}result[m]=0;result[m+1]='\0';show();//clrscr();printf("\n\n\n\n\n\n\n\n\n\t\t\t\t搜索结束\n\n\n\n\n\n\n\n\n\n"); getch();//exit(0);}int left(int x)/*把下标为X的数组中的矩阵的空格左移*/ {int i,j;char ch;for(i=0;i<9;i++){if(base[x].matrix[i]==' ')break;}if(i==0||i==3||i==6||i==9){ return 0;}for(j=0;j<9;j++){ base[n].matrix[j]=base[x].matrix[j];}ch=base[n].matrix[i-1];base[n].matrix[i-1]=base[n].matrix[i];base[n].matrix[i]=ch;base[n].operate='R';base[n].extend='Y';base[n].father=x;base[x].extend='N';n++;if(match(i)) leave();return 1;}int right(int x)/*把下标为X的数组中的矩阵的空格右移*/ { int i,j; char ch;for(i=0;i<9;i++){if(base[x].matrix[i]==' ')break;if(i==2||i==5||i==8||i==9){ return 0;}for(j=0;j<9;j++){ base[n].matrix[j]=base[x].matrix[j];}ch=base[n].matrix[i+1];base[n].matrix[i+1]=base[n].matrix[i];base[n].matrix[i]=ch;base[n].operate='L';base[n].extend='Y';base[n].father=x;base[x].extend='N';n++; if(match(i))leave();return 1;}int up(int x)/*把下标为X的数组中的矩阵的空格上移*/ { int i,j; char ch;for(i=0;i<9;i++){ if(base[x].matrix[i]==' ')break;}if(i==0||i==1||i==2||i==9){ return 0;}for(j=0;j<9;j++){ base[n].matrix[j]=base[x].matrix[j];}ch=base[n].matrix[i-3];base[n].matrix[i-3]=base[n].matrix[i];base[n].matrix[i]=ch;base[n].operate='D';base[n].extend='Y';base[n].father=x;base[x].extend='N';n++;if(match(i))leave();return 1;}int down(int x)/*把下标为X的数组中的矩阵的空格下移*/int i,j;char ch;for(i=0;i<9;i++){ if(base[x].matrix[i]==' ') break;}if(i==6||i==7||i==8||i==9){ return 0;}for(j=0;j<9;j++){ base[n].matrix[j]=base[x].matrix[j];}ch=base[n].matrix[i+3];base[n].matrix[i+3]=base[n].matrix[i];base[n].matrix[i]=ch;base[n].operate='U';base[n].extend='Y';base[n].father=x;base[x].extend='N';n++; if(match(i))leave(); return 1;}main(){ int i;char a[20],b[20];n=1;1./*以下是输入初始和目标矩阵,并把输入的0转换为空格*/ printf("3*3方格初始状态:");scanf("%s",a);printf("3*3方格结束状态:");scanf("%s",b);for(i=0;i<9;i++){if(a[i]=='0'){ start[i]=' '; continue; }if(b[i]=='0'){ end[i]=' '; continue; }start[i]=a[i]; end[i]=b[i];}start[9]='\0'; end[9]='\0';for(i=0;i<9;i++){ base[0].matrix[i]=start[i]; }base[0].operate='N';base[0].extend='Y';base[0].father=-1;/*以上是为第一个base数组元素赋值*/ for(i=0;n<4000;i++){if(base[i].extend=='Y'){if(base[i].operate=='L'){right(i);up(i);down(i);}if(base[i].operate=='R'){left(i);up(i);down(i);}if(base[i].operate=='U'){left(i);right(i);down(i);}if(base[i].operate=='D'){left(i);right(i);up(i);}if(base[i].operate=='N'){left(i);right(i);up(i);down(i);}}}leave();}。
大工20秋《人工智能》作业报告

大工20秋《人工智能》作业报告引言本作业报告旨在分析和总结大工20秋《人工智能》课程的学习内容和成果。
在本报告中,我们将讨论课程的目标、授课方式、学习成果以及对未来的展望。
课程目标大工20秋《人工智能》课程的主要目标是使学生了解人工智能的基本概念、原理和应用。
通过该课程,我们旨在帮助学生掌握以下能力和知识:- 了解人工智能的历史和发展趋势;- 理解人工智能的基本概念和技术,如机器学习、深度学习、自然语言处理等;- 掌握人工智能的应用领域和实际应用案例;- 培养解决实际问题的思维能力和创新能力。
授课方式《人工智能》课程采用多种教学方法,包括理论讲授、案例分析、实践操作和小组讨论等。
主要的教学内容包括以下几个方面:1. 人工智能基础知识:介绍人工智能的定义、发展历史、基本概念和技术;2. 机器学习:讲解机器学习的基本原理、常用算法和应用案例;3. 深度学习:介绍深度学习的原理、常见模型和实际应用;4. 自然语言处理:探讨自然语言处理的基本概念、技术和应用;5. 人工智能的伦理和社会影响:讨论人工智能发展中的伦理问题和社会影响。
学习成果通过学习大工20秋《人工智能》课程,我们获得了以下几方面的收获:1. 理论知识的积累:掌握了人工智能的基本概念、原理和技术,并了解了人工智能在不同领域的应用;2. 实践能力的提升:通过实践操作和项目实践,提高了我们的编程和数据处理能力;3. 创新思维的培养:在小组讨论和案例分析中,培养了我们解决问题和创新的思维方式;4. 团队合作的能力:通过小组项目和讨论,提高了我们的团队合作和沟通能力。
未来展望人工智能作为一门前沿的学科,具有广阔的应用前景和发展空间。
在未来,我们将继续深入学习和研究人工智能领域的知识和技术,不断提升自己的能力。
我们希望能够在人工智能领域做出一些有意义的贡献,为社会的发展和进步做出自己的努力。
结论通过大工20秋《人工智能》课程的学习,我们对人工智能有了更深入的了解,并获得了相关的知识和技能。
大工《人工智能》大作业参考题目及要求【内容仅供参考】592

题目:广度优先搜索算法1.谈谈你对本课程学习过程中的心得体会与建议?人工智能是一门前沿且综合性非常强的课程,自己在整个课程的学习中,认识到人工智能领域的许多方面,以及了解和学习了人工智能课程相关的一些课程的学习过程中,涉及到了较多的计算机知识点,包括很多计算机个人建议学完这门课程后,多去尝试做一些简单的实践练习,实践中除了相关理论知识如算法等作为分析支撑,还要能够通过代码来编写实现一些简单案例,并进行测试验证和推导,最后尽可能将实现的案例进行举一反三,学习效果会大大提升。
在尝试实现练习案例中,涉及到编程技术,首先至少应该熟练使用一门编程语言,比较推荐Python作为主要编程语言进行实现案例以及日常练习,而且在Python编程相关的领域内,本身已经有很多相关成熟的代码demo去借鉴参考,这也有助于自己快速的上手和试验。
另外,无论是课程学习中,还是学习完后,一定要善于作笔记总结,汇总遇到的每个难点知识。
现在互联网比早以前发展的更成熟,我们可以通过互联网搜索相关知识,进行课外补充,这也是一种非常有效的提升课程知识的方式。
同时,利用互联网进行沟通探讨也是一种良好的学习方式,比如自己写博客交流,或者在相关论坛进行发帖提问式交流,都是非常方便且有效的,最后不要忘记将知识点进行再次归纳、记录进自己的笔记中。
目前人工智能技术的发展已经进入了更广泛的领域,而且目前还在不断的发展并且欣欣向荣,所以该课程是一门非常有意义的课程,学完这门课程后,个人推荐应该对这个领域进行持续关注,结合现代化人工智能需求,以及融入到身边的日常案例,积极进行更广泛和有深度的自我研究学习。
2.《人工智能》课程设计,从以下5个题目中任选其一作答。
题目:广度优先搜索算法广度优先搜索算法算法介绍:广度优先搜索算法又称为宽度优先搜索算法,英文全称是Breadth First Search(BFS),它是属于一种盲目搜索算法,该算法按照广度或宽度进行扩展搜索的,如果目标节点存在,用该算法总可以找到该目标节点,而且是最短路径节点,但该算法的时间和空间复杂度都相对比较高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:人工智能论文题目:中文语音识别技术的最新研究进展学院:信息工程与自动化学院专业:计算机科学与技术年级: 09级学生姓名:孙浩川(200910405310)指导教师:王剑教务处制摘要本文简要介绍了语音识别技术的发展历史,所采用的关键技术以及所面临的困难与挑战,最后讨论了语音识别在通信等领域中的应用。
机器能听懂人类的语言吗?我们能扔掉键盘、鼠标用自然语言操纵计算机吗?随着语音识别技术的发展,梦想正在变为现实。
语音识别以语音为研究对象,它是语音信号处理的一个重要研究方向,是模式识别的一个分支,涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。
简要介绍语音识别的发展历史,采用的关键技术,面临的困难与挑战以及广阔的应用前景。
关键字:中文、语音识别、技术、发展目录一、语音识别技术的发展历史 (3)1、国外的发展形势 (3)2、国内的发展 (3)二、语音识别技术发展所面临的困难 (4)1、认识语音识别系统 (4)2、面临的困难 (4)3、解决困难的方法 (5)三、语音识别技术的应用以及发展前景 (5)1、目前语音识别技术在许多领域的应用 (5)2、对语音识别技术的发展前景 (6)四、结束语(结论) (6)谢辞 (7)参考文献 (8)一、语音识别技术的发展历史1、国外的发展形势首先,从国外的形势看来。
语音识别的研究工作可以追溯到20世纪50年代AT&T 贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。
但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在60年代末70年代初。
实验室语音识别研究的巨大突破产生于20世纪80年代末:人们终于在实验室突破了大词汇量、连续语音和非特定人这三大障碍,他们把原本艰涩的HMM纯数学模型工程化,从而使统计方法成为了语音识别技术的主流,更多地从整体平均的角度来建立最佳的语音识别系统。
人工神经网络方法、基于文法规则的语言处理机制等也在语音识别中得到了应用。
20世纪90年代前期,许多著名的大公司如IBM、苹果、AT&T和NTT 都对语音识别系统的实用化研究投以巨资。
语音识别技术有一个很好的评估机制,那就是识别的准确率,而这项指标在20世纪90年代中后期实验室研究中得到了不断的提高。
其中IBM公司于1997年开发出汉语ViaVoice语音识别系统,其平均识别率可以达到95%。
该系统对新闻语音识别具有较高的精度,是目前具有代表性的汉语连续语音识别系统。
2、国内的发展看了国际的情况,现在看看我们国家的语音识别技术的发展情况。
我国语音识别研究工作起步于五十年代,但近年来发展很快。
研究水平也从实验室逐步走向实用。
我国的语音识别研究起始于1958年,由中国科学院声学所利用电子管电路识别10个元音。
直至1973年才由中国科学院声学所开始计算机语音识别。
由于当时条件的限制,我国的语音识别研究工作一直处于缓慢发展的阶段。
进入80年代以后,随着计算机应用技术在我国逐渐普及和应用以及数字信号技术的进一步发展,国内许多单位具备了研究语音技术的基本条件。
1986年3月我国高科技发展863计划启动,语音识别作为智能计算机系统研究的一个重要组成部分而被专门列为研究课题。
从此我国的语音识别技术进入了一个前所未有的发展阶段。
在非特定人语音识别方面:清华大学计算机科学与技术系在87年研制的声控电话查号系统并投入实际使用。
在连续语音识别方面:91年12月四川大学计算机中心在微机上实现了一个主题受限的特定人连续英语——汉语语音翻译演示系统。
在孤立字大词汇量语音识别方面:最具代表性的要数92年清华大学电子工程系与中国电子器件公司合作研制成功的THED-919特定人语音识别与理解实时系统。
二、语音识别技术发展所面临的困难1、认识语音识别系统首先介绍一下语音识别系统的分类方式及依据。
根据对说话人说话方式的要求,可以分为孤立字(词)语音识别系统,连接字语音识别系统以及连续语音识别系统。
根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统。
据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量以及无限词汇量语音识别系统。
语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。
此外,还涉及到语音识别单元的选取。
不同的语音识别系统,虽然具体实现细节有所不同,但所采用的基本技术相似,一个典型语音识别系统的实现过程如下图所示。
2、面临的困难目前,语音识别技术还面临着许多的问题,还不够成熟,主要有:第一,语音识别的研究工作进展缓慢,主要表现在理论上一直没有突破。
虽然各种新的修正方法不断涌现,但还缺乏普遍适用性。
第二,语音识别系统的适应性差,主要体现在对环境依赖性强,即在某种环境下采集到的语音训练系统只能在这种环境下应用,否则系统性能将急剧下降;另外一个问题是对用户的错误输入不能正确响应,使用不方便。
第三,高噪声环境下语音识别进展困难,因为此时人的发音变化很大,像声音变高,语速变慢,音调及共振峰变化等等,这就是所谓Lombard效应,必须寻找新的信号分析处理方法。
第四,语言学、生理学、心理学方面的研究成果已有不少,但如何把这些知识量化、建模并用于语音识别,还需研究。
而语言模型、语法及词法模型在中、大词汇量连续语音识别中是非常重要的。
第五,我们对人类的听觉理解、知识积累和学习机制以及大脑神经系统的控制机理等方面的认识还很不清楚;其次,把这方面的现有成果用于语音识别,还有一个艰难的过程。
第六,语音识别系统从实验室演示系统到商品的转化过程中还有许多具体问题需要解决,识别速度、拒识问题以及关键词(句)检测技术(即从连续语音中去除诸如“啊”、“唉”等语音,获得真正待识别的语音部分)等等技术细节要解决。
3、解决困难的方法在研究语音识别的道路上既然出现了这么多的问题,那么为了解决这些问题,研究人员提出了各种各样的方法,如自适应训练,基于最大互信息准则(MMI)和最小区别信息准则(MDI)的区别训练和“矫正”训练;应用人耳对语音信号的处理特点,分析提取特征参数,应用人工神经元网络……所有这些努力都取得了一定成绩。
当然,如果要使语音识别系统性能有大的提高,就要综合应用语言学、心理学、生理学以及信号处理等各门学科有关知识,只用其中一种是不行的。
三、语音识别技术的应用以及发展前景1、目前语音识别技术在许多领域的应用目前世界各国都加快了语音识别应用系统的研究开发,并已有一些实用的语音识别系统投入商业运营。
在美国语音识别系统的销售额逐年上升,由于使用了语音识别系统,为企业赢得了巨额收入。
语音识别系统有AT&T于1992年开发的VRCP系统。
该系统是有五个单词(collect,person,third number,operator和calling card)的非特定人小词汇量语音识别系统,现已应用于AT&T通信网上,可以实现自动话务员协助式呼叫,代替话务员完成五种呼叫类型。
此外,语音识别技术在iphone中应用也是很广泛了。
2、对语音识别技术的发展前景中文大词汇量连续语音识别技术近年来发展迅速,并在许多领域得到了广泛的应用,国内外许多大公司加大了对语音识别技术的研究,不少商业化的语音识别系统已经面世,并得到较为广泛的使用。
当然在国内,中文的语音识别也有已经较为成熟并投入消费应用的技术。
上市企业科大讯飞的高级副总裁、研究院院长胡郁告诉环球企业家,讯飞口讯、讯飞输入法等主要产品,总计有800万下载用户,每天有200万次语音交互。
同时其技术也在新浪微博的语音搜索中使用,腾讯则获得其语音能力的授权,正在研发相关产品。
在他看来,语音智能之所以现在爆发,与移动互联网和云计算紧密相关。
不过相比美国,中国在人工智能和操作系统的技术上仍有很大差距,因此在短期内产生和Siri同级别的产品,可能性甚微。
苹果网站的FAQ中提到,明年Siri将会提供中文服务。
如果Siri能够与中国的网络服务提供者(如大众点评等)、第三方开发者建立良好的合作,将会给中国语音智能行业内的企业带来更大的挑战。
对更多想要在这一领域淘金的中国公司来说,在苹果平台上开发Siri有关的应用,依然将是短期内最主流的方式。
我认为好的中文连续语音识别技术要达到:提供最自然的人机交流方式,并具备自适应的识别功能,解决了非特定说话人的语音差别问题最快捷最方便的汉字输人方式。
能把“听到”说的话写听来,还能“听懂”语音命令,完成相应的操作,而目比键盘输人更方便,比鼠标更直接;不用动手,只要动口,一瞬间就可完成您要做的工作,要具有强大的听写能力,经过听写字处理器,不须动手,就能完成从交字输人到格式编排的全部工作,很好帮助人们解决问题,就是他们在忙碌的时候,用语音识别系统来做事,就会方便很多,节省了很多时间,所谓时间按就是金钱,这样人们的生活节奏就会变得更加快了,生活的质量也将会得到提高。
四、结束语(结论)其实,我们所说的语音识别技术,就是根据对说话人说话方式的要求,可以分为孤立字语音识别系统,连接字语音识别系统以及连续语音识别系统。
根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统。
根据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量以及无限词汇量语音识别系统。
不同的语音识别系统,虽然具体实现细节有所不同,但所采用的基本技术相似,它正在不断的发展完善的过成中。
目前,现在实用的系统还有AT & T 800语音识别服务系统,NTT ANSER语音识别银行服务系统,Northen Telecom股票价格行情系统,使得原本手工操作的工作用语音就可方便地完成。
在当代随计算机的普及,人与计算机交流、人机对话也越炒越热,人类要是能用语言同计算机交流和计算机能不能听懂人的语言这个是很重要的问题,也就是要使我们的计算机能够识别人的声音。
这里主要是指中文,英语的话难度没有汉语大,已经实现的差不多了。
但是中文的语音识别技术,相对来说,比较的困难,好的语音识别系统,首先,要能区别拼音发声,还要有联想的功能;其次要能够保存上次说话的内容,可以用于下次拿出来做对比,这样就可以设计一个随着使用次数的增加语音识别的功能也将增强,更加的准确,达到人们所希望的效果。
我们从语音识别技术的发展可以看出,科学技术推动了社会发展,满足人们的需求,社会需求也反过来推动科学技术发展。
多媒体时代的来临,迫切要求解决自动语音识别的难题,必然推动语音识别理论和应用研究的进展。
估计在本世纪最后几年至二十一世纪初,语音识别技术将会在理论上和应用上都取得突破性进展。
到那时,我们将体会到语音识别带来的种种便利。
人们在写一些东西的时候,基本都不用写字,只需要对着语音势必诶系统讲,他就将准确的翻译出来你所讲的内容。