有人说,设备不能做人类能做的所有事情。然而,我们在日常生活中使用的设备在过去几十年中一直在发展。我们已经看到它们在功能、连接性和大小方面发生了重大变化。然而,最大的挑战之一是设备的尺寸,因为人们正在努力实现更小的外形尺寸。
几年前,出现了一个新的挑战:该设备无法像人类一样进行交流。这导致独立设备转变为具有附加语音功能的连接设备。
语音设备如何帮助人类?
最初,需要人工触摸才能在设备上执行任何操作。现在,借助支持语音的设备和物联网技术,人类可以通过语音发出命令来操作设备。这些新发明的设备将人声转换为设备动作,通过互联网向另一台设备发送命令,并执行所需的动作。这些设备不仅可以与人类交互,还可以通过互联网与其他设备交互。
语音设备测试的主要挑战
全球语音设备的日常使用量正在迅速增加。拥有 500 多个国家/地区支持 1000 多种具有不同口音、性别和基于年龄组的语音调制的语言,这使得验证支持语音的设备具有挑战性。在短时间内用如此多的不同组合和排列来测试这些设备几乎是不可能的。那么,让我们看看如何自动化语音设备的测试。
自动化语音设备测试
为避免手动测试工作,我们需要设计一种自动化解决方案,可用于使用不同语言测试这些设备。最简单的选择是使用可以帮助开发具有此类语音集成设备的自动化脚本的框架。
截至目前,市场上还没有提供测试与语音设备集成所需的所有功能的开源框架。这里的挑战是如何以不同的语言向设备发出命令,如何读取设备的响应,以及测试预期的输出。
要在不手动操作的情况下向设备发出命令,需要以文本格式识别命令。将文本转换为音频格式。
播放音频,以便启用语音的设备可以收听和处理。
等待设备的响应,将其记录在音频文件中,作为最后一步,您需要将此音频转换为文本以匹配预期的格式。
每个设备测试程序都会有定制要求;因此,框架必须是模块化的。为了获得解决方案,我们需要设计一个模块化和可扩展的框架,其中该解决方案的每一步都可以由市场上可用的开源或付费库来实现。
我们在以下框架中设计了4个模块:
多语言文本:将文本从一种语言转换为另一种语言
文本音频模块:将文本转换为 mp3
音频-文本模块:将 wav 转换为文本
音频模块:
使用音频输出设备播放 mp3 文件
使用麦克风读取音频数据
将音频数据保存到 wav 文件
详细解决方案
1.准备英文设备命令
a.使用多语言文本模块将设备命令转换为设备可以理解的语言。它使用谷歌提供的翻译服务,您可以将文本从任何源语言翻译成任何所需的语言。
2.为翻译文本创建音频文件
a.使用文本音频模块将文本转换为音频。生成的音频可以在音频输出设备上播放。该模块在后端使用 Google 文本转语音服务。
3.播放音频
a.使用音频模块将 mp3 文件播放到音频输出设备。
b.此步骤需要音频输出设备和启用语音的设备靠近,以便在播放音频时,设备可以捕获音频并处理命令。
4.录制音频
a.此步骤是捕获来自启用语音的设备的响应所必需的。
b.使用音频模块从麦克风捕获录音数据。您需要传递持续时间参数以提及您想要录制多长时间,并且模块返回音频样本数据
c.一旦样本数据可用,需要将其保存为 wav(音频)文件。为此,可以使用save_audio_to_file方法。此方法获取样本音频数据并将其写入 wav 文件,该文件稍后可以使用音频设备播放,也可用于将其转换为文本。
5.将捕获的音频转换为文本
a.使用 Text-Audio 模块将 wav 文件转换为文本内容。这是使用语音识别器实现的。您应该指定输入 wav 文件和音频内容语言。
b.要将音频转换为文本,可以使用各个供应商提供的第三方库。
6.将以上文本翻译成英文,并根据预期的英文结果进行验证
使用以上4个模块,一次就可以实现基于语音的集成设备的语音自动化。
家庭自动化产品端到端测试的真实场景
家庭自动化系统由可以使用 REST 服务通过 Web 操作的各种设备组成。安全摄像头、灯、恒温器、传感器和门铃是家庭自动化设备的几个例子。例如,作为房主的最终用户可以使用互联网门户远程打开或关闭灯。一些系统提供与 Alexa、Google 等第三方合作伙伴的集成。
阅读:案例研究 - 用于家庭自动化中心的 Alexa 集成
公司提供可以聆听人声并执行用户请求的操作的设备。因此,考虑到灯光作为家庭自动化产品,而 Alexa 作为家庭自动化系统提供商的第三方合作伙伴,我们想测试是否可以通过 Alexa 打开/关闭灯光。
为了自动化 E2E 场景,我们需要使用上面讨论的自动化框架执行以下步骤。
1.准备Alexa命令以英语打开灯。
a.“Alexa,打开灯”
2.上面的命令转换成mp3文件
3.使用连接到自动化机器的扬声器在 Alexa 设备附近播放 mp3 文件。
4.将来自Alexa的响应记录在wav文件中。
5.将音频文件转换为“Ok. 打开灯”或“灯已打开”。
6.用预期的结果集验证转换后的文本。
7.在验证中,只需提前一步,我们还可以使用以下方法验证实际的物联网灯状态:
a.REST API 可用于从家庭安全系统获取灯光状态
b.可以对网络安全门户进行网络自动化以验证灯状态
c.如果灯的状态正在存储在云数据库中,我们可以从数据库中获取数据来验证状态
结论
通过以上步骤,不仅可以只用一台语音设备测试系统集成或端到端测试,还可以结合多个客户端或设备进行系统测试。用户可以使用 Alexa 在其中一个设备/产品上执行操作,并使用 Google 或 Portal 验证其状态,反之亦然。例如,用户要求谷歌打开灯,然后使用 Alexa/客户门户获取灯状态。
eInfochips 是需要从设备到应用程序进行全面测试覆盖的产品公司的首选合作伙伴。eInfochips 通过测试自动化、SDET(测试中的软件开发工程师)、左移测试和 DevOps 节省了大量的成本和精力。
作者:Dhaval Patel ,Keyur Shah
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !