本发明涉及一种多种覆盖率引导的语音智能模型测试数据生成方法及系统,属于智能软件测试。
背景技术:
1、与传统软件一样,语音智能模型在部署前也需要进行测试,在早期对语音智能模型进行测试有利于发现其潜在缺陷和故障。但是,由于语音智能模型与传统软件在技术架构和开发流程上存在显著区别,传统软件测试方法难以直接应用于语音智能模型测试。语音智能模型的性能高度依赖训练数据和模型的训练参数,在推理阶段,语音智能模型表现出一定的不确定性和波动性。因此,需要对语音智能模型进行充分的测试。
2、充分的测试是保障语音智能模型可信性的关键测试手段之一,测试数据是测试的基础,多样化的测试数据(不同口音、语速、背景噪音)不仅能全面评估模型的性能和鲁棒性,还能确保模型的公平性和泛化能力,对揭露模型缺陷有重要意义。人工采集测试数据效率低、成本高,测试数据的多样性难以保证,迫切需要对语音测试数据生成进行研究。
3、语音数据生成的研究现状如下:
4、谷歌大脑团队提出的specaugment对音频数据的对数梅尔频谱进行随机增强,其增强策略包括特征扭曲、频率域的屏蔽、时间域的屏蔽等,specaugment可以合成大量的音频数据,但是由于过程随机,缺乏引导,合成数据的多样性难以保证;香港科技大学提出的deepwalk将音频数据转为对数梅尔频谱,构建其图像流形,然后基于对抗生成网络对图像流形进行变异,deepwalk能够生成多样的、有效的变异数据,但是其训练过程需要大量计算资源和长时间训练;新加坡管理大学提出的crossasr和crossasr++通过文本生成语音数据,虽然能够生成大量的语音数据,但是这类方法基于文本-语音转换引擎(tts),需要大量文本数据集训练,且生成音频数据的质量依赖于tts的训练效果,质量不稳定。
5、北京新能源汽车股份公司提出的《测试用例生成方法、装置、设备、存储介质和程序产品》(cn117932348a)描述了语音测试数据的生成方法,从语音数据的语音属性、噪声属性和多音区属性三方面对原始数据进行变异,但是并未评估生成数据的有效性和多样性。
6、上海安般信息科技有限公司提出的《一种针对深度学习模型的评测系统》
7、(cn117493140a)从音量、语速和音调三方面对语音测试集进行变异,对变异后的数据执行(五种)神经元覆盖率指标测试,将欧式距离相似度作为数据选择的判断标准,但是该发明生成的变异数据旨在测试模型的鲁棒性,并不适用于模型常规性能指标的测试。
8、综上所述,目前面向语音智能模型的测试数据生成方法存在多样性不足、质量差、缺乏有效性评估等问题。因此,为了生成多样化的、有效的语音测试数据,需要探索更高效的、适合语音智能模型特点的测试数据,以提高语音智能模型测试的充分性和可信性。
技术实现思路
1、本发明的技术解决问题是:克服现有技术的不足,提供一种多种覆盖率引导的语音智能模型测试数据生成方法及系统,旨在解决语音智能模型测试数据多样性不足导致测试不充分的问题,提升测试数据的多样性,保证语音智能模型测试的充分性,以尽可能多的暴露被测模型的潜在安全缺陷。
2、本发明的技术解决方案是:第一方面,提供一种多种覆盖率引导的语音智能模型测试数据生成方法,包括:
3、输入数据,包括待测语音智能模型和种子测试数据集;
4、分析待测语音智能模型在不同神经网络覆盖率指标下,神经网络中的神经元在给定种子测试数据集下的激活状态,得到不同神经网络覆盖率指标下的覆盖率;神经网络覆盖率指标包括:神经元覆盖率、top-k神经元覆盖率、神经元强激活覆盖率、多节神经元覆盖率;
5、随机选择一种或多种变异策略,对种子测试数据进行变异;变异策略包括随机静音、随机增益、高斯噪声、语速变化、音调偏移、时间偏移、动态压缩以及双曲正切失真;
6、定义强变异个数约束条件,初步过滤变异数据,使用过滤后的变异数据计算待测语音智能模型的四种神经网络覆盖率,选择相比变异前提升了待测模型覆盖率的变异数据,形成对应不同神经网络覆盖率准则的变异数据集;
7、输出待测语音智能模型在种子测试数据集和选择的变异测试数据集上的覆盖率计算结果。
8、优选的,待测语音智能模型的所有神经元集合为n={n1,n2,…,nm};
9、所有种子测试数据集为其中,xi表示音频样本i。
10、优选的,神经网络中的神经元在给定种子测试数据集下的激活状态,具体为:
11、令oj(xi)表示给定测试输入xi时待测语音智能模型的神经元nj的输出值,
12、aj(xi)∈{0,1}表示输入为xi时神经元nj的激活状态,其中:
13、当oj(xi)>omin时,aj(xi)=1,表示该神经元被激活;
14、当oj(xi)≤omin时,aj(xi)=0,表示该神经元未被激活。
15、优选的,神经元覆盖率、神经元强激活覆盖率、top-k神经元覆盖率、多节神经元覆盖率的神经网络覆盖率准则如下:
16、神经元覆盖率:将一组测试输入的神经元覆盖率定义为所有测试输入中激活的神经元数量与被测模型中神经元总数的比值,即神经元覆盖率为激活神经元数目占神经元总数的比例;定义如下:
17、
18、神经元强激活覆盖率:在训练模型时,每个神经元nj根据训练集数据分析都可以计算出其上边界值如果一个神经元的输出值高于其上边界值,则认为该神经元被强激活;强激活覆盖率为强激活神经元数目占神经元总数的比例;定义如下:
19、
20、top-k神经元覆盖率:假设一个神经网络共有l层,对于第r层,用topk(xi,r)表示当输入为xi时,第r层中神经元输出值最大的前k个值对应的神经元;在所有测试输入下,top-k神经元覆盖率为神经网络所有层级中最活跃的前k个神经元取并集后占神经元总数的比例;定义如下:
21、
22、多节神经元覆盖率:根据训练数据确定每个神经元的激活范围,并将这个范围划分为k个相等的区段,在测试时,统计测试输入xi∈x在第j∈n个神经元的输出值oj(xi)落在第j个神经元的k个区段中的个数占神经元总区段数的比例;定义如下:
23、
24、其中,fallk(oj(xi))表示测试输入xi在第j个神经元的输出值oj(xi)落在第j个神经元的第k个区段中。
25、优选的,对种子测试数据进行变异的次数m由用户自定义,定义种子数据xi的第j次变异后的结果为
26、随机静音、随机增益、高斯噪声、语速变化、音调偏移、时间偏移、动态压缩以及双曲正切失真变异策略分别为:
27、随机静音:在音频信号的某个随机选择的部分添加静音,以模拟短暂的信号丢失或遮挡;添加随机静音后的音频数据表示为t表示时间;
28、随机增益:将音频信号乘以一个随机的幅度因子,通过增加或减少音频信号的整体振幅来调节音量,音频信号的响度会变化,但是音调和节奏保持不变;随机增益后的音频数据表示为x′ij=α·xi,α>1表示增大音量,α<1表示减小音量;
29、高斯噪声:对音频信号添加高斯噪声添加高斯噪声后的音频数据表示为x′ij=xi+g;
30、语速变化:在不改变音调的前提下,改变音频信号的速度或持续时间;语速变化后的音频数据表示为其中α是时间伸缩因子,α>1表示音频被拉长,速度变慢;α<1表示音频被压缩,速度变快。
31、音调偏移:在不改变音频节奏和时长的前提下,将音频信号的音调升高或降低;应用音调偏移后的音频数据表示为p表示偏移操作,α表示音调偏移的半音数量,α>0表示升高音调,α<0表示减低音调;
32、时间偏移:向前或者向后平移音频信号;应用偏移后的音频数据表示为δt表示平移的时间量,正值向前平移,负值表示向后平移,l表示输入音频信号的总时长;
33、动态压缩:限制音频信号的最大幅度,防止信号超过预设的阈值;应用动态压缩后的音频数据表示为其中,t表示幅度的阈值,sgn(xi)表示信号xi的符号函数;
34、双曲正切失真:通过对输入音频信号xi应用双曲正切函数来添加失真效果;应用双曲正切失真后的音频数据表示为x′ij=tanh(k·xi),k表示可调的增益因子,用于控制失真效果的强度。
35、优选的,定义的强变异个数约束条件,通过强变异个数约束初步过滤变异数据,具体为:
36、计算变异前后数据的值发生变化的情况种子数据xi的第j次变异后的结果为
37、计算变异前后数据发生变化的幅值均值统计发生变化的值超过幅值均值(即强变异)的个数
38、判断x′ij的强变异个数是否不超过数据维度50%,即则满足约束条件,进行下一步选择,否则重新采用变异策略对种子测试数据进行变异。
39、优选的,使用过滤后的变异数据计算待测语音智能模型的四种神经网络覆盖率,选择相比变异前提升了待测模型覆盖率的变异数据,形成对应不同神经网络覆盖率准则的变异数据集,具体为:
40、将满足强变异个数约束的变异数据x′ij作为待测语音智能模型的输入,根据每一种神经网络覆盖率准则分别计算被测模型的覆盖率,如果覆盖率较上一次结果有提升则保留该变异数据,否则丢弃,再次进行变异直至所有样本都达到设定的种子测试数据进行变异的次数;对每种覆盖率准则形成一组对应变异后的数据集。
41、第二方面,提供一种多种覆盖率引导的语音智能模型测试数据生成系统,包括:数据输入模块、神经元激活状态分析模块、语音数据变异模块、变异数据选择模块、以及结果可视化模块;具体的:
42、数据输入模块存储并向其他模块输入包括待测语音智能模型、种子测试数据集;
43、神经元激活状态分析模块分析神经网络中每个神经元在给定种子测试数据集下的激活状态,输出不同神经网络覆盖率指标下的覆盖率;神经网络覆盖率准则包括神经元覆盖率、top-k神经元覆盖率、神经元强激活覆盖率、多节神经元覆盖率的计算提供基础;
44、语音数据变异模块自动化地对种子测试数据集进行变异,变异策略包括随机静音、随机增益、高斯噪声、语速变化、音调偏移、时间偏移、动态压缩、双曲正切失真;
45、变异数据选择模块定义强变异个数约束条件,自动化地过滤不满足约束条件的变异数据,并根据每种神经网络覆盖率准则分别自动化地计算待测模型使用过滤后的变异数据计算待测语音智能模型的神经网络覆盖率,选择并保留提升模型覆盖率的变异数据;
46、结果可视化模块以图表形式呈现待测语音智能模型在种子测试数据集和过滤的变异测试数据集上的覆盖率计算结果,并展示选择的变异数据的统计结果。
47、本发明与现有技术相比具有如下优点:
48、本发明公开了多种神经网络覆盖率引导的语音智能模型测试数据生成系统。该系统首先定义了8种语音数据变异策略(随机静音、随机增益、高斯噪声、语速变化、音调偏移、时间偏移、动态压缩、双曲正切失真),自动化地对初始种子测试用例进行变异,然后引入了4种神经网络覆盖率准则(神经元覆盖率、神经元强激活覆盖率、top-k神经元覆盖率和多网络区域神经元覆盖),自动化地对变异后的数据进行选择和保留,并计算待测模型在不同神经网络覆盖率准则和其保留的变异数据上的覆盖率。待测模型的覆盖率越高,表明测试输入数据越多样。该系统通过神经网络覆盖率准则指导变异数据的生成,为测试输入生成提供了针对性的指导。本发明的语音智能模型测试数据生成系统,能够提升测试数据的多样性,保证语音智能模型测试的充分性,以尽可能多的暴露被测模型的潜在安全缺陷。