[北航软工]第二次团队作业
[BUAA软工]第二次团队作业
Part 1 项目说明
1. 简介
项目名称:语音coding助手(暂定)
说明: 实现一个android app, 通过语音输入来写python代码,和android 上的 shell 交互。
2.应用场景
手机端写代码是一件非常麻烦的事情,即便有外置键盘,也不便于携带。
1️⃣ 当你走在路上,忽然想到一个很好的idea,希望能够很快把他实现出来,但用手机输入太慢而且不方便,用语音输入就很酷,不是吗?
2️⃣ 在自己家里写代码,可以写的很快,而且很舒服,读出include, 自动输入include
3️⃣ 对于手部有残疾但梦想成为程序员的人,语音coding助手就是最好的医疗手段。
为什么单纯使用语音来写代码呢?因为通用的语音识别是存在比较大的二义性问题的。比如,你什么意思?意思意思?意思意思什么意思?没有意思。
3. 技术说明
语音输入
:使用科大讯飞api,团队使用过科大讯飞的sdk,中英文可以混合翻译,就语音翻译而言,科大讯飞确实是业界标杆之一。
shell
: 项目目的在于语音输入指令或者代码到shell或者vim中,我们选取得是android上开源的强大终端termux,【链接】, 这个shell 包含vim, apt-get, 可以安装python, 甚至是gcc, g++, 安装完openssh,还可以连接远程服务器,可以认为时以一个运行在android上的小linux系统,我们的开发将基于这个项目。
流程:调用语音识别api ➡️ 得到输入的String ➡️ String 转换成对应的动作 ➡️ 执行 action
4.项目划分
4-1前端
界面设计优化, 一到两人
4-2 后端
后端逻辑开发, 两到三人
part 1:语音->指定语言 自然语言转为String
part 2 :指定语言-> 执行操作 String ->Action
4-3 测试
测试功能, 一到两人
4-4 PM
需求安排,开发分工,进度核对,push和鼓励组员,技术支持
4.难点
调用语音识别的api其实算不上太大的难点,SDK和参考文档都很完善,而且中英文混合可以消除一些歧义,比如把vim 的 "i" (启动编辑的input的缩写)换成“输入”, 就不会和字母'i', 混合
需要设计比较多的语音命令或者说模式(string->action,借用模式识别的词), 才能让项目足够好用,输入足够快,而这些匹配的模式其实有一定的学习成本,所以设计选取的命令和命令的数量都需要比较好的把控。
action如何实现,
比如action为往vim编辑光标处输如字符串"hello world"
比如action为换行,跳跃指定的行
比如action为run这个脚本,并且推送到github远程仓库
尤其第三点其实需要对应android研究比较深,需要将termux默认的键盘输入,转变到使用语音输入后做出希望完成的动作,而最核心的是如何不用键盘在制定的光标处输入字符,这需要我们研究一下termux的源码实现,然后对其进行更改。
5.案例
语音写code的idea并非没有人想到过,http://blog.jobbole.com/45781/ , 这就是个例子,只不过这个人在window上进行实践,他手部肌肉麻木无法顺利敲键盘,是实现了一个系统,支持大约2000多种语音指令,http://v.youku.com/v_show/id_XNTk2MTAyMjQ0.html 视频10分钟多演示功能, 也可参见知乎提问如何优雅地用语音输入写程序?
还有一个反面案例,锤子出品的TNT工作站,他们想做的东西太多了,想要通用的语音输入,并且在比较嘈杂的环境中,效果很差,才会有“安静点!吵到我用TNT”的玩笑了。
6. 用户数目 用户评价估计
校内体验的话,用户数目估计能够达到100+, 毕竟还是很酷的一个项目,演示效果好
如果推广再商业话或者公益化,用户有望持续增长破万。
用户评价估计,termux本身就是口碑极佳的项目(github 3.5k star), 至少我们团队对于做好用户体验非常有信心。
7.预期目标
实现一个语音编写python代码的demo, 选取python作为目标语言是因为受众广,而且格式简单,没有很多分号,或者很麻烦的语法。做成app,能在手机端简单演示。
alpha: 5条核心指令确立,语音正确输入,执行正确的操作
beta: 20条-30条基本指令确立,界面优化,功能扩充,用户体验优化
gamma: 100条指令, 支持用户自定义行为,功能封装, 完善优化,充分测试。
Part 2 NABCD
2-1 N (need)
需求:解决语音书写代码的需求
刚性需求: 对于键盘输入不方便的编程人员,属于刚性需求,中国的大概有8300万人,其中肢体类的占30%-40%,2017年,854.7万残疾儿童及持证残疾人得到基本康复服务,其中肢体残疾人484.6万。
辅助性需求: 对于手打代码累了的人员,可以辅助输入,减少负担。
这个需求在脑机接口普及后很可能会消失。
2-2 A (Approach 做法)
基本的招数:调用过科大讯飞的api,语言:java, c++
独特的招数: 没啥独特的,就是酷。
技术可行性:技术上需要比较了解android底层交互,需要一定研究。
法律法规可行性:遵循中华人民共和国宪法。
2.3 B (Benefit 好处)
- 那你这个产品/服务会给客户/用户带来什么具体好处呢?
让用户轻松码代码,解放双手,更可以在android端快速实现idea原型,快速修改代码。
- 如果用户已经有一个解决方案 (例如用户已经在用 QQ 聊天), 那你的产品具体有哪些好处, 能让用户离开现有产品, 使用你的产品来聊天呢?
目前并没有调研到有同类的应用。可以类比的是正常的使用键盘输入笔记本电脑或者台式机,或者使用蓝牙键盘输入手机端。但并没有真正解放双手,对于残疾人士而言,增加了一条成为程序员的出路。
- 另外这还有一个 Benefit/Cost (成本) 的问题。
这个项目是有“学习成本”的,需要学习一些语音“指令”,对于计算机从业人员而言,其实学习成本不大,需要我们在设计这些“指令”的时候比较用心。而对于残疾人士,这些学习成本也是比较的,就像盲人学习盲文一样。
2-4 C (Competitors 竞争)
竞争对手也没有闲着, 这个市场有多大, 目前有多少竞争者在瓜分, 你了解么? 竞争者是单独的,还是存在一个行业链,各个阶段的竞争者都一样么? 你如果不是最先进入某个市场的产品, 你还能赢么? 我们的新想法可能要和已有的产品竞争,说服用户放弃一个已经使用了一段时间的产品,来用我们的产品,是有不少困难。 我们还要想到, 还有一个隐藏着的竞争对手是 “不消费” -- 很多用户根本就不用这个领域的任何产品, 你怎么能让他们完成从 0 到 1 的转变? 如果你成为他们的第一个产品,那你就是 First Mover, 有很多优势。
市场大小:市场其实不大,可以作为键盘输入的补充,在大多数情形不算必须品,但是有价值的。
行业链:项目完善后,可以集成到不同硬件上,电脑端也可以添加语音写代码的功能。
目前我们要实现的是一个demo,真正做到产品阶段,可以先做成一个插件,一个后台服务,没必要以此作为核心卖点。或者可以实现一个android端的coding IDE,像VS Code 那样的产品,去用语音输入支持更多类型的语言。
2-4 D (Delivery 交付, Data 数据)
怎样把你的创新产品交到用户的手中?
例1, 你想到了一个好主意, 建一个比 hao123 更好的导航页面! 我们姑且认为NABC 都没问题, 那如何把这么好, 这么简单的产品交到 (Deliver) 用户手中呢? 用户怎么能知道你的产品?你如何利用互联网(或者其他途径)把这一福音传遍你的目标用户? 这一方面在早期的软件开发者的角度来看,应该是 “市场部门” 该做的事。 但是,现在网络已经成为绝大多数软件产品一一部分,对社交网络的应用不会发生在产品开发完毕之后,而是在早期就会成为产品规划和功能的一部分。
例2, 你想到了一个手机的应用, NABC 都不错, 那如何把产品交到千万个用户手中呢? 你怎么去找到你的目标用户?光考在中国几十个App 市场去投放么,这是远远不够的!
D: Data 你有什么数据来证明新的功能带来的好处? 团队做了用户调查么? 有什么量化的指标, 例如 NPS(净推荐值)?
交付可以通过上线应用商店,进行推广,当然我们可以现在同学圈子中流行起来,但说实话,一个demo想要真正传播开来其实挺难的,最好的方式应该是先通过学校,或者其他方式,和一些医院建立联系,定制医疗版本,提高软件质量,然后,有可能的话可以卖给一些手机厂商,集成到他们的系统中去。或者还可以通过“知乎”进行推荐,在所有相关问题下进行回答,推荐我们的工具,在或者可以通过抖音进行推广,让我们的应用转换成为一个网红app.
2-5 用户
班上同学肯定是有超过10个愿意配合的同学,他们是:
乔x,庹XX, 胡XX, 汤XX, 樊XX,齐XX, 刘X铭,王科X, 万XX,赵XX...
- 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
全新的产品:
各位领导/投资人/合作伙伴: 我们的 <语音助手> 是为了解决手机端写代码的痛苦, 他们需要更好更快更方便 <Need>的输入方式, 但软键盘输入实在太慢太麻烦了,我们通过语音辅助输入 <Approach>, 它能加快写码速度,释放双手<Benefit>, 这是前所未有的<Competitor>。 同时,我们通过大量的推广 <Delivery> ,能很快地让大部分用户知道我们的产品,并进一步传播。
增量改进的功能:
各位领导/合作伙伴: 我们的 <医疗版本改进> 是为了解决 的痛苦, 他们中很多人是可以成为良好的程序员的 <Need>, 但是因为手部残疾没法写代码,通过针对性的语音写代码训练 <Approach>, 能够帮助他们实现成为程序员的梦想 <Benefit>, 让他们的人生更加圆满,包括我们之前和相关医院的合作证明<Data>平均只需要一周甚至更短的时间,一个残疾人士就能够快速书写所需要的代码。我们相信医疗版本的语音coding助手能给我们带来业绩改善,同时这也是一项公益性很强的事业。
- 把上面的这段话录制为视频,上传到视频网站,并把链接发到个人/团队博客上。 【todo】
【作业2】 以终为始,假设一切顺利,产品发布了,你怎么宣传这个产品呢?请写一个新闻稿,描述你的新产品在新闻发布会上的情况
标题
语音写码,释放双手!
副标题
你将获得极度舒适的写码体验
总结
语音写码会比键盘输入快1.5倍!(假如),小小手机也可以成为coding利器。
问题
手机端快速写代码的困境。
解决方案
通过语音辅助coding , 或者完全使用语音coding
你的引证
这个项目会很有趣~
如何开始
(假如说我们实现了这个功能)想要快速定位特定位置,你只需说:"转到第25行末尾"。
客户评述
今天去丈母娘家的路上,产品经理忽然就改需求了,手上就一台手机,还好有语音输入,很快就完成了,要是键盘打,真是得当着丈母娘的面头秃了。
收尾和号召
语音coding助手正式上架各大应用商店! 下月将推出语音codingIDE,敬请期待!
附录!
termux
讯飞api
转载于:https://www.cnblogs.com/bingduoduo/p/10558119.html
[北航软工]第二次团队作业相关推荐
- 2022软工第二次个人作业
2022软工第二次个人作业 第一部分 调研,评测 酷狗音乐 使用体验 登录界面 功能体验 播放栏 屏幕小图标功能 音乐版块功能 直播模块 听书模块 探索模块 搜索栏及听歌识曲 Bug 分析 窗口重置问 ...
- [BUAA软工第二次]个人作业-软件案例分析
项目 内容 这个作业属于哪个课程 课程社区的链接 这个作业的要求在哪里 作业要求的链接 我在这个课程的目标是 掌握软件工程开发线的基本流程 这个作业在哪个具体方面帮助我实现目标 了解软件团队成员职责. ...
- 软工网络15团队作业8——Beta阶段敏捷冲刺
Deadline:软工网络15团队作业8--Beta阶段敏捷冲刺 1. 新成员 新加入我们的是网络1512 的班长,杨泽斌和童欢.主要负责我们的产品测试与用户体验 于是我们的团队成员有 廖余俊(cap ...
- 福大软工1816 · 第一次团队作业
如果记忆是一个罐头的话,我希望这一罐罐头不会过期――――<重庆森林> 404 Note Found Team 如果记忆是一个备忘录的话,别说了,它不会过期――――<404 Note ...
- 2018软工实践_团队作业_1
如果记忆是一个罐头的话,我希望这一罐罐头不会过期----<重庆森林> 404 Note Found Team 如果记忆是一个备忘录的话,别说了,它不会过期----<404 Note ...
- 软工网络15团队作业1——团队组队展示
团队展示 1.队名 Cool3469 2.队员学号(标记组长) 赵铭 --201521123093 吴慧婷--201521123094 [组长] 刘舒婷--201521123096 陈敏 --2015 ...
- [福大软工] Z班 团队作业——随堂小测(同学录) 作业成绩
团队作业--随堂小测(同学录) 作业链接 http://www.cnblogs.com/easteast/p/7763645.html 作业情况 本次作业从原先预计的3小时,有些组打了鸡血连续肝了4. ...
- 软工网络15团队作业7——Alpha冲刺之事后诸葛亮
一.总结的提纲内容 a. 项目管理之事后诸葛亮会议 (一)设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 让大学生通过记账养成良好的消费习惯,解决 ...
- 计算式二级python_python实现自动生成小学四则运算题目(软工第二次项目作业)...
前言 软件工程 作业要求 作业目标 结对编程:代码实现.性能分析.异常处理说明.记录PSP表格 代码见: github 个人信息:朱育清 3118005437 信安二班 我的partner 个人信息: ...
最新文章
- mysql connect 500_MySQL连接问题【mysql_connect和mysql_pconnect区别】
- 《敏捷迭代开发:管理者指南》—第2章2.14节推荐读物
- JavaScript 新增两个原始数据类型
- 错误Read timed out.
- Gmail有充分理由启用SSL加密会话
- 2019手机号码正则表达式
- python读取文件名有中文_[请教]python的中文文件名处理
- 随想录(学校作业和工程代码)
- 2013/7/16 HNU_训练赛4
- 读书笔记 -《硅谷之火》《硅谷热》
- Quartus安装破解失败试了一些方法汇总
- 台式机计算机里所有文档都打不开,电脑里的所有word文档都打不开,如何处理掉?...
- A Retinex based GAN Pipeline to Utilize Paired and Unpaired Datasets for Enhancing Low Light Images
- spoj2142 Arranging Flowers
- 傲天AC EAG误配置导致Portal推送失败案例
- 用python放烟花咯
- 在OTFS学习中的一些总结
- lookupedit可编辑可选择
- 软件测试之性能测试流程
- 搜索引擎JSONP接口
热门文章
- 【深度学习】120G+训练好的word2vec模型(中文词向量)
- 国民技术 MCU JLink仿真调试环境配置
- 程序员兼职网站(自由职业)
- HTML背景样式简单介绍
- java 图形处理_课内资源 - 基于Java实现的几何图形处理系统
- C# webbrowser文本框的键盘和鼠标模拟输入和模拟鼠标点击
- linux系统弹出鼠标,Ubuntu14.04及以上操作系统鼠标闪烁问题
- Excel也能制作电子印章,你见过吗?学会了职场不求人
- [paper]Intriguing properties of neural networks(L-BFGS)
- Python+Excel 华尔街的一股清流