如今,我们越来越多地通过对话与小物品进行互动。以前熟悉的有Alexa和Siri,现在还有汽车助手苹果CarPlay和安卓Auto,甚至还有一些对语音的生物特征和命令很敏感的应用程序。但是,可否用声音来构建这些技术呢?
这就是语音编码的前提。语音编码是一种使用语音代替键盘和鼠标编写代码的软件开发方法。通过语音编码平台,程序员可以说出编写代码的指令,创建自定义的适用命令,实现工作流程的自动化。
语音编码不像看上去那么简单,背后有多层复杂技术。例如,语音编码应用Serenade,与用于会话性语言的谷歌语音转文本应用程序接口(API)不同,它有专门针对编码开发的语音转文本引擎。软件工程师说出代码后,Serenade的引擎就会将其输入自己的自然语言处理层。该自然语言处理层的机器学习模型已经接受了训练,可以识别普通的编程结构并将其转换为合乎语法的有效代码。
2020年,Serenade实验室在其首轮融资中获得了210万美元种子基金。其联合创始人马特•维耶夫(Matt Wiethoff)于2019年被诊断出重复性疲劳损伤,他出于需要创办了该公司。他说:“我辞去了在Quora的软件工程师工作,因为我无法继续这项工作了。我要么选择一种不需要很多打字的职业,要么找到某种解决方法。”
瑞安•希勒曼(Ryan Hileman)也走上了同样的路,2017年,他因一年前手部严重疼痛辞去了全职软件工程师的工作。那时,希勒曼开始搭建一个可以解放双手的编码平台Talon。“Talon的要点是为任何人完全取代键盘和鼠标。”他说。
Talon由几个组成部分:语音识别、眼部跟踪和噪声识别。Talon的语音识别引擎以脸谱网的Wav2letter自动语音识别系统为基础,希勒曼对Wav2letter进行了扩展,使其能适应语音编码命令。同时,Talon的眼部跟踪和噪声识别功能可模仿鼠标操作,根据眼睛的移动在屏幕上移动光标,还可根据嘴唇发出的“啵”声来进行鼠标点击操作。“这种声音很容易发出,而且不费力,识别延迟也很短,是一种不需要语言的、快速点击鼠标方法,而且不会造成声带疲劳。”希勒曼说。
使用Talon编码就像是说另外一种语言。软件工程师和语音编码员艾米丽•谢伊(Emily Shea)在2019年的一次会议发音中进行了演示,她的视频中充满了语音命令,例如,“slap”(按回车键)、“undo”(删除)、“spring 3”(跳到文件第3行)和“phrase name op equals snake extract word paren mad”(这句话产生的代码是“name = extract_word(m) ”)。
另一方面,使用Serenade编码则可以用更自然的方式说出代码。你可以说“删除输入”来删除文件顶部的输入指令,或者说“构建”来运行自定义构建命令。此外,你还可以说“添加函数阶乘”来创建一个可在JavaScript中计算阶乘的函数。该应用还会关照语法,包括“函数”关键词、圆括号和波形括号,所以你不必明确地说出每一个元素。
虽然Serenade模型已经过笔记本电脑麦克风的音频训练,但进行声音编码还是需要合适的麦克风,特别是要消除背景噪声时。此外,如果想使用Talon眼部跟踪功能,你还需要眼部跟踪硬件。(即便没有该硬件,Talon也能运行。)Aenea和Caster等开源语音编码平台是免费的,但这两个平台都依赖Dragon语音识别引擎,这需要用户自行购买。也就是说,Caster可以支持开源语音识别工具包Kaldi,也可以支持Windows中预安装的Windows语音识别工具。
结果可说明一切。Serenade实验室的联合创始人汤米•迈克威廉(Tommy MacWilliam)说:“要描述自己想做的事很容易。说出‘将这三行下移’或‘复制该方法’要比打字输入代码或按下键盘快捷键流畅得多。”
语音编码可使身体受伤或患有慢性疼痛病的人继续自己的工作。“使用声音把双手从方程式中解放出来,让我可以更不受限制地使用电脑。”谢伊说。
使用语音编码可以降低软件开发的门槛。迈克威廉说:“如果他们能够以符合逻辑的结构化方式想出自己想写的代码,那么我们就可以让机器学习来完成最后一步,将这些想法转化为符合语法的有效代码。”
语音编码还处于初期阶段,至于它是否能够得到广泛采用,取决于软件工程师与传统用键盘和鼠标编写代码模式的捆绑程度。不过,语音编码带来了更多的可能性,也许未来的大脑-计算机接口可以直接将你的想法转变为代码或者软件。