毕业论文语音点名系统设计与实现仅供参考.doc

上传人:wj 文档编号:353786 上传时间:2023-04-29 格式:DOC 页数:25 大小:373KB
下载 相关 举报
毕业论文语音点名系统设计与实现仅供参考.doc_第1页
第1页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第2页
第2页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第3页
第3页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第4页
第4页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第5页
第5页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第6页
第6页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第7页
第7页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第8页
第8页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第9页
第9页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第10页
第10页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第11页
第11页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第12页
第12页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第13页
第13页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第14页
第14页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第15页
第15页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第16页
第16页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第17页
第17页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第18页
第18页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第19页
第19页 / 共25页
毕业论文语音点名系统设计与实现仅供参考.doc_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业论文语音点名系统设计与实现仅供参考.doc

《毕业论文语音点名系统设计与实现仅供参考.doc》由会员分享,可在线阅读,更多相关《毕业论文语音点名系统设计与实现仅供参考.doc(25页珍藏版)》请在冰点文库上搜索。

毕业论文语音点名系统设计与实现仅供参考.doc

本科毕业论文

题目语音点名系统设计与实现(仅供参考)

23

目录

标题 1

中文摘要 1

1引言 1

1.1语音技术发展简介 1

1.2微软语音包简介 1

1.3研究背景和意义 2

1.4研究内容 2

2系统分析 2

2.1摆脱传统人工考勤方式的必要性 2

2.2新系统功能要求 2

2.2.1整体要求 3

2.2.2具体功能需求 3

2.2.3运行环境需求 4

3系统总体设计 4

3.1系统设计原则 4

3.2系统设计原理 4

3.3系统模块设计 4

4数据库设计 5

4.1系统数据流图 5

4.2数据字典 6

4.3系统E-R图 7

4.4数据库表的结构 7

4.5数据库中表的关系 9

5系统详细设计 10

5.1系统流程图 10

5.2管理模块设计 10

5.2.1新用户注册子模块 10

5.2.2设置系统时间子模块 12

5.2.3数据库管理子模块 13

5.3考勤模块 14

5.3.1日常考勤子模块 14

5.3.2期末统计子模块 18

6总结与展望 19

6.1总结 19

6.2展望 19

参考文献 20

致谢 22

外文页 23

语音点名系统设计与实现

摘要考勤工作是每个学校必须进行的一项重要工作。

教学考勤簿中详细记录了学生的出勤情况,是评定学生平时上课表现的一个重要标准。

语音点名系统是对学校的考勤工作做了深入和细致的调查研究后设计的考勤系统。

此系统严格按照软件工程的思想进行设计与开发,以windowsxp作为设计平台,以SQLServer数据库为系统后台数据库,采用visualbasic6.0为开发工具,调用微软的语音包SpeechSDK5.1和中文语言包SpeechLangPackSDK进行中文语音合成,实现了语音点名、日常考勤管理、期末出勤统计、系统管理等功能。

语音点名系统是学校急需的系统,它摆脱了人工点名的传统方式,减轻了教师的负担,对学校的办公自动化起到了推动和促进作用。

关键词语音合成点名系统SpeechSDK5.1

1引言

1.1语音技术发展简介

语音是人类间相互通信的最自然和最方便的形式。

语音技术主要包括语音识别技术和语音合成技术。

语音识别是使计算机能听懂说话人的话语,语音合成是指将文本转换成语音。

二十世纪20年代到30年代,美国Bell实验室对英语语音分析技术做了大量研究,这应该看作是语音技术方面最早的研究。

70年代语音技术取得了实质性的进展并首次进入商品市场,此时的研究主要致力于对英语词汇的识别和合成。

如今,语音技术的研究已经深入到一定程度。

语音识别方面要求把语音识别和自然语言理解结合起来;语音合成方面则要求能更接近真人发声系统,朗读出的声音更完美。

在有关中文语音技术方面,IBM的ViaVoice首先实现了中文语音识别技术,而中文语音合成技术则是由我国首先实现的。

我国相对欧美来讲,语音技术的研究起步较晚。

语音技术产品较少,技术性能较差,功能简单,涉及领域少。

我国的语音技术产品分为两大类:

语音识别产品和语音合成产品。

相对语音识别产品,语音合成产品数量较多,技术较成熟。

目前我国语音合成技术的产品主要有:

数字语音留言机,电脑报站机,电脑语音报警器,语音合成卡。

语音合成这一技术在人机对话、电话咨询、自动播音、助讲助读、语音教学等方面有着广阔的应用前景。

语音合成技术对语音库的依赖很大。

许多发达国家都建立了本国语言的语音库。

由清华大学等单位研制的"汉语语音语料库"于1月19日通过鉴定,填补了中国自主开发中文语音库的空白。

1.2微软语音包简介

作者主要利用微软提供的语音合成技术进行二次开发,所以下面介绍一下微软提供的语音开发包SAPI.51SDK。

大力推广语音技术是未来的趋势,也是现阶段软件用户界面发展的最高目标。

微软公司在推动语音技术的发展方面也做出了一定的贡献,并且公布了语音开发平台SpeechSDK帮助开发人员实现语音应用。

SAPI是SpeechApplicationProgramInterface的缩写,即语音应用程序接口。

SDK是SoftwareDevelopmentKit的缩写,即软件开发工具箱(或称为软件开发包)。

SAPISDK是一款由微软公司免费提供的语音应用开发工具包,其中包含了语音应用设计接口(SAPI)、微软的连续语音识别引擎(MCSR)以及微软的语音合成(TTS)引擎等等。

目前的SAPISDK的最高版本为SAPISDK6.0。

本系统所使用的是SAPISDK5.1,此版本一共可以支持3种语言的识别(英语,汉语和日语)以及2种语言的合成(英语和汉语),不过合成汉语仍需另外安装SpeechLangPackSDK。

SpeechSDK5.1语音包包含了主要的语音合成技术,将文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要特殊处理的符号进行分析,以及将音素生成数字音频然后用扬声器播放出来。

语音引擎则通过DDI层(设备驱动接口)和SAPI(SpeechAPI)进行交互,应用程序通过API层和SAPI通信。

通过使用这些API,作者可以开发语音点名系统。

1.3研究背景和意义

考勤工作是每个学校必须进行的一项重要工作。

任课教师在开始讲授课堂内容之前,要先检查记录学生的出勤情况。

传统的方式是由任课教师进行点名,即人工点名。

每个学期结束时,要对每个学生的出勤情况进行整理、统计。

统计结果将作为评定学生平时成绩的一项标准。

人工点名时,任课教师把学生姓名一一念出来,然后对学生的出勤情况进行记录。

由于任课教师经常用嗓,所以大多数教师都患有不同程度的咽喉炎症,点名无疑是加重了对他们咽喉的伤害。

因为每个任课教师每学期的授课班级较多,所以每个学期末,对出勤情况的记录是一项工作量很大而又繁琐的工作。

语音点名系统由此而生。

利用语音合成技术让计算机通过扬声器播放学生姓名,既可以达到很好的效果,又可以减轻教师的用嗓负担。

用数据库保存学生每次的出勤情况,并在学期末进行统计,可以大大减轻教师的负担。

1.4研究内容

该课题的开发目标就是利用微软具有强大语音开发功能的语音包,实现适合学校使用的语音点名系统,以摆脱人工点名实现自动化。

具体研究内容包括以下几方面:

(1)对考勤工作和课堂教学考勤簿进行调查研究、分析总结,研究系统所需要的功能。

(2)学习开发此系统所需要的理论知识和技术,主要包括:

VB语言,微软的语音开发包SpeechSDK5.1,SQLServer数据库。

(3)系统的总体规划和设计。

包括系统的原理设计和功能模块设计。

(4)系统的具体设计与实现。

编写代码实现各个模块的功能,包括后台数据库、前台界面设计和各功能的具体实现。

2系统分析

2.1摆脱传统人工考勤方式的必要性

传统的考勤工作采用人工方式,存在的问题有:

(1)对教师的声带伤害加重。

教师工作有三大特点:

说话时间长、站立时间长、伏案时间长。

声带是老师“容易受伤”的部位之一。

老师长时间讲课使声带疲劳过度、边缘充血而导致声带息肉,声带小结。

表现为喉咙痛、说话声音沙哑。

根据《岭南心血管病杂志》刊登的数据,一份对广东省862名中小学教师的调查结果,21.9%的人患有高血压;最常见的职业病是慢性咽喉炎,在所有的五官科门诊中,该病患者有81%是教师。

考勤时进行点名无疑是加重了教师的用嗓负担,对其声带的伤害加重。

(2)考勤统计工作繁琐,加重了教师的工作负担。

据调查,本校03级计算机系本科班在2004年的人数为108人。

此班级04~05学年第一学期的微机原理课程共有18周72节课。

每个学生每节课的出勤情况又可分为正常、请假、迟到、早退、旷课五项。

那么微机原理的任课教师本学期末的共要统计38880项记录(课时数乘于学生人数乘于记录种类)。

由于每个任课教师每学期所授课程不唯一,所以任课教师的考勤统计工作量非常大。

高校教师不仅要进行授课,还要进行学术研究,指导学生进行研究等。

工作任务繁重,心理压力大。

在繁重而辛劳的教学中,亚健康正在迅速蔓延,高校教师重度亚健康发生率高达34.16%,相比起一般人的重度亚健康发生率10%,教师的亚健康状况显然令人担心。

传统的考勤方式应该尽快改变,以减轻教师的负担。

所以设计一个高效实用的学校自动化考勤系统成了当务之急。

2.2新系统功能要求

2.2.1整体要求

语音点名系统是一个小型学校考勤系统,主要作用是使教师考勤工作自动化。

此系统主要应该实现下面两大功能:

(1)上课时进行语音点名和记录出勤。

(2)学期末统计每个学生本学期本课程的出勤情况。

根据对考勤工作的分析,得出了语音点名系统的高层程序流程图。

见图2-1:

图2-1语音点名系统的高层程序流程图

2.2.2具体功能需求

该系统面向的用户为学校,具体使用者为任课教师或考勤负责人。

主要任务是进行语音点名、记录出勤情况、期末统计出勤三方面。

具体分析如下:

(1)语音点名。

利用微软SpeechSDK5.1工具包的语音合成技术把学生姓名播放出来,并对播放进行必要的控制。

播放控制包括以下方面:

①对停顿时间的控制。

当播放完一个学生名字后,需要停顿一段时间再播放下一个名字,以便于教师记录此学生的出勤情况。

由于课堂环境不同、老师的记录速度不同、使用习惯不同等,这都需要系统对停顿时间加以控制。

停顿时间不宜过长,能保证老师在停顿时间段内完成记录即可。

经过调查,最大停顿时间值为6秒最适合。

②对重复播放次数的控制。

重复播放指对一个名字重复播放若干次再播放下一个名字。

点名过程中,一个名字只播放一次可能会使学生来不及做出正确反应,所以应使教师可以选择重复播放,但是播放次数不宜过多,达到效果即可。

经过访问老师,把重复最大数值限定为3次,同一个名字在重复播放时不进行停顿。

而在某种特定环境下学生的注意力高度集中时,可能每个名字只播放一遍就可以达到效果。

③随机点名和跳读功能。

随机点名主要用于对学生的出勤情况进行随机抽查。

跳读是按照一定的间隔进行点名。

当用户选择随机点名或跳读时,系统须提前计算将被点到的学生个数和覆盖范围。

(2)记录出勤情况。

实现对出勤情况的记录功能,并把每个学生每节课出勤情况存入后台数据库。

①记录功能。

经过调查学生出勤情况的记录表,确定学生的出勤情况为以下五种:

迟到、早退、旷课、请假、正常上课,所以在点名系统中设计此五种情况的选择按钮。

因为出勤情况多样,用鼠标选择相对不便,所以应该设计对应的快捷键。

经过实际调查得知,记录考勤时一般只是对“迟到”、“早退”、“旷课”、“请假”进行记录,正常情况会空起来不写,所以用户对“迟到”、“早退”、“旷课”、“请假”的记录较为频繁。

大多数人的右手使用频繁而且灵活,所以将确定“迟到”、“早退”、“旷课”、“请假”的快捷键设置在小键盘区。

而当用户没有对某一学生的出勤情况进行记录时,系统会默认其出勤情况为正常。

②修改功能。

某个学生的出勤情况记录可能会发生变化,例如迟到变为旷课、迟到变为迟到并且早退、迟到变为请假、旷课变为请假,所以出勤情况应该能够被修改。

(3)学期末出勤统计。

按照班级、课程分类统计每个学生的五种出勤情况(正常、请假、迟到、早退、旷课)。

2.2.3运行环境需求

(1)要求使用微软系统并且系统版本要高于Windows98。

因为该系统使用的语言是VB,而且安装的语音包由微软提供,所以开发出来的软件只适合微软系统。

而Windows98本身不支持汉语语音引擎,无法使用该系统播放中文,所以要求系统版本高于Windows98。

(2)要求在使用前安装微软提供的两个语音包:

MicrosoftSpeechSDK5.1和MicrosoftSpeechSDK51LangPack使系统具有发音功能,但不支持中文。

MicrosoftSpeechSDK51LangPack使系统支持中文发音。

(3)要求安装SQLServer数据库。

因为学生的出勤情况保存在SQLServer数据库中,所以需要安装SQLServer数据库。

(4)要求安装扬声器。

语音点名系统中合成的语音需要通过扬声器播放出来,并且要求所使用的扬声器发出的。

3系统总体设计

3.1系统设计原则

系统总体设计主要采用软件工程的基本思想、用户前端访问界面等方面的重要思想内容。

系统的设计过程中始终贯穿软件工程思想,遵从以下设计原则进行设计:

(1)实用性原则

此系统将实用性作为衡量其质量的首要标准和最重要的标准。

开发应用软件,实用性是第一原则[1]。

此系统设计时充分考虑了用户的使用习惯和思维习惯,在日常考勤管理模块中为记录功能设置了很多快捷键。

设计这些快捷键时充分考虑到用户左右手的使用情况,使其使用更加方便。

针对考勤人员的点名习惯设置了随机点名和跳读点名并自动计算点名范围,还设置了重复次数和停顿时间。

在用户注册模块中自动根据系别列出专业,课程时间信息由系统自动添加,节省了教师的时间。

(2)模块化设计原则

系统采用模块化的设计原则,使系统功能伸缩性良好,可以根据具体情况进行扩展。

3.2系统设计原理

通过分析SAPISDK结构得知,可以用VB实现用户接口程序,即语音点名系统。

在系统中调用SpeechSDK5.1语音开发包所提供的VB接口,从而完成文语转换。

系统原理图如下图所示:

图3-1系统原理图

3.3系统模块设计

该系统共分为管理模块和考勤模块两大模块。

管理模块由管理员执行,完成新用户注册、设置学期时间信息、数据库管理。

考勤模块供用户使用,可以分为日常考勤管理和期末统计两个子模块。

对各模块进行分析,得出系统模块结构图。

如图3-2所示:

图3-2系统模块图

4数据库设计

语音点名系统采用SQLServer数据库作为后台数据库,数据库中存放了考勤工作所必须的学生信息、课程信息和教师信息、系别信息、班级信息。

4.1系统数据流图

通过对考勤工作的具体事项进行分析,分别得出语音点名系统两个模块的数据流图。

考勤模块数据流图和管理模块数据流图分别如图4-1和4-2所示:

图4-1考勤模块数据流图

图4-2管理模块数据流图

4.2数据字典

鉴于篇幅原因,此论文在此只列出部分数据流条目。

(1)数据流条目

①数据流名称:

登录信息

简述:

说明用户名和口令及其要进行的操作类别

来源:

用户

去向:

加工1“判断并提取信息”

组成:

用户名+口令+[日常考勤|期末统计]

②数据流名称:

考勤范围

简述:

说明用户要对哪个系别哪个班级哪一学年哪一学期的哪门课程的出勤情况进行检查

来源:

加工1“判断并提取信息”

去向:

加工2“点名及记录修改”

组成:

学年信息+学期信息+系别+专业+班级+课程名

③数据流名称:

统计范围

简述:

说明用户要对哪个系别哪个班级哪一学年哪一学期的哪门课程的出勤情况进行统计

来源:

加工1“判断并提取信息”

去向:

加工4“期末统计”

组成:

学年信息+学期信息+系别+专业+班级+课程名

④数据流名称:

学生名单

简述:

用户所检查的班级的所有学生的有关信息

来源:

“学生出勤信息库”

去向:

加工2“点名及记录修改”

组成:

系别+专业+班级+学号+姓名+学生照片

⑤数据流名称:

学生出勤信息

来源:

加工2“点名及记录修改”

去向:

“学生出勤信息库”

组成:

学号+姓名+出勤信息+课程名+系别+专业+班级+节次+周次+学期信息+学年信息

⑥数据流名称:

语音

别名:

中文语音

简述:

点名时播放的学生名字的中文发音

来源:

加工2“点名及记录”

去向:

学生

组成:

{中文发音}

⑦数据流名称:

操作类别

简述:

描述管理员进行何种操作

来源:

加工4“判断并提取信息”

去向:

[加工5“判断后进行注册”|加工6“设置学期时间”|加工7“数据库管理”]

组成:

[设置学期时间|新用户注册|数据库管理]

(2)数据存储条目

①数据存储名称:

学生出勤信息库

简述:

存放学生的出勤信息及相关的课程、教师、时间、系别、班级信息

组成:

学生出勤表+教师表+课程表+学生表+班级表

②数据存储名称:

期末统计表:

别名:

简述:

某学年某学期末对某班级某课程学生出勤信息的统计

组成:

学年+学期+班级+课程名称+姓名+学生出勤信息的分类统计

4.3系统E-R图

语音点名系统的E-R图参见图4-3。

4.4数据库表的结构

语音点名系统的数据库中共有6张表,分别为学生出勤信息表、学生表、课程表、用户表、教师表、班级表。

(1)学生出勤信息表(tblattendance)

学生出勤信息表是数据库中最重要的一个表,用来存放所有学生的所有出勤信息。

字段有编号、学号、用户编号、出勤信息和有关时间信息。

因为学校按照学年、学期、周次、节次进行排课,所以有关的时间信息中包含了这4项。

学生出勤信息表中编号是主键,attendance字段的值有5种,分别为:

迟到、早退、请假、旷课、正常。

学生出勤信息表的结构如表4-1所示:

表4-1学生出勤信息表

字段名称

字段类型

长度

描述

主键

attend_id

char

10

编号

student_id

char

12

学号

user_id

char

3

课程号

Attend_attendance

char

4

出勤信息

Attend_week

char

2

周次

Attend_jieci

char

2

节次

(2)学生表(tblStudent)

学生表用于存放考勤工作中所需的学生信息。

结构如下:

表4-2学生表

字段名称

字段类型

长度

描述

主键

student_id

char

12

学号

student_name

char

10

姓名

Class_department

char

20

系别

Class_major

char

20

专业

Class_grade

char

2

年级

Class_class

char

4

学历

(3)课程表(tblSubject)

课程表用于存放考勤工作所需的课程信息。

结构如下:

表4-3课程表

字段名称

字段类型

长度

描述

主键

subject_id

char

3

课程号

subject_name

char

20

课程名

Subject_count

char

2

学时

Subject_term

char

1

学期

Subject_year1

char

4

上半学年

Subject_year2

char

4

下半学年

(4)教师表(tblTeacher)

教师表用于存放考勤工作所需的教师信息。

结构如下:

表4-4教师表

字段名称

字段类型

长度

描述

主键

teacher_id

char

5

教师号

teacher_name

char

10

教师姓名

department

char

20

教师所在系别

(5)用户表(tblUser)

教师使用前需要进行注册,用户表中存放了教师的注册信息。

结构如下:

表4-5用户表

字段名称

字段类型

长度

描述

主键

User_id

int

4

用户编号

User_name

Char

10

用户名

User_password

Char

10

口令

Teacher_id

Char

5

教师号

Class_id

Char

4

班级号

Subject_id

char

4

课程号

(6)班级表(tblClass)

表4-6班级表

字段名称

字段类型

长度

描述

主键

Class_id

Char

4

班级号

Class_department

char

20

系别

Class_grade

Char

2

年级

Class_major

Char

20

专业

Class_class

char

1

学历

图4-3语音点名系统的E-R图

4.5数据库中表的关系

各表之间的关系如下图所示:

图4-4各数据表之间的关系图

5系统详细设计

5.1系统流程图

语音点名系统的系统流程图如图5-1所示。

图5-1语音点名系统流程图

5.2管理模块设计

管理模块有三个子模块,分别是新用户注册子模块、设置系统时间子模块、数据库管理子模块。

5.2.1新用户注册子模块

使用系统前需要先进行注册,主要作用有:

①对用户的权限进行管理。

因为学生的出勤信息直接影响到学生的期末成绩,而语音点名系统安装在教室的计算机中,为了避免学生擅自修改出勤记录,要设置用户号码和登录口令。

②方便用户的使用。

当用户成功注册后,系统会记录用户的基本信息。

在系统中,一个用户名对应多个用户编号,每一个编号对应此用户所教授的不同班级的不同课程,所以一个用户可以用一个用户名对所教授的不同班级的不同课程进行考勤管理。

实现原理:

系统根据用户填写的班级信息得出班级编号,根据填写的课程信息得出课程编号。

然后分配用户编号,记录此用户的班级编号和课程编号。

主要代码如下:

strCN="Provider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=sa;password=4569464;InitialCatalog=attendence"

Setcn=NewADODB.Connection'建立连接实例

Setrs=NewADODB.Recordset'建立记录集实例

rs.CursorLocation=adUseClient

cn.openstrCN'连接到数据源

……

userDepartment=teacherDepartmentCMBox.Text'记录教师的系别

'通过输入的班级信息获得班级号

rs.open"selectclass_idfromtblclasswhereclass_department='"&classDepartmentCMBox.Text&"'andclass_major='"&classMajorCMBox.Text&"'andclass_grade='"&classGradeCMBox.Text&"'andclass_class='"&classClassCMBox.Text&"'",cn,adOpenKeyset,adLockOptimistic

……

classId=rs.Fields(0)'记录班级号

'通过输入的课程信息获得课程号

strSql="selectsubject_idfromtblsubjectwheresubject_name='"&subjectNameCMBox.Text&"'andsubject_term='"&subjectTerm&"'andsubject_year1='"&subjectYear1CMBox.Text&"'andsubject_year2='"&subjectYear2CMBox.Text&"'"

rs.openstrSql,cn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2