1.本说明书一个或多个实施例涉及物联网设备技术领域,尤其涉及一种物联网设备中语音模块的自动化测试方法。
背景技术:2.随着物联网技术的发展,目前出现了很多具有语音识别功能模块的物联网设备,例如,空调。但是由于其软硬件不同,价格不同,其语音识别的能力存在很大差距,抗干扰的能力不同,在不同环境中语音识别率是不同的。
3.目前,在智能语音识别领域出现了一些自动化、半自动化的测试方法,但是这些方法的测试准确率都存在一定的问题,并不能真实反映语音识别功能模块的识别率,特别是在噪音干扰的情况下,尤其是识别能力比较差的语音识别功能模块。
技术实现要素:4.本说明书一个或多个实施例描述了一种物联网设备中语音模块的自动化测试方法。
5.本发明提供了一种物联网设备中语音模块的自动化测试方法,包括:
6.s110、在测试设备与物联网设备中的语音模块进行时间戳同步之后,所述测试设备播放唤醒词;
7.s120、所述语音模块对监听到的唤醒词进行识别,在识别成功后进入唤醒状态,向所述测试设备发送用于表示所述语音模块进入所述唤醒状态的唤醒消息,播放所述唤醒词对应的应答语音,并在该应答语音播放完成后向所述测试设备发送第一提醒消息,所述第一提醒消息用于表示所述唤醒词对应的应答语音已播放完成;
8.s130、若所述测试设备在播放所述唤醒词后的预设时长内接收到所述唤醒消息和所述第一提醒消息,则进入s140;
9.s140、所述测试设备播放命令词;
10.s150、所述语音模块对监听到的命令词进行识别,将识别结果发送至所述测试设备,播放所述命令词对应的应答语音,并在该应答语音播放完成后向所述测试设备发送第二提醒消息,所述第二提醒消息用于表示所述命令词对应的应答语音已播放完成;
11.s160、若所述测试设备在播放所述命令词后的预设时长内接收到所述识别结果和所述第二提醒消息,则判断所述识别结果对应的时间戳是否满足预设条件,若是,则当前命令词对应的测试过程有效,并保存所述识别结果;所述预设条件包括:所述识别结果对应的时间戳大于所述命令词播放完成时对应的时间戳且小于所述第二提醒消息对应时间戳;其中,所述测试设备和所述语音模块之间的各个交互信息中均包含对应的时间戳。
12.本说明书实施例提供的物联网设备中语音模块的自动化测试方法,通过在交互消息中添加时间戳,然后根据时间戳判断是否满足预设条件,进而判断识别结果是否为干扰识别结果还是有效识别结果,后续可以只针对有效的识别结果判断识别正确与否,从而避
免干扰识别结果降低整体的识别率,尤其是针对识别能力较差的语音模块,可以大大提高对其测试识别率的准确度,因为识别能力较差的语音模块受噪音干扰的影响比较大。除了消息中添加时间戳之外,本发明设置了唤醒状态消息、第一提醒消息、第二提醒消息等多种交互消息,从而保证两者交互状态是匹配的,大大降低测试设备播放语音但是语音模块无法监听的情况发生,顺利执行测试过程。可见,本发明解决了待测的物联网设备在容易被干扰的情况下(例如,识别能力较低的语音模块在嘈杂的测试环境中,语音模块受到噪音干扰而关闭麦克风造成无法监听到测试设备播放的唤醒词或命令词),语音模块的识别率不准确的问题。
附图说明
13.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1是本说明书一个实施例中物联网设备中语音模块的自动化测试方法的流程示意图;
15.图2~4是本说明书一个实施例中pc端的测试程序和被测设备之间的交互示意图。
具体实施方式
16.下面结合附图,对本说明书提供的方案进行描述。
17.第一方面,本发明提供一种物联网设备中语音模块的自动化测试方法,如图1~4所示,该方法包括:
18.s110、在测试设备与物联网设备中的语音模块进行时间戳同步之后,所述测试设备播放唤醒词;
19.可理解的是,测试设备和物联网设备进行时间戳同步的作用是保证两者进行信息交互时信息中携带的时间戳对于两个设备均有参考价值。
20.其中,唤醒词的作用是唤醒语音模块,使语音模块进入唤醒状态。在语音模块处于唤醒状态时,对语音模块进行测试。例如,测试设备播放唤醒词为“小美同学”。
21.可理解的是,在整个测试过程中涉及到的两个硬件包括测试设备和待测试的物联网设备,例如,空调。测试设备是通过安装在其上的测试设备进行整个测试流程。
22.s120、所述语音模块对监听到的唤醒词进行识别,在识别成功后进入唤醒状态,向所述测试设备发送用于表示所述语音模块进入所述唤醒状态的唤醒消息,播放所述唤醒词对应的应答语音,并在该应答语音播放完成后向所述测试设备发送第一提醒消息,所述第一提醒消息用于表示所述唤醒词对应的应答语音已播放完成;
23.也就是说,当测试设备播放唤醒词后,语音模块对监听到的唤醒词进行识别,在识别出是唤醒词之后,由待唤醒状态进入唤醒状态,并且会向测试设备发送唤醒消息,从而告知测试设备“语音模块进入所述唤醒状态”。当语音模块进入唤醒状态后,会播放应答语音,例如,测试设备对空调播放的唤醒词为“小美同学”,语音模块播放的应答语音为“在的”。在应答语音播放完成后,语音模块会像测试设备发送第一提醒消息,从而告知测试设备“所述
唤醒词对应的应答语音已播放完成”。
24.s130、若所述测试设备在播放所述唤醒词后的预设时长内接收到所述唤醒消息和所述第一提醒消息,则进入s140;
25.可理解的是,测试设备在播放唤醒词后可以开始计时,如果在预设时长内接收到了唤醒消息和第一提醒消息,说明语音模块进入了唤醒状态并且已经播放了应答语音,此时可以针对预先设置的多个命令词依次进行测试。
26.s140、所述测试设备播放命令词;
27.其中,命令词在不同的物联网设备中的具体内容不同,例如,针对空调,命令词可以有“升高温度”、“开启除湿模式”、“开启制冷模式”、“将温度下调至25
°”
等。针对智能电视,命令词可以有“跳到cctv6”、“调大声音”等。
28.针对每一个物联网设备,都可以预先设置多个命令词,然后针对每一个命令词进行下文中的测试,在一个命令词测试成功后进入下一个命令词的测试,直到所有的命令词均测试完成。
29.s150、所述语音模块对监听到的命令词进行识别,将识别结果发送至所述测试设备,播放所述命令词对应的应答语音,并在该应答语音播放完成后向所述测试设备发送第二提醒消息,所述第二提醒消息用于表示所述命令词对应的应答语音已播放完成;
30.也就是说,当语音模块监听到命令词之后,会进行识别,并且把识别结果发送给测试设备,然后播放对应的应答语音,在应答语音播放完成后,向测试设备发送第二提醒消息,从而告知测试设备“命令词对应的应答语音已播放完成”。
31.s160、若所述测试设备在播放所述命令词后的预设时长内接收到所述识别结果和所述第二提醒消息,则判断所述识别结果对应的时间戳是否满足预设条件,若是,则当前命令词对应的测试过程有效,并保存所述识别结果;所述预设条件包括:所述识别结果对应的时间戳大于所述命令词播放完成时对应的时间戳且小于所述第二提醒消息对应时间戳;其中,所述测试设备和所述语音模块之间的各个交互信息中均包含对应的时间戳。
32.可理解的是,当测试设备在播放命令词后开始计时,如果在预设时长内接收到识别结果和第二提醒消息,则进一步根据时间戳进行判断。具体为:判断所述识别结果对应的时间戳是否大于所述命令词播放完成时对应的时间戳且小于所述第二提醒消息对应时间戳。由于测试设备先播放命令词,然后语音模块发送识别结果,在识别结果发送完成后发送第二提醒消息,因此所述识别结果对应的时间戳应该大于所述命令词播放完成时对应的时间戳且小于所述第二提醒消息对应时间戳,如果不满足这个条件,说明播放的命令词、识别结果或者第二提醒消息之间不是对应的,可能是对干扰噪音识别后引发的识别结果、第二提醒消息等,所以这里采用预设条件进行判断。
33.如果满足上述预设条件,则说明依据当前命令词进行的测试是有效的,可以记录识别结果。这里说的有效并不是说识别结果是正确的,在这里并不对识别结果的正确与否进行判断,这里只是筛选出有效测试,当然下文中也提到了无效测试、失败测试等,只有有效测试对应的识别结果才有意义,因此后续在完成所有的命令词测试后,可以进一步区分识别结果的正确与否,进而确定语音模块的识别正确率。
34.在具体实施时,所述s160中还包括:若所述识别结果对应的时间戳不满足所述预设条件,则当前命令词对应的测试过程无效,并将所述识别结果记录为干扰识别结果,并返
回s110以重新进行唤醒以及依据当前命令词重新进行测试。
35.也就是说,如果不满足上述预设条件,则说明针对当前命令词的测试过程是无效的,识别结果记录为干扰识别结果,然后s110中,重新开始进行唤醒操作和对当前命令词进行测试操作。
36.可理解的是,如果在嘈杂的环境中进行测试,语音模块监听到的命令词有可能是噪音,而非测试设备播放的命令词,所以语音模块返回识别结果、返回第二提醒消息的时间戳与命令词播放完成对应的时间戳可能会不满足上述预设条件。所以通过这种方式确定哪些信息是由于干扰引起的,从而避免在干扰噪音影响下语音模块的测试识别率与真实识别率不符的情况发生。
37.在具体实施时,所述s130还可以包括:若所述测试设备播放所述唤醒词后的预设时长内未接收到所述唤醒消息和所述第一提醒消息,则记录本次唤醒失败,并返回s110重新进行唤醒。
38.也就是说,如果测试设备在播放唤醒词后的预设时长内没有接收到唤醒消息和第一提醒消息,说明语音模块没有监听到唤醒词、关闭了麦克风或者其它原因,所以此时认为唤醒失败,可以重新进行唤醒,如果多次唤醒都失败,则结束本方法,可以提供工作人员进行硬件检查,检查没有问题之后再次进行测试。
39.在具体实施时,所述s150中还可以包括:若所述语音模块在发送所述第一提醒消息后的预设时长内未监听到所述命令词,则退出唤醒状态,向所述测试设备发送用于表示退出所述唤醒状态的退出唤醒消息。
40.也就是说,如果语音模块在发送第一提醒消息后,由于处于唤醒状态却没有监听到命令词,说明测试设备没有播放命令词,此时可能是测试设备的测试程序出现问题,因此此时语音模块可以退出唤醒状态,同时向测试设备发送退出唤醒消息,以通知测试设备。
41.在具体实施时,所述s160还可以包括:若所述测试设备在播放所述命令词后的预设时长内未接收到所述识别结果和所述第二提醒消息,则记录为本次测试失败。
42.也就是说,如果测试设备在播放命令词之后,却没有在规定时间内收到识别结果和第二提醒消息,说明语音模块没有监听到、无法识别、识别出来了但是发送信息的时间晚于规定时间等,语音模块内的程序可能存在问题,所以记录识别失败,此时可以回到s110重新测试,也可以结束测试,对语音模块进行检查。
43.在具体实施时,语音模块可以采用单轮语音模式,也可以采用多轮语音模式。单轮语音模式为:语音模块在唤醒后,测试设备播放一个命令词,语音模块识别完成发送相关信息后就会退出唤醒状态,下一个命令词需要重新唤醒。多轮语音模式为:提前设置一个预设时长,语音模块在唤醒后,开始计时,语音模块识别一个命令词,并发送相关信息后,计时归零,重新开始计时;再监听识别下一个命令词并发送相关信息后,预设时长归零,重新开始计时。
44.当所述语音模块为单轮语音模式时,所述s150还包括:在发送所述第二提醒消息后,所述语音模块退出唤醒状态,向所述测试设备发送用于表示退出所述唤醒状态的退出唤醒消息,以使所述测试设备在进行下一个命令词的测试或对当前命令词重新进行测试时返回s110以重新进行唤醒。
45.其中,语音模块在退出唤醒状态时一定会发送退出唤醒消息以通知测试设备。当
测试设备知道语音模块为单轮模式且接收到了退出唤醒消息后,在需要进入下一个命令词的测试或者对当前命令词重新进行测试时会重新进行唤醒。
46.当所述语音模块为多轮语音模式时,所述s160还可以包括:在所述测试设备保存所述识别结果之后,若未接收到来自所述语音模块的退出唤醒消息,则返回s140以进行下一个命令词的测试。当然,如果接收到来自语音模块的退出唤醒消息,则需要返回s110重新进行唤醒并进行下一个命令词的测试。
47.在具体实施时,所述s150可以包括:所述语音模块在发送所述第二提醒消息后,将唤醒状态对应的计时周期的计时清零,重新开始计时,若在一个计时周期内没有监听到语音,则退出唤醒状态,并发送退出唤醒状态消息至测试设备。
48.也就是说,在多轮模式下,如果语音模块发送了第二提醒消息后,便对计时周期的计时清零,重新开始计时。如果测试设备接收到退出唤醒消息,则需要返回到s110重新进行唤醒,并继续进行测试。
49.针对多轮模式,本发明中的s130可以具体包括:所述测试设备在发送所述唤醒词的预设时长内接收到所述唤醒消息和所述第一提醒消息后,判断所述唤醒消息的时间戳是否小于所述第一提醒消息的时间戳,若是,则进入 s140。
50.也就是说,测试设备在接收到唤醒消息和第一提醒消息之后,在进入 s140之前,先根据时间戳进行判断,具体为判断唤醒消息的时间戳是否小于第一提醒消息的时间戳,因为语音模块首先发送唤醒消息,然后再发送第一提醒消息,因此唤醒消息的时间戳一定会小于第一提醒消息的时间戳。而如果唤醒消息的时间戳大于第一提醒消息的时间戳,则说明唤醒消息和第一提醒消息有可能针对的唤醒词不同,必然有个消息针对的不是真实的唤醒词,可能是干扰噪音,所以此时不能进入s140。通过这一步骤再次派出了干扰噪音的影响。
51.在具体实施时,本发明提供的方法还可以包括:
52.若所述测试设备在播放所述唤醒词或所述命令词的过程中,接收到所述语音模块返回的任一消息,则中止播放,将所述任一消息记录为干扰无效消息,并返回到s110中以重新进行唤醒和依据当前命令词进行测试。
53.也就是说,在测试设备在播放唤醒词或者命令词的过程中就接收到了语音模块返回的消息,说明语音模块返回的消息并不是针对测试设备此时所播放的命令词或播放词而做出的反馈,很有可能是语音模块识别了嘈杂环境中的干扰噪音而发出了反馈消息,因此此时需要中止播放过程,重新回到第一步进行重新唤醒和重新对当前的命令词进行测试。
54.在图2中给出了一个有效测试的流程图。在图3中,如果测试程序接收到的消息是识别结果,则记录为干扰识别,实际上此时无论接收到的是何种消息会认为是干扰消息。在图4中,测试程序如果超时接收到唤醒消息、识别结果等,都认为本次测试失败。
55.举例来说,空调中文语音模块为ci1003,是一种语音识别并能够语音应答的模块,语音模块为单轮语音模式。测试程序用唤醒词唤醒语音模块后,播放一个命令词,待测设备识别一次命令词后,自动退出唤醒状态的对话模式,在下一个命令词测试时需要重新唤醒。测试设备为windows 10 pc端,并在pc端上部署了测试程序。测试设备的主要功能是:播放唤醒词、命令词、接收空调中文语音模块发出的唤醒消息、出唤醒消息、应答语音播放结束消息(即第一提醒消息、第二提醒消息)、识别结果。空调中文语音模块的主要功能是:监听
识别唤醒词、命令词、播放应答语音、发送第一提醒消息和第二提醒消息、发出唤醒消息和退出唤醒消息。测试设备和空调中文语音模块通过串口通信,启动后先进行时间戳的同步,而且在所有的消息中均包含时间戳。具体的流程大致包括:
56.第一步:测试设备播放唤醒词,空调中文语音模块监听语音,识别成功后发送唤醒消息,播放应答语音,并发送第一提醒消息。
57.第二步:测试设备在规定时间内接收串口消息,如果超时未收到唤醒消息和第一提醒消息,则记录唤醒失败,返回到第一步重新进行唤醒。
58.第三步:测试设备按照配置数据播放命令词,空调中文语音模块监听语音并识别结果,发送识别结果到测试设备,并播放应答语音,播放完成后发送第二提醒消息到测试设备,在发送完成后,测试设备退出唤醒状态,向所述测试设备发送退出唤醒消息。
59.第四步:测试设备在规定时间内接收串口消息,如果识别结果的时间戳大于播放命令词完成的时间戳且小于第二提醒消息的时间戳,则测试结果有效,记录本次测试有效,保存识别结果。由于测试设备接收到退出唤醒消息,因此返回到第一步并测试下一个命令词。否则不满足上述大小关系,则本次测试无效,记录为干扰识别,回到第一步测试重新唤醒并测试当前命令词。如果超时未收到识别结果消息和第二提醒消息,则本次测试失败,并记录为识别失败。
60.举例来说,空调中文语音模块为多轮模式,空调中文语音模块在识别一个命令词之后不退出唤醒状态,而是将唤醒状态对应的计时周期的计时清零,重新开始计时。测试设备的主要功能是:播放唤醒词、命令词、接收空调中文语音模块发出的唤醒消息、退出唤醒消息、第一提醒消息、第二提醒消息、识别结果。空调中文语音模块的主要功能是:监听识别测试设备播放的语音词条、播放应答语音、发送唤醒消息和退出唤醒消、第一提醒消息、第二提醒消息到测试程设备。测试设备通过串口和空调中文语音模块的调试串口通信,启动后同步时间戳。两个设备之间的所有消息均包括发送消息时的时间戳。测试设备在播放命令词或唤醒词过程中,收到任何消息,均为无效消息并重新回到第一步。具体步骤大致包括:
61.第一步:测试设备播放唤醒词,空调中文语音模块监听语音,识别成功后发送唤醒消息,播放应答语音,发送第一提醒消息。
62.第二步:测试设备在规定时间内接收串口消息,判断唤醒消息对应的时间戳是否小于第一提醒消息的时间戳,若是,则进入第三步;如果超时未收到唤醒消息和第一提醒消息,则记录唤醒失败,并返回到第一步。
63.第三步:测试设备按照配置数据播放命令词,空调中文语音模块监听语音并识别结果,发送识别结果到测试设备,播放应答语音,播放完成后发送第二提醒消息到测试设备,空调中文语音模块监听将唤醒状态对应的计时周期的计时清零,重新开始计时;如果在一个计时周期内没有监听到语音,则退出唤醒状态,并发送退出唤醒状态消息给测试设备。
64.第四步:测试设备在规定时间内接收串口消息,如果识别结果的时间戳大于播放命令词完成的时间戳小于第二提醒消息的时间戳,则本次测试有效,记录识别结果,继续第三步继续测试下一个命令词。如果不满足上述条件,则记录本次测试无效,记录为干扰识别,回到第一步测试重新唤醒并测试当前命令词。如果超时未收到识别结果和第二提醒消息,则记录为本次测试失败。
65.可理解的是,本发明主要涉及测试设备和待测试的物联网设备,两个设备通过串口建立通讯连接,测试设备上的测试程序按照配置数据播放预先设定好的唤醒词和命令词,并且通过串口接收来自物联网设备的反馈信息,例如,唤醒消息、识别结果、应答语音播放完成的提醒消息、退出唤醒消息等。进而对这些消息进行分析,确定有效的识别结果,进而可以根据有效的识别结果的正确与否,判断物联网设备的语音模块的识别率(即正确识别率)。
66.其中,物联网设备对测试程序播放的唤醒词、命令词进行监听,对唤醒词、命令词进行识别,进而将唤醒消息、识别结果、应答语音播放完成的提醒消息等发送给测试设备。
67.在实际中,在有背景噪音的测试环境中,识别能力较差的语音模块,分辨噪音和测试音的能力较差,因此经常会收到噪音的干扰,从而导致测试出来的识别率与语音模块真实的识别率不同,导致测试出来的识别率的准确度较低,进而参考价值较低,对语音模块造成错误评价。而本发明中通过在交互消息中添加时间戳,然后根据时间戳判断是否满足预设条件,进而判断识别结果是否为干扰识别结果还是有效识别结果,后续可以只针对有效的识别结果判断识别正确与否,从而避免干扰识别结果降低整体的识别率,尤其是针对识别能力较差的语音模块,可以大大提高对其测试识别率的准确度,因为识别能力较差的语音模块受噪音干扰的影响比较大。
68.在有背景噪音的测试环境中,还存在一种问题,例如,当测试设备唤醒语音模块之后,语音模块识别到干扰噪音,而进入应答语音状态,此状态下有些语音模块会关闭麦克风,这就导致语音模块无法监听到测试设备播放的语音,导致语音模块无法反馈相应的消息,导致测试失败。这种问题是两者状态不匹配造成的。本发明在消息中添加时间戳,并且设置了唤醒状态消息、应答语音播放完成消息等多种交互消息,从而保证两者交互状态是匹配的,大大降低测试设备播放语音但是语音模块无法监听的情况发生,顺利执行测试过程。
69.可见,本发明主要解决了待测的物联网设备在容易被干扰的情况下(例如,识别能力较低的语音模块在嘈杂的测试环境中,语音模块受到噪音干扰而关闭麦克风造成无法监听到测试设备播放的唤醒词或命令词),语音模块的识别率不准确的问题,通过实验,本发明可以将识别准确率提升20%~50%左右。
70.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
71.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、挂件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
72.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。