版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 2 21.3本文研究的主要内容 3 4 42关键技术分析 42.1Android平台简介 52.1.1Android的基本框架 52.1.2Android应用程序结构 62.2Android开发环境 63系统的需求分析与概要设计 7 8 8 8 9 4.1登录模块设计 124.1.1登录界面 4.1.2注册界面 4.1.3忘记密码界面 184.2.1录音预选界面 4.2.2录音界面 214.3后期处理模块 4.3.1设置界面 264.3.2播放界面 284.3.3介绍界面 6总结 伴随着科技的进步,手机在最近十几年迎来了飞跃性的发展,地位也从传统的通信工具转变为现在无论是生活还是工作都离不开的万能工具。如今若是没有手机,人们在社会上将寸步难行。随着开发者对手机的研究越来越深入,现在的手机已经可以利用强大的扩展能力代替许多设备,录音设备就是其中之一。而在平台起到了至关重要的作用。依托其系统合理的人机平台踊跃出了大量的精品应用并解决了的手机操作系统当属谷歌公司开发的Android系统和苹果公司开发的IOS系统,较强或者是在远场情况下,语音识别的错误率还不容乐观6语音采集设备最早的雏形是留声机,由爱迪生于1877年创造出来。尽管能用在生活中的是1935年德国科学家老耶玛发明的磁带,不过这时的磁带还不是得最大的资料容量5,因此DAT在专业领域备受追捧6并迅速占领市场。司研发出了专门适用于数字录音技术的CD规格的磁光盘7。利用计算机系统进到了21世纪初,借助于计算机技术的快速发展,数字录音也迎来了前所未有的革命。以电脑为中心的音频处理系统极大的减少应用的研究还有很大的潜力等待挖掘,如今的Android应用市场依旧缺乏更为专业的语音采集APP。通过对市面上现有的语音采集类APP进行深入地研究分析,本文主要在改造市面上现存的此类APP做出进一步的深入研究,并添加更多功能。研究工作主要围绕以下几方面展开:首先,在进行语音采集操作之前,要进行登录操作,新用户需要点击注册用户选项进入注册界面,忘记密码的用户也可进行重新注册的操作。其次,在登录完成后,进入录音选项界面,该界面包含音频格式选择,音频采样率选择和音频位宽选择。然后,用户便可以进行下一个界面一一录音界面。进行录音操作后,软件可以通过JavaAPI来实现录音操作后音频文件的保存。最后,用户在保存界面中可以回放之前的录音,对不满意的录音结果可以进行删除操作。文章结构如下:第一章:绪论。本章节详细地介绍了该课题的研究背景,着重介绍了语音采集技术的发展历程、研究现状以及发展方向,然后指出了本文的研究方向,并列明文章的整体组织结构。Android的应用程序结构以及Android的开发环境探讨应用建设的可能性第三章:系统的需求分析与概要设计。本章介绍了系统在现实生活中的使用以及各个模块的设计流程。第四章:系统详细设计与实现。本章详细讲解了每个界面的使用流程、界面设计以及实现界面内所有功能的代码。第五章:应用测试。本章介绍了这款应用通过AVD在不同机型和不同版本的API下的测试结果,测试分为界面显示测试和功能测试。第六章:总结。本章总结开发此应用的过程和最后的收获。2关键技术分析本课题的语音采集技术采用了Android开源系统技术,利用Java语言和AndroidStudio开发工具进行编写开发,可以让用户体验到具有保密性和专业性的语音采集过程。在该语音采集应用程序的开发过程中,涉及到了Android、Java、AndroidSDK等相关理论及技术,本章将对上述知识进行简要的阐述。世界上第一款商用Android设备于2008年9月推出。Android是一个基于修改版Android作为一个开源的移动设备操作系统,它的软件系统结构如下图所示,由ApplicationFramework(应用框架)、BinderIPCProxies(Binder进程间通信机制代理)、AndroidSystemServices(Android系统服务)、HAL(硬件抽象层)和LinuxKernel(Linux内核)组成。GhdHL(1)ApplicationFramework,又称应用框架。应用框架是最常被开发者使多这一类的API都能够直接映射到底层HAL接口,并可以提供与实Android系统服务进行交互。Binder能够满足Android需要建立一套新的IPC机制来满足系统对通信方式、传输性能和安全文件叫做“录音文件2”并以此类推。若不想保留某个录音文件,该文件最右侧有删除按钮,点击即可删除。在设置界面点击关于我们按钮,显示此应用的相关信息,例如开发时间,开发版本等。在设置界面最下方设计了能够退出当前已经登录的账号的按钮,点击该按钮便可以返回到登录界面使用其他的账号密码重新登录,完成退出账号的操作。具体流程如图所示。图3-4后期处理模块流程图4系统详细设计与实现TextView有着更加丰富的功能,例如给背景和icon动态着色的功能,自动适配字体尺寸的效果等。选项中的提示字符如登陆界面一样,采用AppCompatEditText中的hint操作来实现。确定按钮使用AppCompatButton控件实现。进入注册界面后,首先需要填写相关选项,使用findViewByIdO获取输入内容。输入完毕后点击确定按钮,利用setOnClickListener()在“确定”按钮设置一个监听器来监听是否点击该按钮,首先将各个信息保存在提前定义的对应的String变量下。如果信息输入不全,应用底部会使用ToastUtils.show“请填写完整信息”。如果用户名已经被注册过,应用底部会提示"该用户已存在"。如果信息完整并且用户名未被注册,首先创建一个新的UserInfo类型的变量。UserInfo是已经定义好的一个类,专门用来保存用户信息。将之前定义的String变量保存到Userlnfo类型变量,然后在应用底部提示“注册成功”。部分代码下文所示。publicclassRegestActivityextendsprivateAppCompatButtonacbtn_clicprivateUserInfoDaouserInfoDao;protectedvoidonCreate(}acbtn_click=findViewById(R.idacbtn_click.setOnClickListener(newViewif(TextUtils.isEmpty(name)|TextUtils.isEmpty(pwd)||TextUtils.」}…publicvoidonCheckedChanged(Rvoice12=AudioFormat.ENCODING_PC}}在录音界面,用户能够进行开始录音、暂停录音和保存录音操作。界面顶部是“开始录音”的标题。紧贴页面顶部的下方设有状态栏和检测录音声音大小的模块,初始状态为“空闲中”,声音大小默认值,当开始录音时,状态栏显示“录音中”,声音大小模块将录音声音的分贝数显示出来。暂停时,状态栏改为“暂停中”,声音大小模块显示暂停前录音的分贝数,再次点击开始,两个模块都将恢复为开始录音时的显示状态。录音界面中间部位有两个按钮,分别是“开始录音”和“保存录音”。点击“开始录音”按钮即可进行录音操作,并且此按钮的字样将变为“暂停”。在进行录音操作时,点击“保存录音”按钮便可将录音文件保存在本地。开始录音开始保存录音进入录音界面后,首先创建Button变量、TextView变量、TextView变量和AudioView变量。然后使用findViewById(来引用布局文件中的控件。接下来调用两个函数:initAudioView()和initRecord()函数。initAudioView(函数使用测到点击“开始录音”按钮,首先改变录音状态显示,然后将“保存录音”按钮改为“暂停”按钮,这些操作都由setText()实现。若检测到点击“保存录音”按里只进行简单介绍。首先initRecord(函数将会调用录音预选界面中附加到Intent对象上的值,根据Intent上保存值匹配相应的音频格式、音频采样率和音频位宽作,第一点是能够根据录音状态改变界面上的状态值,例如当检测到录音状态时,界面上的状态值由“空闲中”或者“暂停中”变为“录音中”。第二点是实时检测声音大小分贝值并显示在界面。第三点是保存声音文件,这里使用的Android官方包提供的File类。第四点,当保存成功后,使用Toast在应用底部提示“保publicclassStartLuYinActivityextendsBaseActprivateBackBeanDaobackButtonbtRecord;AudioViewaudioView;RecordManagerrecordManager=RecordManager.getInstance();protectedvoidonCreate(super.onCreate(savesetContentView(R.layout.actiivtbtRecord=findViewById(R.id.btRecbtStop=findViewById(R.id.btSttvState=findViewById(R.id.tvtvSoundSize=findViewById(R.id.tvSounaudioView=findViewById(R.ibackBeanDao=TheApplication.instance.getDaoSession().getBackBe}protectedvoidonResume(){}privatevoidinitAudioView({tvState.setVisibility(View.V}btStop.setOnClickListener(newView.OnClickListener(){}findViewById(R.id.btSave).setOnClickListener(newVi{丁}}recordManager.setRecordStateListener(newRecordStateListener(){publicvoidonStateChange(Reco」}publicvoidonError(Stringerro}recordManager.setRecordSoundSizeListener(newRecordSoundSizeListener(){publicvoidonSoundSize(intsoundSize){}recordManager.setRecordResultListener(newRecordResultListener(){publicvoidonResult(Fileresult){}recordManager.setRecordFftDataListener(newRecordFftDataLpublicvoidonFftData(byte[]data){}}privatebooleanisStart=false;privatebooleanisPause=false;}}}丁4.3后期处理模块后期处理模块共设计了三个界面,分别是设置界面、播放界面和介绍界面。下面将分别介绍两三个界面的详细设计。在设置界面,用户可以查看录音记录和应用介绍,还可以退出当前登录的账号。整个界面由三个按钮组成,从上往下第一个按钮是“录音记录”,点击进入录音记录界面。第二个按钮是“关于我们”,点击进入介绍界面。第三个按钮是“退出当前账号”,点击即可退出当前登录的账号并返回登陆界面。前两个按钮在应用顶部,第三个按钮在应用底部。设置界面布局采用的LinearLayout,在布局中添加了TitleWidget和Button。TitleWidget负责应用顶部的标题“设置”,Button负责界面里的三个按钮。界面布局如图所示。关于我们setOnClickListener()对三个按钮进行监听,一旦检测到点击按钮的操作,便用startActivityO打开对应的界面。部分代码如下文所示。publicclassChanPinDetailActivityextendsBaseActivity{privateAppCompatButtonacbtn_click;protectedvoidonCreate(super.onCreate(savesetContentView(R.layout.actiivtfindViewById(R.id.btn_login_out).setOnClickListener(newView.OnClickListener(){findViewById(R.id.btn_shuoming).setOnClickListener(newView.OnClickfindViewById(R.id.btn_add).setOnClickListener(newView.OnClickListener(){}}4.3.2播放界面在播放界面,用户可以播放录音或者删除不满意的录音。录音文件按照录音顺序从上往下排列并统一按照“录音文件”加上录音顺序编号的格式进行命名。播放界面共有两个布局,一个是主界面布局,一个是录音文件布局。主界面布局。主界面布局采用的是LinearLayout,在布局中添加了TitleWidget和RecyclerView。标题的“录音记录”使用TitleWidget实现。界面的上下滑动使用组件RecyclerView实现。录音文件布局采用RelativeLayout,在布局中添加了来实现删除按钮的显示。界面布局如图所示。录音记录录音文件1录音文件2进入播放界面,首先使用setContentViewO加载主界面,在使用findViewByI对应到布局中的特定模块后,开始加载录音文件布局。使用setText()按照前文描触发点击操作,使用delete(删除指定文件。播放功能选择Android官方包提供的MediaPlayer类实现。部分代码如下文所示。privateBackBeanDaobackBeanDao;privateList<BackBean>list=newArrayLprivateCommonAdapter<BackBean>adapter;backBeanDao=TheApplication.instance.getDaoSession().getBackBerv=findViewByld(R.idrv.setLayoutManager(newLinearLayoutManager(this);backBeanDao.delete(backB}adapter.setOnltemClickListener(newMultiltemTypeAdapter.OnltemClickListener(){publicvoidonltemClick(Viewview,RecyclerView.ViewHolderholder,intposition){initPlayerData(list.get(positioinitPlayerData(list.get(positio}丁publicbooleanonltemLongClick(Viewview,RecyclerView.Vie{}}privateMediaPlayermediaPlayer=neprotectedvoidonDestroy({}privateIjkMediaPlayermMediaPlayer;privatevoidinitPlayerData(StringpublicvoidonCompletion(IMediaPlayermp){publicvoidonSeekComplete(IMediaPlayermp){}publicvoidonPrepared(IMediaPlayermp){丁丁丁丁}privatevoidreleaseP}介绍界面介绍了开发者的个人信息和版本信息,布局采用了LinearLayout,添加了TitleWidget和AppCompatTextView控件。界面布局如图所示。制作人:杨晓乐版本:1.0联系电话入介绍界面,用户无需操作。具体代码如图所示。publicclassChanPinListActivityextendprivateCommonAdapter<BackBean>adapter;privateList<BackBean>list=newArrayList<>();privateRecyclerViewrecsetContentView(R.layout.a}}publicvoidgetDataO){}5应用测试本应用主要采用黑盒测试,将着重测试软件的功能和使用体验上,力图在测试过程中发现以下问题:(1)应用功能出现错误或遗漏某一功能。(2)界面显示出现错误。(4)保存录音出现错误。(5)播放录音出现错误。测试的第一个方面是界面显示是否达到预期目标。为了能够让本应用适配机型广,测试使用AndroidStudio自带的AVD进行。AVD将采用两种不同分辨率的机型搭配不同的SDK构建。由于谷歌不再通过官网公布Android版本分布饼图,而是直接在AndroidStudio用图表的形式实时呈现,因此在查看图表发现94.1%的用户选择了Android5.0以上的版本后,本次测试将对该程序在API21至API29的所有环境进行测试。测试的虚拟机型选择PixelXL和Pixel2,其中PixelXL的分辨率为1400×2500,Pixel2的分辨率为1080×1920。AndroidPlatform/APIVersionDistributiANDROIDPLATFORMAPILEVELCUMULATIVELollipop98.1%94.1%94.1%MMMBNManifestDeclaratioultiplenetworkconnectiAndroidVirtuaDeviceManagOo▶▶C▶CCC型的所有API上进行功能测试。测试中发下了以下问题:本的API上并未出现此问题。起初是采用Pixel2进行测试,出现问题后立即更换了PixelXL进行测试。测试结果是两款机型在A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零碳工厂环境友好型产品推广方案
- 企业数据备份与恢复方案
- 企业生产现场5S管理数字化方案
- 企业人才盘点九宫格工具
- 钢结构建筑节能设计方案
- 企业库存动态补货模型搭建
- 硬科技中心及生产制造基地项目可行性研究报告模板-备案审批
- 2025-2030中国园林木行业市场现状分析及竞争格局与投资发展研究报告
- 2026动力电池回收利用产业发展现状及前景分析
- 2026动力总成系统电动化技术路线选择与整车匹配方案研究报告
- 职业中学校美发与形象设计专业人才培养方案
- 交管12123驾照学法减分题库500题(含答案)
- 广东佛山市顺德区2024-2025学年八年级物理下册期末试卷(解析版)
- 2026年入团团员知识考试题库100题及答案
- 牛场安全防疫培训课件
- 网络信息茧房的形成机制与破局路径研究毕业答辩
- 消渴目病中医辨证施护体系与临床护理方案
- 化工厂人员定位施工方案
- 2025小学五年级英语阅读理解专项训练50篇
- (16)普通高中体育与健康课程标准日常修订版(2017年版2025年修订)
- 国企财务预算编制实操案例
评论
0/150
提交评论