当前位置:文档之家› 基于MATLAB的图片中文字的提取及识别

基于MATLAB的图片中文字的提取及识别

基于MATLAB的图片中文字的提取及识别
基于MATLAB的图片中文字的提取及识别

基于MATLAB的图片中文字的提取及识别

邹浩,余龙,邹勇博,刘宇童,和振乔,李少梅

(西安电子科技大学电子工程学院,西安,710126)

摘要

随着现代社会的发展,信息的形式和数量正在迅猛增长。其中很大一部分是图像,图像可以把事物生动地呈现在我们面前,让我们更直观地接受信息。同时,计算机已经作为一种人们普遍使用的工具为人们的生产生活服务。从图像中提取文字属于信息智能化处理的前沿课题,是当前人工智能与模式识别领域中的研究热点。由于文字具有高级语义特征,对图片内容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意义。又由于静态图像文字提取是动态图像文字提取的基础,故着重介绍了静态图像文字提取技术。

关键词:MATLAB 图像处理文字提取文字识别

Text Extraction and Recognition in Images Based on MATLAB ZOU Hao, YU long, ZOU Yongbo, LIU Yutong, HE Zhenqiao, LI Shaomei

(Xidian University Electronic Engineering College,Xi'an,710126)

Abstract

With the development of society,the form and quantity of imformation are increasing quickly.A large part of them are images,which can make things vividly presented in front of us,let us more intuitive to accept information.At the same time, the computer has been as a widely used tool for people's production and living services.Extracting text from image belongs to the frontier of intelligent information processing, and it is the current hot research topic in the field of artificial intelligence and pattern recognition.As the text with high-level semantic feature and plays an important role on understanding,indexing and retrieval image content.Therefore,the study on extracting texts from images have important actual meanings. And because extracting texts from still images is the basis for extracting texts from dynamic images, the article emphatically introduces the technology of extracting texts from still images.

Key Words: MATLAB image processing word extraction word recognition

一.引言

随着计算机科学的飞速发展,以图像为主的多媒体信息迅速成为重要的信息传递媒介,在图像中,文字信息(如新闻标题等字幕) 包含了丰富的高层语义信息,提取出这些文字,对于图像高层语义的理解、索引和检索非常有帮助。图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像文字提取是动态图像文字提取的基础,其应用范围更为广泛,对它的研究具有基础性,

所以本文主要讨论静态图像的文字提取技

术。静态图像中的文字可分成两大类: 一种

是图像中场景本身包含的文字, 称为场景

文字;另一种是图像后期制作中加入的文

字, 称为人工文字,如右图所示。场景文字

由于其出现的位置、小、颜色和形态的随机

性, 一般难于检测和提取;而人工文字则字

体较规范、大小有一定的限度且易辨认,颜

色为单色, 相对与前者更易被检测和提取,

又因其对图像内容起到说明总结的作用,故适合用来做图像的索引和检索关键字。对图像中场景文字的研究难度大,目前这方面的研究成果与文献也不是很丰富,本文主要讨论图像中人工文字提取技术。

二.静态图像中文字的特点

静态图像中文字(本文特指人工文字,下同)具有以下主要特征:

(1)文字位于前端,且不会被遮挡;

(2)文字一般是单色的;

(3)文字大小在一幅图片中固定,并且宽度和高度大体相同,从满足人眼视觉感受的角度来说,图像中文字的尺寸既不会过大也不会过小;

(4)文字的分布比较集中;

(5)文字的排列一般为水平方向或垂直方向;

(6)多行文字之间,以及单行内各个字之间存在不同于文字区域的空隙。在静态图片文字的检测与提取过程中, 一般情况下都是依据上述特征进行处理的。

三.文字提取、识别的一般流程

??

?≥<=thresh

i thresh

i i 2,12,03 静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、文字后处理。其流程如图1所示。

(图1)

四.文字提取、识别的详细步骤

1. 在Matlab 中调用i1=imread('字符.jpg'),可得到原始图像,如图2所示:

(图2)

2. 调用i2=rgb2gray(i1),则得到了灰度图像,如图3所示:

(图3)

调用a=size(i1);b=size(i2);可得到:a=3,b=2 即三维图像变成了二维灰度图像

3. 调用i3=(i2>=thresh);其中thresh 为门限,在[0,255]之间

这里,i2_max=double(max(max(i2))); %获取亮度最大值 i2_min=double(min(min(i2))); %获取亮度最小值 thresh=round(i2_max-((i2_max-i2_min)/3)); 得到二值图像,如图4所示:

(图4)

4.把二值图像放大观察,可看到离散的黑点

对其采用腐蚀膨胀处理,得到处理后的图像,如图5所示

(图5)

可见,腐蚀膨胀处理后的图像质量有了很大的改观。

横向、纵向分别的腐蚀膨胀运算比横向、纵向同时的腐蚀膨胀运算好上很多,图6可看出差别:

(图6)

5. 对腐蚀膨胀后的图像进行Y方向上的区域选定,限定区域后的图像如图7所示:

扫描方法:中间往两边扫

(图7)

纵向扫描后的图像与原图像的对照,如图8所示:

(图8)

6.对腐蚀膨胀后的图像进行X方向上的区域选定,限定区域后的图像如图9所示:

扫描方法:两边往中间扫

(图9)

纵向扫描后的图像与原图像的对照,如图10所示:

(图10)

7. 调用i8=(iiXY~=1),使背景为黑色(0),字符为白色(1),便于后期处理。

背景交换后的图像如图11所示:

(图11)

8. 调用自定义函数(字符获取函数)i9=getchar(i8),得到图像如图12所示:

(图9)

9.调用自定义的字符获取函数对图像进行字符切割,并把切割的字符装入一维阵列,切割

过程如图12所示:

(图12)

10.调用以下代码,可将阵列word中的字符显示出来,如图13所示:

for j=1:cnum %cnum为统计的字符个数

subplot(5,8,j),imshow(word{j}),title(int2str(j)); %显示字符

end

(图13)

可以看到,字符宽度不一致

11.调用以下代码,将字符规格化,便于识别:

for j=1:cnum

word{j}=imresize(word{j},[40 40]); %字符规格化成40×40的end

得到规格化之后的字符如图14所示:

(图14)

12.调用以下代码创建字符集:

code=char('由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。');

将创建的字符集保存在一个文件夹里面,以供匹配时候调用,如图15所示:

(图15)

13.字符匹配采用模板匹配算法:将现有字符逐个与模板字符相减,认为相减误差最小的现 有字符与该模板字符匹配。

假设:字符??

?

?

?

??

?

?=100100100100

1001A ,模板字符???

?

?

??

?

?=000000001111

1111

1T ,模板字符??

??

?

?

?

??=10010110011010012T

也就是说,字符A 与模板字符T 1更相似,我们可以认为字符集中的字符T 2就是字符A 。 经模板匹配,可得字符信息如下:

由于读者书评有限书中难免存在缺点和纰漏之处,恳请读者批评指正。 效果如图16所示:

(图16)

14.调用以下代码,将字符放入newtxt.txt 文本:

2

)))(((,8)))(((21=-=-T T A abs sum sum A abs sum sum

new=['newtxt','.txt'];

c=fopen(new,'a+');

fprintf(c,'%s\n',Code(1:cnum));

fclose(c);

newtxt.txt文本内容如图17所示:

(图17)

五.反思与体会

1.算法具有局限性。对于左右结构的字符(如:川)容易造成误识别,“川”字将会被识别

成三部分。当图片中文字有一定倾斜角度时,这将造成识别困难。

2.模板匹配效率低。对于处理大小为m×m的字符,假设有n个模板字符,则识别一个字符至

少需要m×m×n×2次运算,由于汉字有近万个,这将使得运算量十分巨大!此次字符识别一共花了2.838秒。

3.伸缩范围比较小。对于受污染的图片,转换成二值图像将使字符与污染源混合在一起。

对于具体的图片,需反复选择合适的thresh进行二值化处理,甚至在处理之前必须进行各种滤波。

4.通过这次数字图象处理的学习和报告的撰写,我们小组发挥了团结友爱的协作精神,大

量的资料查阅丰富了我们的视野,同时使我们对这么课更加感兴趣。

参考文献

[1] 樊昀,王润生.从图像中提取文字[J] .国防科技大学学报,2002,24 (1) :59-62.

[2] 王健,王晨.基于静态图片的文本提取技术的研究[J] .延边大学学报(自然科学版) , 2007,33

(2) :124-128.

[3] 夏莹,马少平,孙茂松等.计算机语言学方法在中文文字识别后处理中的应用[J] .中文信息,1996, (2) :50-51.

[4] 郑阿奇,曹戈,赵阳.MATLAB实用教程[M].北京:电子工业出版社

[5] 程卫国,冯峰,姚东,徐听.MATLAB5.3应用指南[M].北京:人民邮电出版社

[6] 陈杨.MATLAB 6.X图像编程与图像处理[M].西安:西安电子科技大学出版社

[7] 阮秋琦.数字图像处理[M].电子工业出版社,2001年.

[8] 徐建华.图像处理与分析[M].科学出版社,1999年.

附录

主程序源代码:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

%%%%%%%%%%%%%%% 数字图象处理大作业%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

%————————图片中文字的提取及识别————————% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%

tic

I=imread('字符.jpg'); %打开图片

%figure(1);imshow(I);title('原始图像','color','b');

I=rgb2gray(I); %RGB图片转化成灰度图像

%figure(2);imshow(I);title('灰度图像','color','b');

i_max=double(max(max(I))); %获取亮度最大值

i_min=double(min(min(I))); %获取亮度最小值

thresh=round(i_max-((i_max-i_min)/3)); %计算灰度图像转化成二值图像的门限thresh

I=(I>=thresh); %I为二值图像

%figure(3);imshow(I);title('二值图像','color','b');

seY=[1;1;1]; %构造结构元素

I=imdilate(I,seY); %腐蚀图像

I=imerode(I,seY); %膨胀图像

seX=[1 1 1];

I=imdilate(I,seX);

I=imerode(I,seX);

%figure(4);imshow(I);title('腐蚀膨胀后的图像','color','b');

ii=double(I);

[m,n]=size(ii); %获取图像大小信息

%确定文字区域

%纵向扫描

countY=zeros(m,1);

for i=1:m

for j=1:n

if ii(i,j)==0

countY(i,1)=countY(i,1)+1;

end

end

end

[maxY indexY]=max(countY);

tempY1=indexY;

while (countY(tempY1,1)>3) && (tempY1>1)

tempY1=tempY1-1;

end

tempY2=indexY;

while (countY(tempY2,1)>3) && (tempY2

tempY2=tempY2+1;

end

tempY1=tempY1-1;

tempY2=tempY2+1;

iiY=I(tempY1:tempY2,:); %确定了Y方向上的文字区域

%figure(5);imshow(iiY);title('Y方向区域大致确定后的图像','color','b');

%横向扫描

countX=zeros(1,n);

for j=1:n

for i=tempY1:tempY2

if ii(i,j)==0

countX(1,j)=countX(1,j)+1;

end

end

end

tempX1=1;

while (countX(1,tempX1)<3) && (tempX1

tempX1=tempX1+1;

end

tempX2=n;

while (countX(1,tempX2)<3) && (tempX2>1)

tempX2=tempX2-1;

end

tempX1=tempX1-1;

tempX2=tempX2+1;

iiXY=iiY(:,tempX1:tempX2); %确定了整体的文字区域

%figure(6);imshow(iiXY);title('X、Y方向区域都大致确定后的图像','color','b'); ii=(iiXY~=1);%黑色背景,白色字体

%figure(7);imshow(ii);title('背景和文字交换颜色的图像','color','b');

ii=bwareaopen(ii,200); %删除面积小于200的杂质图像

%figure(8);imshow(ii);title('删除杂质干扰的图像','color','b');

myI=charslice(ii); %限定文字区域

%figure(9);imshow(ii);title('限定文字区域的图像','color','b');

y1=10;y2=0.25;flag=0;

maxnum=40;k=1; %maxnum为字符个数限定值,k用于统计实际字符个数

word=cell(1,maxnum); %建立单元阵列,用于储存字符

figure(10)

while size(myI,2)>10 %当myI的长度小等于10,可确定没有字符了

[word{k},myI]=getword(myI); %获取字符

k=k+1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%

if k==2

subplot(5,1,1);imshow(myI);title('第一次切割后的图像','color','b');

end

if k==3

subplot(5,1,2);imshow(myI);title('第二次切割后的图像','color','b');

end

if k==5

subplot(5,1,3);imshow(myI);title('第四次切割后的图像','color','b');

end

if k==16

subplot(5,1,4);imshow(myI);title('第十五次切割后的图像','color','b');

end

end

subplot(5,1,5);imshow(myI);title('最后一次切割后的图像','color','b'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%

cnum=k-1; %实际字符总个数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%

figure(11);

for j=1:cnum

subplot(5,8,j),imshow(word{j}),title(int2str(j)); %显示字符

end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%

for j=1:cnum

word{j}=imresize(word{j},[40 40]); %字符规格化成40×40的

end

figure(12);

for j=1:cnum

subplot(5,8,j),imshow(word{j}),title(int2str(j)); %显示字符

end

for j=1:cnum

imwrite(word{j},[int2str(j),'.jpg']); %保存字符

end

defx=40;defy=40;

code=char('由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。');%创建字符集

codenum=size(code,2); %获取字符集中字符个数

for i=1:cnum

ch=int2str(i); %数字转化为字符

tempbw=imread([ch '.jpg']); %打开预匹配字符

for k=1:codenum

fname=strcat('C:\Users\Administrator\Desktop\数字图像处理大作业\字符匹配库\',code(k),'.jpg'); %字符匹配库中的字符

sample=imread(fname);

subsam=abs(tempbw-sample); %作比较

count=sum(sum(subsam)); %匹配误差统计

err(k)=count;

end

erro=err(1:codenum);

minerror=min(erro); %找出误差最小的模板字符

findc=find(erro==minerror); %获取模板字符序号

Code(i)=code(findc); %将字符装入Code

end

figure(13);

imshow(ii);

tt=title(['文字信息: ', Code(1:cnum)],'Color','b'); %显示字符信息

set(tt,'fontsize',24); %设置字体%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %将图片文字写入newtxt文本

new=['newtxt','.txt'];

c=fopen(new,'a+');

fprintf(c,'%s\n',Code(1:cnum));

fclose(c);

t=toc

charslice(字符分割)函数源代码:

%字符分割

function y=charslice(ii)

[m,n]=size(ii);

top=1;bottom=m;left=1;right=n;

while sum(ii(top,:))==0 && top

top=top+1;

end

while sum(ii(bottom,:))==0 && bottom>=1

bottom=bottom-1;

end

while sum(ii(:,left))==0 && left

left=left+1;

end

while sum(ii(:,right))==0 && right>=1

right=right-1;

end

ydiff=bottom-top;

xdiff=right-left;

y=imcrop(ii,[left top xdiff ydiff]);

getword(字符获取)函数源代码:

%字符获取

function [word,result]=getword(ii)

word=[];flag=0;y1=8;y2=0.5;

while flag==0

[m,n]=size(ii);

wide=0;

while sum(ii(:,wide+1))~=0 && wide<=n-2

wide=wide+1;

end

temp=charslice(imcrop(ii,[1 1 wide m]));

[m1,n1]=size(temp);

if widey2

ii(:,1:wide)=0;

if sum(sum(ii))~=0

ii=charslice(ii); % 切割出最小范围else word=[];flag=1;

end

else

word=charslice(imcrop(ii,[1 1 wide m]));

ii(:,1:wide)=0;

if sum(sum(ii))~=0;

ii=charslice(ii);

flag=1;

else ii=[];

end

end

end

result=ii;

语音识别Matlab可视化编程(部分)

附录1:录音函数:audiorecorder.m % 运行平台:Windows 8.1 64bit MATLAB R2014a % 录音2秒钟 clear all;clc;close all; fs = 16000; %2é?ù?μ?ê recorder = audiorecorder; disp('Start speaking.') recordblocking(recorder, 2); disp('End of Recording.'); % 回放录音数据 play(recorder); % 获取录音数据 xx = getaudiodata(recorder,'int16'); %绘制录音数据波形 plot(xx); A6:“录音”按键回调函数 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fs = 16000; recorder = audiorecorder; disp('Start speaking.') recordblocking(recorder, 2); disp('End of Recording.'); % 回放录音数据 % play(recorder); % 获取录音数据 k = getaudiodata(recorder,'int16'); plot(handles.axes1,k); load mfcc.mat; [StartPoint,EndPoint]=vad(k,fs); cc=mfcc(k); cc=cc(StartPoint-2:EndPoint-2,:); test.StartPoint=StartPoint; test.EndPoint=EndPoint;

引用 如何从图片中提取文字

引用如何从图片中提取文字(怎样把JPG图片转换成word文档格式?) 默认分类2010-04-12 09:20:48 阅读4608 评论2 字号:大中小订阅 本文引用自zjw164684798《如何从图片中提取文字(怎样把JPG图片转换成word文档格式?)》 引用 zjw164684798的如何从图片中提取文字(怎样把JPG图片转换成word文档格式?) 问题:,扫描机只能把文件扫描成jpg格式的,有什么办法把图片里的文字提炼出来? ----------------------------------------------------------------------------------------------------------------------------------------------------- 解决方法: 以下内容需要回复才能看到 方法一:《尚书七号》是一个OCR(光学字符识别)文字表格识别软件,是一个提高文档办公效率的好帮手。通过这个软件,可以把JPG图片文件识别出来生成TXT文本文件,再把文本文件里识别出来的内容粘贴到WORD里面就可以进行排版编辑。 尚书七号(文字识别) ocr已注册版下载地址: https://www.doczj.com/doc/9114020664.html,/soft/2126.html(飞翔下载) https://www.doczj.com/doc/9114020664.html,/Down/6290.html(直接进入下载页面) 慧视小灵鼠也不错的,下载地址: https://www.doczj.com/doc/9114020664.html,/down/2713.html 下面简单介绍一下操作步骤: .从扫描仪导入图片或截图生成 screen.width*0.78-35)this.width=screen.width*0.78-35;" border=0> [图1] 截图后,打开Photoshop,新建文件,分辨率设:300像素/英寸 screen.width*0.78-35)this.width=screen.width*0.78-35;" border=0> [图2] 粘贴后,保存为.jpg格式 screen.width*0.78-35)this.width=screen.width*0.78-35;" border=0>

基于MATLAB的语音信号采集与处理

工程设计论文 题目:基于MATLAB的语音信号采集与处理 姓名: 班级: 学号: 指导老师:

一.选题背景 1、实践意义: 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效地提取并表示语音信号所携带的信息。所以理解并掌握语音信号的时域和频域特性是非常重要的。 通过语音相互传递信息是人类最重要的基本功能之一.语言是人类特有的功能.声音是人类常用工具,是相互传递信息的最重要的手段.虽然,人可以通过多种手段获得外界信息,但最重要,最精细的信息源只有语言,图像和文字三种.与用声音传递信息相比,显然用视觉和文字相互传递信息,其效果要差得多.这是因为语音中除包含实际发音容的话言信息外,还包括发音者是谁及喜怒哀乐等各种信息.所以,语音是人类最重要,最有效,最常用和最方便的交换信息的形式.另一方面,语言和语音与人的智力活动密切相关,与文化和社会的进步紧密相连,它具有最大的信息容量和最高的智能水平。 语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,处理的目的是用于得到某些参数以便高效传输或存储;或者是用于某种应用,如人工合成出语音,辨识出讲话者,识别出讲话容,进行语音增强等. 语音信号处理是一门新兴的学科,同时又是综合性的多学科领域,

是一门涉及面很广的交叉学科.虽然从事达一领域研究的人员主要来自信息处理及计算机等学科.但是它与语音学,语言学,声学,认知科学,生理学,心理学及数理统计等许多学科也有非常密切的联系. 语音信号处理是许多信息领域应用的核心技术之一,是目前发展最为迅速的信息科学研究领域中的一个.语音处理是目前极为活跃和热门的研究领域,其研究涉及一系列前沿科研课题,巳处于迅速发展之中;其研究成果具有重要的学术及应用价值. 数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、度快等优点。 数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。 FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能

如何从图片中提取文字

如何从图片中提取文字? 悬赏分:20 - 提问时间2008-9-20 10:50 因为工作原因,我需要从一些图片中,提取其中的文字,有的时候看的清楚,还没什么关系。但经常图片中的文字,很不清楚,完全没法看。以前用过尚书。但是不行,不是提不出来,就是乱码。 我想问下各位大虾,有没有什么其他的软件可以实现的。或者是有什么办法不借助软件的,也行。谢谢! 提问者:oakwins - 一级 其他回答共 3 条 基本没有 回答者:gujin170 - 八级2008-9-20 17:49 从图片中提取文字的软件叫OCR软件 你搜索ocr软件就可以了。不借助软件就只有人眼了。 人眼看不清楚,软件就更不能了,除非是军用专业软件。 回答者:尼欧赵- 三级2008-9-24 15:41 微软在Microsoft Office 2003中的工具组件中有一个“Microsoft Office Document Imaging”的组件包,它可以直接执行光学字符识别(OCR),下面笔者就为大家介绍利用Office 2003新增的OCR功能从图片中提取文字的方法。 第一步我们需要安装“Microsoft Office Document Imaging”的组件,点“开始→程序”,在“Microsoft Office 工具” 里点“ Microsoft Office Document Imaging” 即可安装运行(如图1所示)。 图1 安装组件 第二步打开带有文字的图片或电子书籍等,找到你希望提取的页面,按下键盘上的打印屏幕键(PrintScreen)进行屏幕取图。 第三步打开Microsoft Office Word 2003 ,将刚才的屏幕截图粘贴进去;点击“文件”菜单中的“打印”,在安装Microsoft Office Document Imaging组件后,系统会自动安装一个名为“Microsoft Office Document Imaging Writer”的打印机。如图2所示,在“打印机”下拉列表框中选择“Microsoft Office Document Imaging Writer”打印机,其他选项无须额外设置,点击“确定”按钮后,设定好文件输出的路径及文件名(缺省使用源文件名),然后很快就可以自动生成一个MDI格式的文档了。

电脑上如何提取图片中的文字教你3个方法

相信大家在电脑上查找资料时,经常遇到不能复制的内容,很多人只能失望的关闭页面。 那么大家有没有尝试过,将文本内容截图下来,然后再提取图片中的文字。 下面就来教你3个方法,10秒轻松搞定。 方法一、WPS提取 1、图片转文字 WPS也是当前主流的办公软件,这上面有很多特色功能,都是我们在办公时经常用到的,进入软件点击顶部的【特色应用】,在下方找到【图片转文字】功能。 2、具体操作步骤

进入图片转文字功能中,点击【添加图片】按钮,上传图片到这里,然后在右边选择转换方式为【提取纯文本】。 等待10秒左右,我们就可以看到转换的结果了,直接将左边的图片上的文字,提取到右边的空白处,这时就可以自由复制啦。

方法二、Office提取 1、笔记管理平台 在Office软件中,一直隐藏着【OneNote】应用,这其实就是一站式笔记管理平台,只是我们很少去用,里面也具有提取图片文字功能。

2、具体操作步骤 进入我的笔记本,在快速笔记下方,将图片拖入进来,接着鼠标右击,选择【复制图片中的文本】,最后在下方右击选择粘贴,图片中的文本就被提取出来了。

方法三、工具批量提取 1、OCR文字识别 前面的两种方法,只能单张提取,如果有很多张图片需要提取文本,这就需要用到迅捷OCR文字识别软件,支持一键批量提取。 2、具体操作步骤 在电脑上打开这个工具,在左侧工具栏中找到【OCR文字识别】-【批量识别】;接着再选择【添加文件】,找到需要提取的图片,批量选中后点击【打开】。

图片添加完成后,在底部将导出格式改为【TXT文件】;将导出目录改为【自定义】,选择一个保存路径,最后点击【开始识别】按钮,等待提取结果即可。 想要在电脑上提取图片中的文字,大家就用这几个方法试试。

基于语音识别的智能小车设计-毕设论文

基于语音识别的智能小车 摘要 随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。 语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音识别和非特定人(Speaker Independent)语音识别。本设计采用的识别类型是特定人孤立词语音识别。 本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,根据不同的指令控制小车完成不同的动作。 该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。本设计达到了预期目标,实现了所期望的功能效果。 关键词:MATLAB,语音识别,端点检测,LPC,单片机,电机控制

SMART CAR GASED SPEECH RECOGNITION ABSTRACT With the development of computer technology,pattern recognition,signal processing technology and acoustic technology etc, the speech recognition system that can meet the various needs of people is more possible to achieve.The past three decades, the voice recognition in the field of computer, information processing, communications and electronic systems, automatic control has increasingly wide range of applications. Speech recognition by the speaker's speech can be divided into isolated word (Isolated Word) identification, conjunctions (Connected Word) and continuous speech recognition (Continuous Speech) identification. Identifying the type of object from the point of view, the voice recognition can be divided into a specific person (Speaker Dependent) speech recognition and non-specific (Speaker Independent) speech recognition. This design uses the identification type is a specific person isolated word speech recognition. This design is of a good implementation of speech recognition in the control field, it does the work that would otherwise require manual operation by the voice of people easily.This system includes two major aspects:the host system and the slave system. The host system use the MATLAB on the computer which has powerful mathematical computing ability to do the work of voice input, endpoint monitoring, feature extraction, matching, identification and serial control,then it send different commands through the PC serial port to slave system according different recognised voice. The slave system is a car controlled by a single-chip micro-controller.It controls the car do different actions according different instructions received.

matlab语音识别系统(源代码)18676

(威海)《智能仪器》课程设计 题目: MATLAB实现语音识别功能班级: 学号: 姓名: 同组人员: 任课教师: 完成时间:2012/11/3

目录 一、设计任务及要求 (1) 二、语音识别的简单介绍 语者识别的概念 (2) 特征参数的提取 (3) 用矢量量化聚类法生成码本 (3) 的说话人识别 (4) 三、算法程序分析 函数关系 (4) 代码说明 (5) 函数mfcc (5) 函数disteu (5) 函数vqlbg (6) 函数test (6) 函数testDB (7) 函数train (8) 函数melfb (8) 四、演示分析 (9) 五、心得体会 (11) 附:GUI程序代码 (12)

一、设计任务及要求 用MATLAB实现简单的语音识别功能; 具体设计要求如下: 用MATLAB实现简单的数字1~9的语音识别功能。 二、语音识别的简单介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码本。在识别(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。 语音识别系统结构框图如图1所示。 图1 语音识别系统结构框图 语者识别的概念 语者识别就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可能。用语音来鉴别说话人的身份有着许多独特的优点,如语音是人的固有的特征,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用电话网络还可实现远程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而且属于非接触性,容易被用户接受,并且在已有的各种生物特征识别技术中,是唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中关键的成分尤为重要。语音信号的特征参数的好坏直接导致了辨别的准确性。

基于MATLAB的特定人语音识别算法设计毕业设计

本科毕业设计 基于MATLAB的特定人语音识别算法设计

摘要 语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信网中最重要、最基本的组成部分之一。而在随着科技技术的发展的今天,除了人与人之间的自然语言通信之外,人与机或机器与机器之间也开始使用语言。也就是因为如此,需要涉及到语音识别技术。为了解决机器能“听懂”人类的语言,在科技如此迅猛发展的今天,语音识别技术一直受到各国科学界的关注,其对计算机发展和社会生活的重要性也日益凸显出来。 在孤立字语音识别中,如语音密码锁,汽车控制等领域,都运用到了特定人语音识别技术,也就是DTW算法,相对于HMM算法,DTW算法具有简单操作。在相同环境下,两者识别效果相差不大,但是HMM算法要复杂得多,主要体现在HMM算法在训练阶段需要提供大量的语音数据,而DTW算法则不需要额外的计算。所以在特定人语音识别当中,DTW算法被广泛使用。 在本次设计中,将运用到MATLAB平台来对语音信号进行处理及识别。相对于C 语言而言,MATLAB平台更能给用户提供一个简单易懂的代码分析窗口。而且在个性化设计中,MATLAB可以为用户提供一个人性化界面--GUI。所以,此次设计,通过MATLAB 平台建立一个GUI界面,接着对一组语音信号的输入进行预处理及端点检测,提取特征参数(MFCC),形成参考模块。然后再对一组相同的语音信号输入进行同样的操作作为测试模块,与参考模块进行DTW算法进行匹配,输出匹配后的识别结果。 关键词:MATLAB GUI 端点检测MFCC DTW

基于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模型。 第二个问题力图揭露模型中隐藏着的部分,即找出“正确的”状态序列,这是一个典型的估计问题。

从图片中读取文字、把图片转换成文本格式

一、背景 看到图片中满是文字,而你又想把这些文字保存下来,怎么办? 日常读书,某篇文章写的极好,想把它分享到网络上,怎么办? 一个字一个字敲进电脑?太麻烦了。是不是希望有一种东西能自动识别读取这些文字? 是的,科技就是拿来偷懒的。 其实你们电脑中安装的word早就为你考虑过这些问题了,只是你还不知道。 二、方法 1、图片格式转换 只有特定格式的图片才能读取文字,所以要转换。大家常见的图片格式都是jpg,或者png,bmp等,用电脑自带的画图软件打开你要获取文字的图片(画图软件在开始——所有程序——附件中,win7用户直接右击图片,选择编辑,就默认使用画图软件打开图片),然后把图片另存为tiff格式。 (以我的win7画图为例。另存为tiff格式如下图) 2、打开读取文字的工具 开始——所有程序——Microsoft Office——Microsoft Office工具——Microsoft Office Document Imaging(本文全部以office2003为例。另外,有些人安装的是Office精简版,可能没有附带这个功能,那就需要添加安装一下,安装步骤见文末注释①)

3、导入tiff格式的图片 在Microsoft Office Document Imaging软件界面中,选择文件——导入,然后选择你刚才存放的tiff格式的图片,导入。 4、文字识别

点击下图橙色方框圈中的图标,进行OCR识别,就是让软件把图片中的文字读取出来(图片中文字越多,识别花费的时间越长,进行识别完成之后,左边缩略图框中会有一个眼睛的标志,如图红色箭头所指);点击下图橙色椭圆圈中的图标,就能将整个图片中的文本发送到word。 5、也可以选择图片中的部分文字。 首先还是要点击OCR识别(如果上面已经识别过,就不用再识别一次了,具体看有没有眼睛标志),然后点击下图中左上角菜单中的箭头,就可以自由拖动选择文字、图片,右击选择框,就可以复制文本、图片或者将选中的文字发送到word。

matlab语音识别系统

· (威海)《智能仪器》课程设计 题目: MATLAB实现语音识别功能班级: 学号: 姓名: 同组人员: 任课教师: 完成时间:2012/11/3

目录 一、设计任务及要求 (1) 二、语音识别的简单介绍 2.1语者识别的概念 (2) 2.2特征参数的提取 (3) 2.3用矢量量化聚类法生成码本 (3) 2.4VQ的说话人识别 (4) 三、算法程序分析 3.1函数关系 (4) 3.2代码说明 (5) 3.2.1函数mfcc (5) 3.2.2函数disteu (5) 3.2.3函数vqlbg (6) 3.2.4函数test (6) 3.2.5函数testDB (7) 3.2.6 函数train (8) 3.2.7函数melfb (8) 四、演示分析 (9) 五、心得体会 (11) 附:GUI程序代码 (12)

一、设计任务及要求 用MATLAB实现简单的语音识别功能; 具体设计要求如下: 用MATLAB实现简单的数字1~9的语音识别功能。 二、语音识别的简单介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码本。在识别(匹配)阶段,我们用VQ方法计算平均失真测度(本系统在计算距离d时,采用欧氏距离测度),从而判断说话人是谁。 语音识别系统结构框图如图1所示。 图1 语音识别系统结构框图 2.1语者识别的概念 语者识别就是根据说话人的语音信号来判别说话人的身份。语音是人的自然属性之一,由于说话人发音器官的生理差异以及后天形成的行为差异,每个人的语音都带有强烈的个人色彩,这就使得通过分析语音信号来识别说话人成为可能。用语音来鉴别说话人的身份有着许多独特的优点,如语音是人的固有的特征,不会丢失或遗忘;语音信号的采集方便,系统设备成本低;利用网络还可实现远程客户服务等。因此,近几年来,说话人识别越来越多的受到人们的重视。与其他生物识别技术如指纹识别、手形识别等相比较,说话人识别不仅使用方便,而且属于非接触性,容易被用户接受,并且在已有的各种生物特征识别技术中,是唯一可以用作远程验证的识别技术。因此,说话人识别的应用前景非常广泛:今天,说话人识别技术已经关系到多学科的研究领域,不同领域中的进步都对说话人识别的发展做出了贡献。说话人识别技术是集声学、语言学、计算机、信息处理和人工智能等诸多领域的一项综合技术,应用需求将十分广阔。在吃力语音信号的时候如何提取信号中关键的成分尤为重要。语音信号的特征参数的好坏直接导致了辨别的准确性。

基于matlab的语音识别技术

项目题目:基于Matlab的语音识别 一、引言 语音识别技术是让计算机识别一些语音信号,并把语音信号转换成相应的文本或者命令的一种高科技技术。语音识别技术所涉及的领域非常广泛,包括信号处理、模式识别、人工智能等技术。近年来已经从实验室开始走向市场,渗透到家电、通信、医疗、消费电子产品等各个领域,让人们的生活更加方便。 语音识别系统的分类有三种依据:词汇量大小,对说话人说话方式的要求和对说话人的依赖程度。 (1)根据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量及无限词汇量识别系统。 (2)根据对说话人说话方式的要求,可以分为孤立字(词)语音识别系统、连接字语音识别系统及连续语音识别系统。 (3)根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统。 二、语音识别系统框架设计 2.1语音识别系统的基本结构

语音识别系统本质上是一种模式识别系统,其基本结构原理框图如图l所示,主要包括语音信号预处理、特征提取、特征建模(建立参考模式库)、相似性度量(模式匹配)和后处理等几个功能模块,其中后处理模块为可选部分。 三、语音识别设计步骤 3.1语音信号的特征及其端点检测 图2 数字‘7’开始部分波形 图2是数字”7”的波形进行局部放大后的情况,可以看到,在6800之前的部分信号幅度很低,明显属于静音。而在6800以后,信号幅度开始增强,并呈现明显的周期性。在波形的上半部分可以观察到有规律的尖峰,两个尖峰之间的距离就是所谓的基音周期,实际上也就是说话人的声带振动的周期。 这样可以很直观的用信号的幅度作为特征,区分静音和语音。只要设定一个

门限,当信号的幅度超过该门限的时候,就认为语音开始,当幅度降低到门限以下就认为语音结束。 3.2 语音识别系统 3.2.1语音识别系统的分类 语音识别按说话人的讲话方式可分为3类:(1)即孤立词识别(isolated word recognition),孤立词识别的任务是识别事先已知的孤立的词,如“开机”、“关机”等。(3)连续语音识别,连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话。 从识别对象的类型来看,语音识别可以分为特定人语音识别和非特定人语音识别,特定人是指针对一个用户的语音识别,非特定人则可用于不同的用户。显然,非特定人语音识别系统更符合实际需要,但它要比针对特定人的识别困难得多。 3.2.2语音识别系统的基本构成 语音识别系统的实现方案如图3所示。输入的模拟语音信号首先要进行处理,包括预滤波,采样和量化,加窗,端点检测,预加重等。语音信号经处理后,接下来很重要的一环就是特征参数提取。 图3 语音识别系统 在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模版库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模版,与参考模板进行匹配,将匹配分数最高的参考模型作为识别结果。 3. 2.3 语音识别系统的特征参数提取 特征提取是对语音信号进行分析处理,去除对语音识别无关紧要的冗余信息,获得影响语音识别的重要信息。语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒至几十毫秒,则可以得到一系列近似稳定的信号。人的发音器官可以用若干段前后连接的声管进行模拟,这就是所谓的声管模型。 全极点线性预测参数 (LPC: Liner Prediction Coeffieient)可以对声管模型进行很好的描述,LPC参数是模拟人的发声器官的,是一种基于语音合成的参数模型。 在语音识别中,很少用LPC系数,而是用LPC倒谱参数 (LPCC: Liner Prediction Cepstral Coefficient)。LPCC参数的优点是计算量小,对元音有较好的描述能力,其缺点在于对辅音的描述能力较差,抗噪声性能较差。

学会这2种方法轻松提取图片中的文字

当我们在网上搜索一些资料,很多内容是不能复制粘贴的。有的小伙伴的打字速度挺快的,就一点一点将搜索到的内容手动输入下来了。而对于我们这些职场新手来说,打字那是不可能的,这时我们只要学会图片转文字的操作就可以将需要的资料保存下来了。接下来小编给大家分享两种可以轻松提取图片文字的两种方法。 方法一:使用OCR软件 软件介绍: 迅捷OCR文字识别软件是我们在办公中常用的一种办公工具,该软件支持极速识别、OCR文字识别、票证识别、语音识别、文档翻译。 具体图片转换文字的操作一起看看: 打开电脑上的OCR文字识别软件之后,在极速识别和OCR文字识别都是可以完成图片转换文字的操作的,我们选择其中一个即可。如选择OCR文字识别功能。 在OCR文字识别功能的页面中,我们就选择截图识别功能了,页面中有截图的快捷方式,先打开要截图的页面,返回到OCR文字识别的页面中按下快捷键就可以进行截图了。

截取的图片在OCR文字识别的页面中有显示,我们对导出格式和导出目录进行一个简单的调整,点击页面右下角的“开始识别”就搞定啦。 方法二:使用在线网站 网站介绍: 该网站是一个PDF转换器的网站,支持多种PDF文件的转换。具备文档转换,文档处理,文档文本翻译,音视频转换,图片文字识别,语音识别等功能。以下给大家看看详细的操作: 当进入到PDF转换器在线网站后,选择点击“图片文字识别”功能中。

在跳转出的图片文字识别页面,需要添加一下图片文件,这个需要我们提前保存一下图片了。需要转换的图片上传成功后,该网站就会自动进行识别了。识别好的文件点击立即下载即可。 图片转换文字怎么转?这下大家学会了吧!简单的两种操作,可以帮助我们实现图片转换文字的操作,以后提取图片中的文字再也不用手动码字了,有需要的小伙伴们可以学学哈!

图片文字提取简易方法--有图有真相

在工作中,我常常在想,要是能把纸上有用的文字快速输入到电脑中,不用打字录入便可以大大提高工作效率该有多好呀!随着科技的发展,这个问题在不断的解决,例如,现在市场上的扫描仪就带有OCR软件,可以把扫描的文字转换到电脑中进行编辑。但是,对于我们平常人来说,大多数人都是即不想多花钱购买不常用的设备,又不想费力气打字录入,那我就给大家提供一个我刚刚发现的方法吧!现在数码相机很普遍,也很常用,我们就从这里下手吧。 工具准备: 硬件:电脑一台数码相机 软件: word2003(其它的版本我没有实验) doPDF (百度可以搜索下载,是一款免费的PDF制作软件) AJViewer软件(在百度可以搜索下载,是一款免费的阅读器) 步骤: 1、在电脑中安装 doPDF和AJViewer 2、用数码相机把需要的文字拍下来(相机和照像水平就不多谈了。照片效果越好,可以大大缩小转换文字的误差率) 例如: 3、在word中插入你用数码相机照的书上的文字(打开word——插入菜单——图片——来自文件——选择照片——插入)

4、在word中选择文件菜单——打印——在打印机选项中选择doPDF——确定——点击“浏览”选项——选择文件保存的位置和填写文件名称——保存——确定 5、按照上面的步骤,电脑会自动打开AJViewer软件,若没有自动打开该软件,可以自己打开AJViewer软件,然后在AJViewer中打开刚刚转换的PDF文件。 6、选择AJViewer中的,然后在需要的文字部分拖动鼠标画出虚线。 7、点击发送到word按钮,就可以转换成word文件了。可以编辑了。 第6、7步骤图片如下:

基于Matlab的语音识别系统的设计

摘要 语音识别主要是让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息执行人的各种意图。语音识别技术既是国际竞争的一项重要技术,也是每一个国家经济发展不可缺少的重要技术支撑。本文基于语音信号产生的数学模型,从时域、频域出发对语音信号进行分析,论述了语音识别的基本理论。在此基础上讨论了语音识别的五种算法:动态时间伸缩算法(Dynamic Time Warping,DTW)、基于规则的人工智能方法、人工神经网络(Artificial Neural Network,ANN)方法、隐马尔可夫(Hidden Markov Model,HMM)方法、HMM和ANN的混合模型。重点是从理论上研究隐马尔可夫(HMM)模型算法,对经典的HMM模型算法进行改进。 语音识别算法有多种实现方案,本文采取的方法是利用Matlab强大的数学运算能力,实现孤立语音信号的识别。Matlab 是一款功能强大的数学软件,它附带大量的信号处理工具箱为信号分析研究,特别是文中主要探讨的声波分析研究带来极大便利。本文应用隐马尔科夫模型(HMM) 为识别算法,采用MFCC(MEL频率倒谱系数)为主要语音特征参数,建立了一个汉语数字语音识别系统,其中包括语音信号的预处理、特征参数的提取、识别模板的训练、识别匹配算法;同时,提出利用Matlab图形用户界面开发环境设计语音识别系统界面,设计简单,使用方便,系统界面友好。经过统计,识别效果明显达到了预期目标。 关键词:语音识别算法;HMM模型;Matlab;GUI ABSTRACT Speech Recognition is designed to allow machines to understand what people say,and accurately identify the contents of voice to execute the intent of people.Speech recognition technology is not only an important internationally competed technology,but also an indispensable foundational technology for the national economic development.Based on the mathematical model from the speech signal,this paper analyze audio signal from the time domain,frequency domain proceeding,and discussed the basic theory of speech recognition technology.Five algorithm are discussed:Dynamic Time Warping(DTW)、Rule-based Artificial Intelligence,Artificial Neural Network(ANN),Hidden Markov Model(HMM),HMM combined with ANN.The focus is put in the theoretical studies of Hidden Markov(HMM) model algorithm,and the classical HMM algorithm is improved. Speech recognition algorithm is realized in various programs,this article taking the method is to use Matlab powerful mathematical operation ability to realize the recognition of speech signal isolation. Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. In this paper, hidden Markov model (HMM) recognition algorithm using MFCC (MEL

语音识别的matlab实现

语音识别的MATLAB实现 声控小车结题报告 小组成员:关世勇吴庆林 一、项目要求: 声控小车是科大华为科技制作竞赛命题组的项目,其要求是编写一个语言识别程序并适当改装一个小型机动车,使之在一个预先不知道具体形状的跑道上完全由声控来完成行驶比赛。跑道上可以有坡面,坑,障碍等多种不利条件,小车既要具有较快的速度,也要同时具有较强的灵活性,能够克服上述条件。 二、项目分析: 由于小车只要求完成跑道上的声控行驶,所以我们可以使用简单的单音命令来操作,如“前”、“后”、“左”、“右”等。 由于路面有各种不利条件,而且规则要求小车尽可能不越过边线,这就决定了我们的小车不能以较高的速度进行长时间的快速行驶。所以我们必须控制小车的速度和行进距离。 由于外界存在噪声干扰,所以我们必须对噪声进行处理以减小其影响。 鉴于上诉各种要求,我们决定对购买的遥控小车进行简单改造,使用PC机已有的硬件条件编写软件来完成语音的输入,采集,处理和识别,以实现对小车的控制。 三、解决思路与模块: 整个程序大致可划分为三个模块,其结构框图如下图所示: 整个程序我们在Visual C++ 环境下编写。 四、各模块的实现: 1 声音的采集: 将声音信号送入计算机,我们利用了声卡录音的低层操作技术,即对winmm.lib进行API调用。具体编程时这一部分被写在一个类中(Soundin类)。 在构造函数中设定包括最大采样率(11025),数据缓存(作为程序一次性读入的数据,2048),声卡本身所带的一些影响采样数据等的各种参数; 调用API函数waveInGetNumDevs(返回UNIT,参数为空)检察并打开声音输入设备,即声卡;并进而使用waveInGetDevCaps得到声卡的容量(在waveInCaps中存有该数据,对其进行地址引用,从DWORD dwFormats得到最大采样率、声道数和采样位); 创建一个叫WaveInThreadEvent的事件对象,并赋予一个Handle,叫m_WaveInEvent,开始利用线程指针m_WaveInThread调用自定义的线程WaveInThreadProc; 对结构WAVEFORMATEX中WaveInOpen开始提供录音设备。注意设备句柄的得到是通过对HWAVEIN 型数据m_WaveIn的引用。 由于通过这种方式进行录音的文件格式是.wav,所以要先设置录音长度,以及对头文件进行一些设置:包括buffer的地址为InputBuffer的初始地址,大小为录音长度的两倍,类型。使用waveInPrepareHeader 为录音设备准备buffer。然后使用waveInAddBuffer函数为录音设备送出一个输入buffer。最后使用waveInStart(m_WaveIn)打开设备。 程序中WaveInThreadProc需要提出另外说明,因为通过这个线程我们可以实现采样和数据提取。该线程首先定义一个指向CsoundIn类的指针pParam,并将其宏定义为PT_S。而线程参数即为空指针pParam。使用WaitForSingleObject将录音过程设置为一旦开始就不中止(除非中止线程)。在此线程中做如下两个工作:将数据送入buffer,并将数据传入某个参数(其调用一个函数,将buffer中的数据送入该函数的参

相关主题
文本预览
相关文档 最新文档