写点什么

语音编程,软件开发领域的下一个前沿技术?

  • 2021-04-08
  • 本文字数:2048 字

    阅读完需:约 7 分钟

语音编程,软件开发领域的下一个前沿技术?

从语音到代码:当今有两种领先的语言编程平台,它们提供了不同的方式来向计算机“朗诵”代码。其中一个叫做 Serenade,有点像数字助理:它允许你描述你正在编写代码的指令,而不要求你必须逐字逐句地口述每条指令;另一个叫做 Talon,它提供了对每一行更细粒度的控制,它还要求对编入计算机中的每一项任务都有更细致的了解。本文的一个简单的例子是 Serenade 和 Talon 中生成 Python 代码的分步指南,它将在屏幕上打印“hello”。


通过与小工具的对话,我们与它们的互动日益频繁。如今,像 Alexa 和 Siri 这样的老朋友,加入了像苹果 CarPlay 和 Android Auto 这样的汽车助手的行列,甚至加入了对语音生物识别和指令敏感的应用程序。但是,如果这种技术本身可以用语音构建呢?


那就是语音编程的前提,语音编程是一种软件开发方法,用语音代替键盘和鼠标来编写代码。在语音编程平台上,程序员“说出”命令来操作代码,创建适应并自动执行工作流的定制命令。


语音编程并不像看上去那么简单,它背后有很多复杂的技术。例如,语音编程应用Serenade,它有一个专门为代码开发的语音转文字引擎,与谷歌的语音转文字 API不一样,它是为对话式语音设计的。当软件工程师把代码说出来后,Serenade 的引擎就会将它反馈给自然语言处理层,它的机器学习模型被训练来识别并将常见的编程结构转换为语法上有效的代码。


Serenade在 2020 年的种子轮融资中募集到 210 万美元,当联合创始人 Matt Wiethoff 在 2019 年被诊断出重复使力伤害(RSI,译注:指因长时间重复使用某组肌肉造成的损害,是常见的职业病)时,Serenade 就应运而生了。“我放弃了 Quora 的软件工程师职位,因为我再也不能干这个工作了。”他说。“要么选择一份不用打这么多字的工作,要么想出一些解决办法。”


Ryan Hileman 也走上了同样的道路,在一年前遭受手痛之苦之后,2017 年他辞掉了软件工程师的全职工作。于是,Hileman 开始创建Talon,一种免手敲的编程平台。他说:“Talon 的目的是要完全取代键盘和鼠标。”


Talon 有几个组件:语音识别、眼球追踪和噪音识别。Talon 的语音识别引擎基于 Facebook 的Wav2letter自动语音识别系统,Hileman 将其扩展到了与语音编程命令相适应的范围。同时,Talon 的眼球追踪和噪音识别功能可以模拟使用鼠标导航,根据眼球运动在屏幕上移动光标,并根据嘴巴的爆音来点击。“这种声音很容易发出。这种方法不费吹灰之力,并且只需较低的延迟就可识别,因此这种点击鼠标的非语言方式速度更快,而且不会引起声音疲劳。”Hileman 说。


用 Talon 编程听起来就像是用另一种语言说话,软件工程师兼语音编程员 Emily Shea 在2019 年的一次会议演讲时这样说道。她的演讲视频里满是语音命令,如“slap”(点击回车)、“undo”(删除)、“spring 3”(转到文件的第三行) ,以及“phrase name op equals snake extract word paren mad”(结果是这行代码:name = extract_word(m))。


而在使用 Serenade 进行编程时,遵循的是一种更自然的讲代码的方式。你可以说“delete import”来删除文件顶部的导入指令,或者说“build”来运行自定义的构建命令。你也可以说“Add function factorial”来创建一个函数,在 JavaScript 中计算阶乘,并且应用程序将处理语法 —— 包括“function”关键字、括号和大括号 —— 因此你无需显式地声明每个元素。



语音编程的确需要一个像样的麦克风,尤其是当你想去除背景噪音时,Serenade 的模型是根据笔记本电脑上麦克风产生的音频来训练的。如果你想用眼球追踪运行 Talon,你还需要眼球追踪硬件。不过,在没有这种硬件的情况下,Talon 也能正常运行。开源语音编程平台,如AeneaCaster,是免费的,但都依赖于Dragon语音识别引擎,用户必须自行购买。这就是说,Caster 支持Kaldi和 Windows 语音识别,前者是一个开源的语音识别工具包,后者预装在 Windows 上。


Serenade Labs 联合创始人 Tommy MacWilliam 表示,这些结果足以说明问题。“能够描述你想做的事情是如此简单,”他说。“与打字或按键盘快捷键相比,说‘move these three lines down’或者‘duplicate this method’会更加流畅。”


语音编程还可以让那些有伤病或慢性疼痛的人继续他们的职业生涯。“能够使用语音,只需将我的手臂从等式中移除,就可以开辟一种限制较小的方式来使用电脑。”Shea 说。


通过语音进行编程也可以降低软件开发的准入门槛。“如果他们能够用逻辑和结构化的方式思考他们想要写的代码,”MacWilliam 说,“那么我们就能让机器学习走完最后一公里,并将这些想法转化成语法上有效的代码。”


语音编程还处于起步阶段,它能否被广泛采用还取决于软件工程师对传统键盘和鼠标编写代码模式的束缚程度。但是语言编程给了我们各种各样的可能性,也许在将来,脑机接口会直接将你所想的内容转换成代码,或者说是软件本身。

作者介绍:

Rina Diane Caballar,记者,曾做过软件工程师,居住新西兰惠灵顿。


原文链接:


https://spectrum.ieee.org/computing/software/programming-by-voice-may-be-the-next-frontier-in-software-development

2021-04-08 14:332547
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 583.9 次阅读, 收获喜欢 1981 次。

关注

评论

发布
暂无评论
发现更多内容

【CVPR2022】用于域适应语义分割的域无关先验

华为云开发者联盟

人工智能 华为云 图像域

斗栱云杜文宝:如何用一款SaaS改变建筑行业?

ToB行业头条

快速玩转CI/CD图形化编排

Jianmu

DevOps 前端 CI/CD 自动化运维 图形化编排

大数据培训之Flink CEP 的简介

@零度

大数据 flink CEP

Spring那点事

飞天

6月月更

去中心化交易所套利机器人开发技术

薇電13242772558

区块链 去中心化

7天免费入门数据智能,“2022数据智能夏令营”开启报名!

个推

人工智能 大数据 数据智能

特别干的干货!!《Mycat》搭建分布式数据库中间件看他就够

迷彩

mycat 分布式数据库中间件 6月月更

Fabric.js 控制元素层级 👑

德育处主任

前端 canvas Fabric.js 6月月更

如何保证数据库和缓存双写一致性?

C++后台开发

数据库 redis 缓存 中间件 后端开发

NFT数字藏品APP系统开发

开发微hkkf5566

什么是网络拓扑?网络拓扑有哪些类型?

wljslmz

网络技术 6月月更 网络拓扑

并发数、并发以及高并发分别是什么意思?

行云管家

高并发 并发 堡垒机 IT运维 并发数

一个老开源人的自述-如何干好开源这件事

云智慧AIOps社区

开源 前端 开源项目 数据可视化

OceanBase Meetup第五期 复杂业务场景下的数据库应用需求及挑战

OceanBase 数据库

fastposter v2.8.3 发布 电商海报生成器

物有本末

Java Python 海报 海报生成

钱大妈基于 Flink 的实时风控实践

Apache Flink

大数据 flink 编程 流计算 实时计算

详细视图——基于函数的视图 Django

海拥(haiyong.site)

Python django 6月月更

电竞迎来“新四化”,数字化产业变革正当时

科技之家

web前端培训 | 面试中Vue的各种原理分享

@零度

Vue 前端开发

Vue-15-事件绑定

Python研究所

6月月更

Java—指令重排序

武师叔

6月月更

揭开SSL的神秘面纱,了解如何用SSL保护数据

郑州埃文科技

数据安全 SSL证书 IP溯源

安擎人工智能计算中心解决方案助推“城市大脑”建设

科技热闻

快速认识 WebAssembly

devpoint

rust webassembly Wasm 6月月更

Node.js实用的内置API(二)

devpoint

node.js utils 6月月更

数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

白鲸开源

Apache 大数据 开源 workflow

Spring Security:用户和Spring应用之间的安全屏障

华为云开发者联盟

安全 防火墙 spring security 华为云

游戏源代码开发时需要什么,需要哪些团队成员?

开源直播系统源码

软件开发 游戏开发 直播源码

K8s的负载均衡与配置管理

Damon

云原生 k8s 6月月更

大数据工业界解决方案

Joseph295

语音编程,软件开发领域的下一个前沿技术?_AI&大模型_Rina Diane Caballar_InfoQ精选文章