一种基于测试需求的语音识别系统众包测试用例生成方法与流程
本发明属于软件测试领域,特别是涉及到众包测试和测试用例的生成。本发明基于众包技术对提供的语音识别系统进行测试,在召集众包工人之前,需要基于任务请求者所提供的测试需求生成测试用例,围绕测试用例进行众包任务分配。
背景技术:
人工智能软件的实现,如语音识别(asr)系统,离不开大量的音频数据。无论是在数据摄取层验证系统鲁棒性,还是在核心算法层验证系统准确性,也都需要借助大量的数据。在asr训练阶段,难以高质量完成大规模数据的采集和清洗工作;在asr评测阶段,测试集的数量和质量也直接影响性能评估结果。录入时的声源、环境影响、距离影响,讲话人的语速、音量、音色都将对识别结果产生影响。因此,asr测试具有多维度、多样化的要求,众包这一利用群体智慧基于分布式的问题解决机制恰恰符合其要求。
由于众包测试低成本、高效率的特性,近年来,各类商用众包测试平台开始出现。众包测试正逐渐发展成为一种主流的测试方式,但大多用于普通系统的功能性测试。众包测试主要所有三类参与者:1)任务请求者:有测试需求的、需要在众测平台发布测试任务的人群;2)众包平台:在任务请求者与众测工人之间担任中介角色,需要对整个众测过程提供技术支持和监管;3)众测工人:基于经济需求或提升自我能力需求参与众测任务,需要提交测试报告和评审他人提交的测试报告。众测工人参与测试任务不受场地、身份的限制,只要拥有测试工具、具备测试能力,就可报名参加。
目前,国内外针对语音识别系统测试方法主要分为客观测试和主观测试。客观测试是使用提前准备好的音频测试集进行测试,再使用系统测试工具进行识别,之后人工统计识别率。这种方式无法确认录音系统的兼容性,不利于不同厂家、不同设备之间的移植测试。主观测试又可分为模拟测试和现场口呼。这两者之间的区别就在于模拟测试是使用放音设备播放录制好的语音素材,现场口呼是组织几位发音人朗读测试语料,之后由专业设备收音,再使用语音识别系统识别,最后对结果进行记录。主观测试的缺点在于随机性过大,浪费人力资源,也不利于测试复现。其与客观测试相比,测试耗时更长,导致产品研发周期延长。
针对现有语音识别测试方法的缺陷,有不少研究者提出了语音识别自动化测试。如将包含测试关键字的文本文件利用tts技术转换成语音文件,然后借助放音设备播放该语音文件,进行语音识别,而后借助自动化测试工具实时监控语音识别系统,获取识别结果,并记录到文件。自动调用结果统计工具,对比识别结果及标注文件,判断识别结果正确与否。待识别完成后,进行自动汇总统计,输出一个csv文件,方便测试人员查看。这种测试方法虽可以节省人工录音的复杂程度,但是合成的声音非常机械化,与人声仍然存在语音、语调上的差异,与真实应用场景相差巨大。若使用众包测试,可直接召集到大量处于真实应用场景的工人,这些工人未来将可能是产品的真实用户。这些工人的音色、说话方式、所处环境皆不同,恰好符合语音识别测试在多维度上多样化的需求。为了降低众测工人参与语音识别测试的门槛和提高最终的测试任务结果质量,在测试任务开始之前,需要提前设计好测试用例。众测工人通过查看测试用例,可直接按照其上的步骤进行测试。
基于上述工作,本发明提出基于任务请求者提交的测试需求,来生成适用于语音识别系统的测试用例。测试步骤和方法对于专业的测试人员来说非常简单和可理解,但是对于没有接触过语音识别系统的人来说缺乏相关的背景知识,无从下手,导致无法按时完成测试任务。因此,本发明基于现有的语音识别系统测试方法、文字识别、众包测试等技术,提出基于测试需求的语音识别系统众包测试用例生成技术,减少语音识别算法研发周期。
技术实现要素:
本发明要解决的问题是:将众包技术用于语音识别测试是一种新的尝试,因此将会出现新的挑战。与以往的功能性测试不同,语音识别测试会有一些特殊的要求,包括测试环境、噪音类型等,这会提高众测工人参与测试任务的门槛。为了召集到更多工人以保证测试的完备性,本发明能够基于测试需求自动化生成信息完整的测试用例,以帮助工人更好地完成测试任务。
本发明的技术方案为:一种基于语音识别测试需求的众包测试用例生成方法,其特征是能根据测试需求文本生成多个内容完备的语音识别测试用例。
该生成方法包含以下三个模块/步骤:
语音识别测试参数收集:通过书籍、网络等多个渠道,收集关于语音识别测试的相关资料,并进行总结分析,形成一套通用性高、灵活性强的语音识别测试参数。如图1、2所示,语音识别测试需要从两个角度(拾音和识别)的多个维度进行测试。除了音色、音调等个性化因素外,距离、音量、信噪比等可提前设计,指导工人测试以达到测试完备的目的。基于现有资料,总结出影响语音识别几个因素在常见背景(家庭、办公)下的合理取值。
说话人声源与设备的距离:1m、3m、5m。
发音大小推荐值:57db、65db、70db
噪音大小推荐值:47db、55db、60db
信噪比(人声声音大小-噪音声音大小)推荐值:10db、5db
声源与设备角度:0度、30度、45度、90度。
2)文本提取模块:识别并提取任务请求者提交的测试需求,利用预设关键词库中的语音识别关键词列表,从识别出的文本信息片段中过滤出与测试用例内容相关的文本,并以此作为候选测试要求。首先,需要建立语音识别关键词列表,基于现有资料,使用word2vec技术进行文本相似度分析,提取得到词频较高的关键词作为关键词库。之后需要对关键词库进行人工筛选和补充。测试需求若为pdf格式,则采用光学字符识别(ocr)技术进行文字提取。在提取出所有文本片段后,对每一份文本进行关键词过滤,关键词就来自于语音识别关键词列表。在文字识别时识别出的文本是以句为单位,其中只要包含了其中任意一个关键词即可被过滤出来。在关键词过滤后,对所得结果按与测试要求相关的概率进行排序,每一段文本的概率以文本中所包含关键词的数量与关键词总数量比例计算而得,最终形成以关键词为索引,含关键词文本为内容的键值对。关键词词库包括:语言种类、方言、中文、英文、混合、对话模式、单人、多人、间隔式、连续式、唤醒词、词库覆盖、医疗、法律、金融、通用、环境、家用、办公等。
3)测试用例生成模块:该生产模块首先需要确定测试用例模板。测试用例的模板通常测试用例id、测试目的、前置条件、输入数据及预期结果。测试目的分为xx环境下的唤醒率和xx环境下的识别率。唤醒即设备在识别到用户发出的语音指令(在设备或软件中预置的唤醒词)后,从休眠状态进入等待指令状态,可看作有范围的识别。语音唤醒通常是作为人机交互的第一步,设备或软件在检测到唤醒词后,即开始录音进行语音识别。前置条件分为说话人的角度、距离和音量以及噪音的音量。输入数据分为人声和噪音类型,工人的说话内容、语言种类、预期结果由测试需求指定。测试用例中的包含内容与文本提取模块的输出键值对中的关键词相匹配,找出对应的文本内容。之后对每一句话进行结构解析,生成结构解析树。句子的结构解析树的叶子节点就是句子的分词结果,叶子结点的父节点是每一个词的词性。优先显示名次、简单从句作为测试用例填写备选内容,供众包平台工作人员选择。在本技术中主要使用shift-reduce对中文句子进行解析。
本发明的特点在于:
1.在语音识别测试领域,首次提出将众包技术运用于性能评估。
2.首次将计算机视觉技术应用于众包测试用例的生成。
3.在众包测试领域,首次提出基于测试需求自动化提取测试用例内容,提高众包平台工作效率。
附图说明
图1为本发明实施总流程图。
图2为关键步骤2文本提取模块流程图。
图3为关键步骤3中的原型图。
图4、5是关于语音识别测试的脑图。
具体实施方式
以下通过特定的具体的实例说明本发明的实施方式,本领域的技术人员可由本说明书揭露的内容轻易地了解到本发明的其他优点和功效。
本专利基于测试需求来完成语音识别众包测试的测试用例生成,主要采用了图像理解技术、中文分词技术,涉及到的具体关键技术有ocr技术、word2vec技术、tf-idf技术、句法结构解析技术等。
1.识别文本信息
在本发明中我们采用ocr技术来识别测试需求中所存在的丰富的文本信息。ocr是指电子设备(例如扫描仪或数码相机)检查打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。
2.生成关键词库
本发明中,将训练数据集中每一份资料中的词映射到一个向量,以判断其出现的频次,从而生成一个语音识别测试关键词库。同时应用于最后的测试用例生成模块。word2vec是用来产生词向量的相关模型。这些模型为浅而双层的神经网络。网络以词表现,并且需猜测相邻位置的输入词。训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,该向量为神经网络之隐藏层。
3.候选要素识别
在本发明中,我们将从文本提取模块中所生成的的每个句子识别为要素,并采用tf-idf技术来判断要素的重要性,从而在测试用例生成模块中生成供众包平台工作人员选择的选项。tf-idf技术是一种用于信息检索与数据挖掘的常用加权技术。tf意思是词频(termfrequency),idf意思是逆文本频率指数(inversedocumentfrequency)。用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
4.句法结构解析
在本发明中,我们对从文本提取模块中识别的要素——句子进行结构解析,将结构解析树中词性为短语从句,名词等作为选项以供众包平台的工作人员选择。使用shift-reduce方法对句子进行解析。shift-reduce解析器反复将下一个输入字推入堆栈。如果堆栈中的前n个项目与某个生产的右侧的n个项目匹配,则它们全部从堆栈弹出,并且生产的左侧的项目被推入堆栈。使用单个项目替换前n个项目是reduce操作。此操作可能仅适用于堆栈顶部;减少堆栈中较低的项目必须在将后续项目推入堆栈之前完成。当所有输入都被消耗并且堆栈上只剩下一个项目时,解析器结束,一个以s节点为根的解析树。shift-reduce解析器在上述过程中构建一个解析树。每次它从堆栈中弹出n个项目时,它会将它们组合成一个部分解析树,并将其推回堆栈。
在本发明中,文本提取部分我们采用了公开可用的ocr服务以识别测试需求中的文本内容,关键词过滤时使用的关键词列表和测试用例生成时使用的测试参数是由我们人工从收集资料中提炼而成的,包含任意一个关键词的句子都会被过滤出来,并按照关键词:句子的键值对形式,以一对多的关系进行存储。每一个句子与关键词的相关程度以文本中所包含关键词的数量与关键词总数量比例计算而得。在测试用例生成模块中,众包平台的工作人员只需根据相关文本来选择内容,填充测试用例模板即可一键生成多个测试用例。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除