[北航软工]技术规格说明书

技术规格说明书v1.0

基本功能需求

  • 概述:该部分将说明基本的功能需求和设计方案

识别

  • 基本概述:该部分需要识别用户输入的语音信息,调用对应的语音识别API获得结果,根据内置的语法词典,判断是否是合法输入,对合法输入执行后续操作,对不合法输入进行报错提示。
  • 基本流程
    • 用户输入语音
    • 手机获得语音,将其转换为接口格式
    • 语音识别接口,将其转换为API格式,并将API反馈结果转换为内部处理格式
  • 可选功能
    • 加入语音和词典的模糊识别,可大幅提升用户体验
    • 加入用户自定义词典的方式
  • 具体子模块
    • 语音识别接口:输入语音信息,调用语音识别API,得到识别结果和分词结果。该层需要将具体的识别API封装在内部,接口的语音输入,识别和分词结果格式都是独立的,需要在接口内部做一层转换,即从入口接口到实际语音识别API的转换。
    • 词典模块:词典中需要定义语音信号到实际输入内容的映射。此处需要包括两种词典,一种是编辑词典,包含文本输入内容,编程语言(python)词库。一种是命令词典,包含基本的文本编辑命令和shell命令。词典还需要完成查询模块,根据标准分词结果转换到对应的动作序列。
    • 语音转换模块:将手机端得到的语音信息转换为语音识别接口的标准输入形式。即word2action。
    • 分词模块:由于我们的系统需要的分词结果会有很多自定义和个性化的结果,我们将会依据一定的规则将API初次返回的分词结果进行再整理,这部分将作为一个工具模块(helper)的形式在语音识别接口内部使用,使用不同的分词策略对于接口不会产生影响。
  • 设计方案重点
    • 解耦合:在该部分中,手机传回语音的类型和语音识别API的类型是可能在实现中变化的,所以我们又做了一层中间层,将两部分封装起来,我们的系统内部只使用我们定义的语音识别接口,而将上述两部分分离开。
    • 数据的处理能力:我们的词典模块将会做成数据模板的形式,而具体的数据信息都是使用Android的数据持久化技术(sharedPerference)进行存储。
    • 错误处理:该阶段的错误信息将分为两大类,语音识别错误和词典映射错误,我们也会封装具体的异常类,保证足够的模块化和可扩展性。

传输

  • 基本概述:需要将解析好的动作序列传递给文本编辑器或shell
  • 基本流程
    • 获取动作序列
    • 根据动作序列信息确定是文本输入还是命令,需要传输到文本编辑器还是shell
    • 完成信息传输
  • 设计方案
    • 我们将借鉴termux的app和shell之间的信息传输模式,使用专用字节编码的方式传输信息,具体的编码方式是相对独立的,但具体编码信息将会存储在词典的对应数据项中,即词典是一个核心的后像化模块,概括定义了输入内容到输出动作的映射,但具体输入内容的解析,输出动作的实现,都与词典本身无关。

编辑

  • 基本概述:自制简易文本编辑器,两种模式,命令模式和编辑模式
  • 基本流程
    • 接收输入信息
    • 完成相应动作
    • 结果显示在UI上
  • 基本子模块
    • 命令模块:支持打开,复制,粘贴,删除,查找,替换,撤销,保存等操作
    • 输入模块:单个字符输入,关键字输入, 补全式输入

shell

  • 基本概述:基于termux的shell界面,支持简单输入和快捷操作
  • 基本流程
    • 接收输入信息
    • 完成相应动作
    • 结果显示在UI上
  • 可选功能
    • 用户自定义添加快捷操作
  • 基本子模块
    • 输入模块:单个字符输入,关键字输入
    • 快捷操作模块:无需在shell中进行输入,直接通过语音转换为对应的shell动作

UI

  • UI主要包括五部分:文本编辑器,shell,脚本list,信息反馈界面,全局快捷键
  • 全局快捷键和信息反馈界面是常驻元素,文本编辑器,shell,脚本list之间可互相切换
  • 信息反馈界面包括:语音识别反馈,动作映射反馈,动作执行反馈
  • 全局快捷键包括:文本编辑器,shel,脚本list的切换键

具体模块级别API

To be continued(这部分将会在各部分的调研设计工作完成之后继续更新)

原文地址:https://www.cnblogs.com/bingduoduo/p/10640450.html

时间: 2024-10-06 23:32:12

[北航软工]技术规格说明书的相关文章

[BUAA软工]个人总结

软工总结 一.课程初阅读提问博客 link Q1.1: 敏捷开发对于产品的可靠行要求不高? 这里的可靠性应当是相对而言,对于安防国防领域的软件,由于自身特性,在软件设计时首先考虑可靠性.相对来说,敏捷开发对于产品的可靠性要求要低一点点,容忍度好一点. Q1.2: 这本书适合作为教材吗? 我个人还是觉得,这本书和教材的定位并不同,让我选,是不会用这本书作为教材的.如果从开始筹划一本教材,那么它一定是完全针对于某一门具体的课,融合进多年的教学经验,凸显学习过程中的重点难点的,旨在为同学们构建一个完善

调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛等各类全国性大学生信息化相关的竞赛平台的历届作品及其看法

1,豌豆荚一览 作品内容:主要是一款聚合阅读类作品,他收录了500+应用的内容,可以在一个应用里面,看完自己感兴趣的应用的最近更新的内容,更通俗的讲就是用一个应用代替其他阅读类的应用,你可以在豌豆荚一览中看到其他应用最新更新内容,比如可以看知乎日报,开眼,一个等等之类的..... 作品源于的平台:豌豆荚设计奖里的作品,链接:http://sspai.com/30278 作品的优势:我们手机里面有很多的应用,每天都要在这些应用花费很多时间,其中有一些可能下载下来都不会打开几次,但是删掉又可惜的,于

软工初体验

软件工程是设计思想,主要是运用现代科学技术知识来开发工程的相关文件资料.从软工开始就开始进入C/S的学习,这也就代表这我们的计算机学习进入正规化的阶段,软工视频看完很长时间了,一直没有总结起来,颗粒归仓是一件很重要的事,在接下来的学习中,一定注意总结! 软件工程的概论    软件有自己的生存周期,从开始使用到最后有新的软件代替这段时间是他的生存周期,而软件开发的生存周期:分析,设计,实现,调试,支持.与生存周期相对应的还有他在开发的过程中要注意的六个步骤:制定计划,需求分析,软件设计,编写程序,

软工第零次作业[补交]

目录 第一部分:结缘计算机    2 i.    你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)    2 ii.    计算机是你喜欢的领域吗?是你擅长的领域吗?    3 iii.    你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?    3 第二部分:在计算机系里学习    4 i.    你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能

让我爱恨交织的软工文档

尽管我们做完机房收费系统了,可是这个过程我们都是凭借着自己的感觉去设计项目的,没有做到有法可依.有章可循.而软件project是软件设计的灵魂,是我们前进的思想性指导. 如今我们看完了软工视频,视频中对各个阶段所用的文档进行了具体的解说,可是看完视频,对文档的理解还非常懵懂.写文档的时候,看着模板,好多地方不知道填什么.就一直没有往下写,后来爱玲师傅给她的徒弟验收文档叫我也过去了,听完之后感觉收获挺大的,回来就要好好写文档了,如今我的文档了也验了,尽管有非常多不足,可是我也最终这一步上迈了出去,

往届软工实践作品评述

描述 作品的内容:作品源于的平台或链接:你觉得的作品的优势和不足:你觉得入选你心目中最佳前三的理由:经过调研后,你的感受和对自己团队项目的期待. 作品一 作品的内容: Phylab-Web 官方描述: 支持通过选择物理实验序号进入相应物理实验预习报告页面. 个人理解: 一个制作物理实验预习报告的页面. 作品源连接: https://github.com/buaase/Phylab-Web/blob/master/docs/User-Interface.md 优势: 贴近大学生的实际需要,并且制作

软工课后余想

从大三上学期上过软件工程课之后就再也没有接触过全栈式的项目或者工程了,很多的关于前端后端技术的理解还停留在两年前,当时就是粗口咀嚼,消化不算精良,现在更怕是已经跟时代落伍了,所以也不敢讨论太多(T^T).好在这边只是讨论一下心得,这种东西见仁见智也算是略微减轻了我的压力. 最近一年多的时间里面北航加大了医工结合的力度,我个人也有幸融入其中,我们从医院拿数据然后听医生讲需求最后利用我们的算法实现能让医生满意的效果,甚至是可以推而广之的临床决策系统.其实这个过程跟公司拿项目然后做开发的流程很像:需求

软工网络15个人阅读作业1

软工网络15个人阅读作业1 Task1:注册个人博客账号 博客园地址:齐畅 http://www.cnblogs.com/qichang/ Task2:注册码云账号 目的:管理你的项目,记录(源码.文档,历次版本变更,bug发现与修复)等信息. 码云地址:https://gitee.com/hudkahfk/ Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 答:听专家意见报的志愿,他

[2019BUAA软工助教]答黄杉同学

[2019BUAA软工助教]答黄杉同学 一.答黄杉同学 011-黄衫博客 我当然不否认软件工程的各种博客是有一定作用的,但是相信大多数人对诸如例会博客并没有什么热情(不过似乎也没有什么其他方法保证团队内都在为了进度努力).而更加鼓励技术博客对课程并没有什么害处,技术博客正是在开发中完全可能产出的部分,发布出来对其他人也会有很大帮助.这一点相信课程组也比较认同,只是没有明确说明出来而已.而且我希望鼓励的方式包括且限于:给个人加分,并给出明确的说明. 这是一个很好的建议,另一位黄衫得主也提到这个问题