[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.难点

  1. 调用语音识别的api其实算不上太大的难点,SDK和参考文档都很完善,而且中英文混合可以消除一些歧义,比如把vim 的 "i" (启动编辑的input的缩写)换成“输入”, 就不会和字母'i', 混合

  2. 需要设计比较多的语音命令或者说模式(string->action,借用模式识别的词), 才能让项目足够好用,输入足够快,而这些匹配的模式其实有一定的学习成本,所以设计选取的命令和命令的数量都需要比较好的把控。

  3. 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...

  1. 把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你通常只有很短的时间 (电梯演说),能否自然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。

全新的产品:

各位领导/投资人/合作伙伴: 我们的 <语音助手> 是为了解决手机端写代码的痛苦, 他们需要更好更快更方便 <Need>的输入方式, 但软键盘输入实在太慢太麻烦了,我们通过语音辅助输入 <Approach>, 它能加快写码速度,释放双手<Benefit>, 这是前所未有的<Competitor>。 同时,我们通过大量的推广 <Delivery> ,能很快地让大部分用户知道我们的产品,并进一步传播。

增量改进的功能:

各位领导/合作伙伴: 我们的 <医疗版本改进> 是为了解决 的痛苦, 他们中很多人是可以成为良好的程序员的 <Need>, 但是因为手部残疾没法写代码,通过针对性的语音写代码训练 <Approach>, 能够帮助他们实现成为程序员的梦想 <Benefit>, 让他们的人生更加圆满,包括我们之前和相关医院的合作证明<Data>平均只需要一周甚至更短的时间,一个残疾人士就能够快速书写所需要的代码。我们相信医疗版本的语音coding助手能给我们带来业绩改善,同时这也是一项公益性很强的事业。

  1. 把上面的这段话录制为视频,上传到视频网站,并把链接发到个人/团队博客上。 【todo】

【作业2】 以终为始,假设一切顺利,产品发布了,你怎么宣传这个产品呢?请写一个新闻稿,描述你的新产品在新闻发布会上的情况

标题
  语音写码,释放双手!

副标题
  你将获得极度舒适的写码体验

总结
  语音写码会比键盘输入快1.5倍!(假如),小小手机也可以成为coding利器。

问题
  手机端快速写代码的困境。

解决方案
  通过语音辅助coding , 或者完全使用语音coding

你的引证
  这个项目会很有趣~

如何开始
  (假如说我们实现了这个功能)想要快速定位特定位置,你只需说:"转到第25行末尾"。

客户评述
  今天去丈母娘家的路上,产品经理忽然就改需求了,手上就一台手机,还好有语音输入,很快就完成了,要是键盘打,真是得当着丈母娘的面头秃了。

收尾和号召
  语音coding助手正式上架各大应用商店! 下月将推出语音codingIDE,敬请期待!

附录!

termux

讯飞api

转载于:https://www.cnblogs.com/bingduoduo/p/10558119.html

[北航软工]第二次团队作业相关推荐

  1. 2022软工第二次个人作业

    2022软工第二次个人作业 第一部分 调研,评测 酷狗音乐 使用体验 登录界面 功能体验 播放栏 屏幕小图标功能 音乐版块功能 直播模块 听书模块 探索模块 搜索栏及听歌识曲 Bug 分析 窗口重置问 ...

  2. [BUAA软工第二次]个人作业-软件案例分析

    项目 内容 这个作业属于哪个课程 课程社区的链接 这个作业的要求在哪里 作业要求的链接 我在这个课程的目标是 掌握软件工程开发线的基本流程 这个作业在哪个具体方面帮助我实现目标 了解软件团队成员职责. ...

  3. 软工网络15团队作业8——Beta阶段敏捷冲刺

    Deadline:软工网络15团队作业8--Beta阶段敏捷冲刺 1. 新成员 新加入我们的是网络1512 的班长,杨泽斌和童欢.主要负责我们的产品测试与用户体验 于是我们的团队成员有 廖余俊(cap ...

  4. 福大软工1816 · 第一次团队作业

    如果记忆是一个罐头的话,我希望这一罐罐头不会过期――――<重庆森林> 404 Note Found Team 如果记忆是一个备忘录的话,别说了,它不会过期――――<404 Note ...

  5. 2018软工实践_团队作业_1

    如果记忆是一个罐头的话,我希望这一罐罐头不会过期----<重庆森林> 404 Note Found Team 如果记忆是一个备忘录的话,别说了,它不会过期----<404 Note ...

  6. 软工网络15团队作业1——团队组队展示

    团队展示 1.队名 Cool3469 2.队员学号(标记组长) 赵铭 --201521123093 吴慧婷--201521123094 [组长] 刘舒婷--201521123096 陈敏 --2015 ...

  7. [福大软工] Z班 团队作业——随堂小测(同学录) 作业成绩

    团队作业--随堂小测(同学录) 作业链接 http://www.cnblogs.com/easteast/p/7763645.html 作业情况 本次作业从原先预计的3小时,有些组打了鸡血连续肝了4. ...

  8. 软工网络15团队作业7——Alpha冲刺之事后诸葛亮

    一.总结的提纲内容 a. 项目管理之事后诸葛亮会议 (一)设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 让大学生通过记账养成良好的消费习惯,解决 ...

  9. 计算式二级python_python实现自动生成小学四则运算题目(软工第二次项目作业)...

    前言 软件工程 作业要求 作业目标 结对编程:代码实现.性能分析.异常处理说明.记录PSP表格 代码见: github 个人信息:朱育清 3118005437 信安二班 我的partner 个人信息: ...

最新文章

  1. mysql connect 500_MySQL连接问题【mysql_connect和mysql_pconnect区别】
  2. 《敏捷迭代开发:管理者指南》—第2章2.14节推荐读物
  3. JavaScript 新增两个原始数据类型
  4. 错误Read timed out.
  5. Gmail有充分理由启用SSL加密会话
  6. 2019手机号码正则表达式
  7. python读取文件名有中文_[请教]python的中文文件名处理
  8. 随想录(学校作业和工程代码)
  9. 2013/7/16 HNU_训练赛4
  10. 读书笔记 -《硅谷之火》《硅谷热》
  11. Quartus安装破解失败试了一些方法汇总
  12. 台式机计算机里所有文档都打不开,电脑里的所有word文档都打不开,如何处理掉?...
  13. A Retinex based GAN Pipeline to Utilize Paired and Unpaired Datasets for Enhancing Low Light Images
  14. spoj2142 Arranging Flowers
  15. 傲天AC EAG误配置导致Portal推送失败案例
  16. 用python放烟花咯
  17. 在OTFS学习中的一些总结
  18. lookupedit可编辑可选择
  19. 软件测试之性能测试流程
  20. 搜索引擎JSONP接口

热门文章

  1. 【深度学习】120G+训练好的word2vec模型(中文词向量)
  2. 国民技术 MCU JLink仿真调试环境配置
  3. 程序员兼职网站(自由职业)
  4. HTML背景样式简单介绍
  5. java 图形处理_课内资源 - 基于Java实现的几何图形处理系统
  6. C# webbrowser文本框的键盘和鼠标模拟输入和模拟鼠标点击
  7. linux系统弹出鼠标,Ubuntu14.04及以上操作系统鼠标闪烁问题
  8. Excel也能制作电子印章,你见过吗?学会了职场不求人
  9. [paper]Intriguing properties of neural networks(L-BFGS)
  10. Python+Excel 华尔街的一股清流