Talking Head项目或网真机器人开发软件的历史

我在T-Systems的工作始于一个不寻常的项目。实际上,很大程度上是因为这个项目,我来到了公司。在我们第一次电话交谈中,向我描述了以下任务:有必要为远程呈现机器人开发语音翻译系统。我第一次听说网真机器人,但是有什么比为机器人开发更令人兴奋的呢?因此,我几乎立即同意了。



我第一次打给客户。任务大致是这样提出的-我们希望语音翻译系统在对话过程中通过此网真机器人工作,也就是说,该人说俄语,在“电线”的另一端,该机器人用德语复制他的语音,反之亦然。在对问题进行这样的陈述之后,紧随其后的问题是开发该问题需要花费多少人和时间,以及花费多少。我们同意,我将查看机器人的文档(机器人本身不在我们的办公室中),我将研究翻译系统并在一个月内进行粗略估算,但现在我们每周将召集几次以澄清细节。

至少可以说,该机器人的文档非常稀缺。除了营销材料外,找不到其他东西,所以我写信给开发人员。现有系统使得可以从Web浏览器向网真机器人进行视频通话并控制其在远程位置的移动,而我的一个明显想法是:是否可以以某种方式将语音翻译系统集成到当前系统中?

同时,有必要了解翻译系统的制作方式,最重要的是,翻译的质量如何?客户可以接受吗?因此,在与机器人开发人员通信的同时,我决定与客户打个电话,并通过翻译与他进行沟通。 Translator是Microsoft的移动应用程序,可以用不同的语言进行翻译和语音翻译。该应用程序是免费的,可安装在Android或iOS上,并使用Microsoft提供的适当服务。在通话中,我们必须找出是否可以通过这种方式进行对话。为了使实验更纯净,我讲俄语,而客户则用德语讲,也就是说,他们两个人绝对都不知道通过电话会议调出的第二种语言,并且首先用翻译器说了母语。然后将手机带到会议听筒上。 

总的来说,这看起来不太方便,但是给出了翻译质量的一般想法(一个好奇的读者会说,打开翻译后通过Skype打电话比较容易,但是由于某种原因当时我们才没有想到)。谈话后,我们认为该项目是可以接受的,并且客户的质量是可以接受的。

因此,根据该项目第一个月工作的结果,揭示了以下内容。智真机器人的现有系统无法修改,因为机器人的开发人员没有为此提供API。但是,事实证明,该机器人是iPad连接到的一种Segway,并且有一个iOS的SDK,您可以使用它控制Segway。也就是说,您必须完全编写自己的系统,而不要依靠与现有系统的集成。出现了未来产品的第一个示意图。

 

与客户讨论后,决定由3个人负责该项目-iOS开发人员,后端和前端开发人员。我们将项目本身分为2-3个月的阶段,并通过签订单独的合同为每个阶段设定目标。在阶段的最后-向项目的客户和投资者展示结果。对于客户而言重要的是,到了新的一年,POC已经可以正常工作了。自从我7月份加入公司以来,截止日期非常紧迫。

前两个月的目标是再找到两名开发人员,选择视频通话和翻译服务。在阶段的最后,有必要显示一个简单的Web应用程序,该应用程序允许您使用集成的翻译服务进行视频通话。

WebRTC现在被广泛用于进行视频通话,目前大多数Web浏览器都支持WebRTC。但是,由于资源有限,我们不敢在裸露的WebRTC上编写,而是选择了在WebRTC之上提供服务的提供商。我们考虑了两种服务-TokBox和Voxeet。结果,他们选择了TokBox。有必要考虑到这些服务是付费的,因此,连同对应用程序体系结构的描述,我们对视频通话一分钟的翻译进行了成本计算。



我们还考虑了几种翻译服务:TranslateYourWorld.com(它提供了一个单一的API,可以同时合并包括Google和Microsoft在内的多个翻译提供商,但该公司规模很小且不可靠,在撰写本文时其网站尚未打开),Google Cloud翻译,Microsoft Speech。结果,我们停止了MS Speech服务,因为它具有更方便的API,因此我们可以通过websocket将音频流流传输到该服务,并立即接收翻译后的录音,以及良好的翻译质量。此外,Microsoft是我们公司的合作伙伴,可以促进与他们的合作。

一个经验丰富,才华横溢(Misha,您好!)的全栈开发人员加入了我。十月初,我们的小型团队成功完成了下一阶段的演示,并演示了一个简单的Web应用程序,该应用程序使用TokBox和MS Speech服务可以将视频通话翻译成多种语言包括俄语和德语。

下一阶段的设计历时3个月,目标是使用机器人获得MVP。在这个阶段,第三个也是最后一个开发人员加入了我们。该项目选择了以下技术堆栈:后端-NodeJS + MongoDB,ReactJS上的Web前端,以及与机器人进行交互的iOS应用程序的Swift。我要如何将一个机器人从德国驾驶到圣彼得堡,然后先向德国人,然后向我们的海关官员解释,这是一个什么样的故事?





在最初的阶段,虽然我们没有机器人,但iOS应用程序仅允许我们进行带翻译的视频通话。当机器人与我们同在时,在12月初,我们迅速通过已经调试好的呼叫连接将控制信号发送到机器人,并且可以通过按键盘上的箭头来控制机器人。因此,在一月份,我们关闭了第三阶段,并向客户展示了其结果。

倒数第二阶段的结果是对所有关键错误进行了纠正的调试系统。呼叫机器人时,操作员可以通过主摄像机看到房间,而可以通过辅助摄像机看到地板(这样可以更轻松地绕过障碍物)。操作员的面部显示在机器人的屏幕上。在这种情况下,可以将对话翻译成7种受支持的语言中的任何一种,包括俄语,德语和其他一些语言。在翻译过程中,将运行两行文本:第一行是可识别的语音,第二行是通过卡拉OK照明翻译成另一种语言的,因此很明显,连接的另一端当前正在播放短语的哪一部分。



最后,在最后一个阶段,我们添加了一个用户管理系统,用户组,统计信息以及有关呼叫次数和持续时间的报告。因此,一年后,我们成功完成了该项目并将其转让给客户。 

在该项目的工作过程中,出现了新的有趣的想法。例如,将虚拟现实的护目镜戴在操作员身上,使他具有完全的沉浸效果,并能够通过转动头部来控制机器人。 

我们还进行了一项主题研究,即使用ROS框架创建一个自动驾驶机器人,以“教”它自己,以避免障碍,并从A点到达B点或在办公室入口与客人见面。总的来说,该项目非常引人入胜,谁知道我们将来会向系统添加哪些其他有趣的功能。


All Articles