您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 山东潍坊学院V_Guider小组详细设计说明书
山东潍坊学院三维智能虚拟导游员详细说明书编写:2009年08月18日校对:2009年09月1日审核:2009年08月8日批准:2009年09月15日开发单位:山东潍坊学院,V_Guider小组文档名称:开发进度报告项目名称:三维智能虚拟导游员项目负责人:许国志1目录第1部分引言.....................................41.1编写目的.....................................41.2项目背景.....................................41.3参考资料.....................................4第2部分设计约束.................................6第3部分关键算法.................................73.1最短路径算法..................................73.1.1问题的提出................................73.1.2问题的分析................................73.1.3算法研究...................................73.1.4算法实现..................................8第4部分系统详细设计..............................94.1语音模块的设计.................错误!未定义书签。4.1.1功能.......................错误!未定义书签。4.2三维人物显示模块设计……………………………………………………..94.2.1程序描述..................................94.2.2功能......................................94.3键盘输入模块设计...............错误!未定义书签。24.3.1程序描述..................................94.3.2功能.......................................94.4音乐模块设计..................................104.4.1程序描述.................................104.4.2功能.....................................104.5用户界面模块的设计............................104.5.1程序描述.................................104.5.2功能.....................................103第一部分引言1.1编写目的本文档描述了根据《“三维智能虚拟导游员”概要设计文档》体现的各模块功能、性能需求和对输入输出的要求,设计出流程逻辑及详细算法,帮助开发人员了解本系统的架构思想及核心功能的实现方法,为下一步的单元、系统测试工作奠定基础并提供资料。预期读者:大赛评委,开发人员。1.2项目背景任务提出者:齐鲁大学生软件设计及外语大赛开发者:山东潍坊学院V_Guider开发小组面向用户:十一届全运会外来游客特此声明:此软件的开发仅为提高参赛人员的项目开发能力、学习能力及团队合作意识,不带有任何商业利益。1.3参考资料一、参考书籍1.《VisualC++案例开发》林青松胡方霞等编著。中国水利水电出版社,2005.542.《3D游戏开发大全》KennethC.Finney著,齐兰博等译。清华大学出版社,2005.123.《OpenGl2.0精髓》PaulMartz著,邓郑祥译。人民邮电出版社2006.74.《计算机图形学实验教程(OpenGl版)》李胜睿等编著。机械工业出版社2004.105.《OpenGL图形程序开发实务》薛惠锋吴慧欣等编著。西北工业大学出版社,2005.86.《软件设计师教程》陈平,褚华。北京:清华大学出版社,2006.6;7.《软件工程与软件文档写作》刘长青等著。北京:清华大学出版社、北京交通大学出版社,2005.8。二、其它相关文档:1.需求说明书;2.概要设计说明书3.详细设计说明书;4.用户手册。5第二部分设计约束1.注释规则(1)类的方法加注释,以“//”开头(2)大的程序段或模块要加注释,以“//注释内容….”开始,以“///////////////////////////////////////”结束;(3)个别难理解的语句加注释;(4)个别重要数据成员加注释;6第三部分关键算法3.11问题的提出三维智能虚拟导游员是要完成与用户语音交互的功能,为此本程序采用了微软的speechsdk来进行实现。还有就是三维人物的显示,本程序采用OpenGL来进行实现。3.12关键算法一、产生程序框架NewProject|MFCApplicationWizard(EXE)|Test|OK二、导入Bezier曲线类的文件。用下面方法产生BezierCurve.hBezierCurve.cpp两个文件:WorkSpace|ClassView|TestClasses|右击弹出NewClass|GenericClass(不用MFC类)|CBezierCurve|OK三、编辑好Bezier曲线类的定义与实现。写好下面两个文件:BezierCurve.hBezierCurve.cpp四、设置编译环境:1.在BezierCurve.h和TestView.h内各加上:#include#include#include2.在集成环境中,Project|Settings|Link|Object/librarymodule|opengl32.libglu32.libglaux.lib|OK五、设置OpenGL工作环境:(下面各个操作,均针对TestView.cpp)1.处理PreCreateWindow():设置OpenGL绘图窗口的风格cs.style|=WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CS_OWNDC;2.处理OnCreate():创建OpenGL的绘图设备。OpenGL绘图的机制是:先用OpenGL的绘图上下文RenderingContext(简称为RC)把图画好,再把所绘结果通过SwapBuffer()函数传给Window的绘图上下文DeviceContext(简记为DC).要注意的是,程序运行过程中,可以有多个DC,但只能有一个RC。六、OpengL对3ds文件的处理:CLoad3DS类处理所有的3ds装入代码CLoad3DS()函数初始化数据成员;show3ds();显示3ds文件;Import3DS();装入3ds文件到模型结构中;CleanUp();关闭文件,释放内存空间;Ctexture类实现对图像文件的导入;第四部分系统的详细设计4.1语音模块的设计首先从微软官方网站上下载SpeechSDK51.exe和语音包SpeechSDK51LangPack.exe然后安装。然后设置好链接库目录。然后设置好链接库目录。一:语音tts的实现:类Srengine中通过voidSRengine::Speak(CStringstrSpeak){//MakethecharacterspeakHRESULThRes=NULL;BSTRbszSpeak;bszSpeak=strSpeak.AllocSysString();hRes=CoCreateInstance(CLSID_SpVoice,NULL,CLSCTX_ALL,IID_ISpVoice,(void**)&m_cpTTSVoice);//语言合成if(m_cpTTSVoice!=NULL){m_cpTTSVoice-Speak(bszSpeak,SPF_ASYNC,NULL);}//hRes=CharacterEx-Think(bszSpeak,&m_edit);SysFreeString(bszSpeak);}来实现说话功能二:语音模块sr(语音识别)功能实现通过自定义一个消息映射voidCGNcaidan::OnRecoEvent(WPARAMwParam,LPARAMlParam)当系统检测到有识别出的音频信号时就自动调用此方法在此方法中再根据识别出的语音做出相应的处理。4.1.1功能实现基本的语音输出,和对识别出来的文字作出相应的处理。4.2三维人物显示模块设计4.2.1程序描述本模块的设计就是利用OpenGL中的显示3ds格式的模型来实现。4.2.2功能显示一个三维立体人物。能做一些简单的动作4.3键盘输入模块设计4.3.1程序描述设计一个文本输入框,用户在此输入内容,点击确定后,由系统辨别不同的内容来做出相应的反映,以此来实现一些功能。具体算法如下:voidCGNcaidan::OnButtonSpeak(){UpdateData(true);//m_edit=请输入;if(m_edit==全运会介绍|m_edit==全运会|m_edit==quanyunhui){if(app-quanju[0]==0){Onjieshao();}else{srengine.Speak(请看全运会介绍对话框);}}if(m_edit==赛事|m_edit==赛事咨询|m_edit==saishi){if(app-quanju[1]==0){Onsaishizixun();}else{srengine.Speak(请看赛事咨询对话框);}}if(m_edit==导航|m_edit==daohang){if(app-quanju[3]==0){Onwenlu();}else{srengine.Speak(请看导航对话框);}}if(m_edit==比赛项目|m_edit==比赛|m_edit==bisai){if(app-quanju[4]==0){OnEventsButton();}else{srengine.Speak(请看比赛项目对话框);}}if(m_edit==音乐|m_edit==yinyue){if(app-quanju[6]==0){OnButtonYinyue();}else{srengine.Speak(请听音乐);}}if(m_edit==天气|m_edit==tianqi){if(app-quanju[2]==0){OnTianqiButton();}else{srengine.Speak(请看天气对话框);}}else{m_edit=请输入查询项目;srengine.Speak(m_edit);}UpdateData(false);}4.3.2功能能让用户通过键盘来控制程序,这与语音实现的功能相同。94.4音乐模块设计4.4.1程序描述本模块的设计就是为用户提供听音乐的功能4.4.2功能用户点击音乐按钮或者是说“音乐”后,程序会提供音乐。4.5用户界面设计4.5.1程序描述用户界面采用才窗口设计模式,在CmainFrame类中进行实现。此外本程序皮肤为appace软件插件来实现的。具体实现在CwinApp类中的InitInstance()方法中SkinStart(_T(love.urf),WINDOW_TYPE_VC,,GTP_LOAD_FILE,NULL,NULL);//Changetheregistrykeyunderwhichoursettingsarestored.10
本文标题:山东潍坊学院V_Guider小组详细设计说明书
链接地址:https://www.777doc.com/doc-3891481 .html