基于Matlab的语音情感特征值研究

2018-07-27 12:23李文琴尚雨琪
实验室研究与探索 2018年7期
关键词:基音客服差值

李文琴, 尚雨琪, 张 巍

(西安科技大学 管理学院, 西安 710054)

0 引 言

客户满意度理论已逐渐成为现代经营思维或营销实践中的重要中心理论之一[1]。虽然客户传统上被视为企业服务和产品消费的接受者或消费者,但是企业家和一些学者们都认同企业需要与客户建立更多的合作关系[2]。不仅如此,人们也开始逐渐意识到自身与企业之间的关系性质正在发生着某些变化。企业若要实现自身的优势性经营从而提升在市场中的竞争力,则需要发现和消除客户满意度低的根源,更加重视客户满意度的影响作用。与此同时,客户满意度的提升也促进了企业利润的提升[3]。网络购物与传统的商业模式有着很大的不同,其客户满意度受诸多因素的影响,通常较低。网络购物的客户满意度受商家服务态度的影响较大,而且客服语音对话中常常充斥着各种矛盾,双方情绪的不协调和不稳定更是加剧了矛盾的升级。因此,对于电商来说,在现有的客服语音服务系统中建立语音分析系统有助于企业在提高自身服务感知的同时便于信息的统计。

基于此,以我校京东校园实训中心作为研究对象,进行实地调研来深入了解其客服语音服务的现状。通过文献阅读以及资料搜查,并结合实训中心自身的特点,建立了分析客服服务语音录音的Matlab程序编程。量化客服语音情感值得到与之相对应的最大值、最小值与均值,便于研究语音差值、语音均值和客户满意之间的关系。

1 语音信号预处理

在对语音信号特征采集之前不可避免地需要对语音信号进行预处理来方便后续语音信号的采集处理工作。其目的不仅在于对传输或储存的语音信号重要特征参数的提取,也在于对特征参数的运算处理来达到某种用途要求[4]。

1.1 采样和量化

人类的语音信号不管在时间上还是在振幅上都是连续的模拟信号,而计算机处理的音频数据只能是时间和振幅都是离散的数字信号。因此,就需要把语音信号进行采样和量化来实现计算机处理的需求,这个过程即语音信号的数字化。

根据国际电报电话咨询委员会(Consultative Committee for International Telegraph and Telephone,CCITT)提出的 G.711标准[5],提倡语音信号的采样频率选择8 kHz或者16 kHz。与英语发音相比,汉语发音时的音节转换相对比较缓慢,鉴于此,选取8 kHz为本文所用的语音采样频率。

1.2 短时加窗处理

人们在发音时其共振峰的位置以及口腔形状也在不断地发生着变化,这些因素也都会对语音信号的采集产生影响。那么,所得到的语音信号即为在时间上不断发生变化的非稳定信号,而现行的语音数字处理技术并不能直接对其进行转换分析。但是,人们发音时口腔肌肉的变形相对比较缓慢。相对于语音信号频率的变化,口腔肌肉的变形频率就小很多了。一般认为在10~30 ms之间的这一段时间内[6]语音信号的参数基本上是相对稳定的,则认为该时间段内,缓慢的口腔肌肉形状变化可以忽略不计,视其为固定口型,不计其对语音信号产生的影响。

通常一帧的持续时间大致为10~30 ms,该段持续时长即为帧长。帧长不仅会对信号的滤波作用产生影响,同时也会对后续基音周期的计算产生着某种影响作用[7]。现有计算基音的方法中,不管是小波变换法还是自相关分析法,所选取的最优帧长均为20 ms[8]。对语音信号来说,无论是时域分析还是频域分析,都需要按帧对语音信号进行分解处理。实现语音信号的分解,并成为间隔开来的短时平稳信号,需要窗函数持续平稳地在语音信号上滑过。语音信号在每帧间隙处会有突变情况的产生,为了避免产生过大突变,就需要采用前一帧函数与后一帧函数交叠的方式来对这种突变进行平缓处理。该交叠的部分即为帧移,表示每帧窗函数相对于前一帧窗函数所前进的距离。同时,帧长一般为窗长的一半[9]。帧长与帧移间的关系如图1所示。

图1 帧长与帧移关系图示

(1) 窗口形状的选择。不管是矩形窗函数还是汉明窗函数,都是目前最常用的窗函数,其中, 矩形窗形状可以表示为:

(1)

式中:N为采样点个数(一帧内);n为当前采样点的排序。

由式(1)可以得出,矩形窗函数将语音信号一帧内所有的语音信号值均视为等同,并没有突出语音信号之间的变化趋势。

汉明窗形状可以表示为:

(2)

对比式(1)和式(2)可以得出,汉明窗函数不同于矩形窗函数,并没有忽略语音信号之间的变化趋势,而是将信号进行区别对待。

通常来说,窗函数的作用是为了方便语音信号的低通滤波处理[10]。只是不同的窗函数的窗口形状也不同,所以对语音信号进行的滤波处理所产生的效果也就截然不同[11]。表1为1s时间内矩形窗函数参数和汉明窗函数参数的对比比较,更为清楚地展示了两种窗函数之间的区别。

表1 参数对比比较

由表1可以得出,汉明窗函数的主瓣宽度约为矩形窗函数主瓣宽度的2倍,较大的主瓣宽度保证了对语音帧两端变化坡度的减缓效果。而且汉明窗函数的旁瓣高度较矩形窗函数又较低,这也更加有效地阻止了语音信号的泄露。另外,窗函数形状的不同也会对后续所要计算的语音平均能量值产生一定的影响。语音短时能量值不断发生着变化,汉明窗函数可以很敏锐地追踪短时能量值的变化并记录其变化趋势[12],一定程度上,还可以对能量的起伏起到很好的平缓作用。当语音信号的突变处在一个变化周期内时,汉明窗也可以对语音的振幅进行有效的平滑处理,从而方便准确地对语音信号进行分析[13]。

(2) 窗长的选择。语音信号的变化十分灵活,窗函数是否能够敏锐地追踪语音信号的变化趋势也受到窗长的影响作用。

由图2的趋势对比可以看出,如果N的取值过小,滤波之后的函数变化趋势明显过于缓慢,且很长一段时间,所有的语音信号值也是基本相同的。这时,取值过小的窗长并不能及时追踪原始语音信号的变化,且严重滞后于原始语音信号的变化;如果N的取值过大,即使原始语音出现特别微小的变化也会被反映出来,丝毫没有起到一定的滤波作用,也不利于语音信号后续的分析和处理。因此,窗长的不同选择会带来截然不同的滤波效果。另外,人类的语音基音频率变化通常处于80~500 Hz之间,周期变化处于2~12.5 ms之间。

图2 窗长产生的影响作用

基音周期的计算过程中,语音发音所产生的阻尼振动导致了自相关函数采集图形的凹凸不平,具体如图3所示。此时,若使用图像输出中出现的第一个峰值点来计算得到基音的周期往往是不准确的。为了得到准确的基音周期则需要继续寻找能够使得基音周期清晰存在的自相关函数突起,相应地,每个语音帧周期内必然需要包含多个基音周期。一个语音帧周期内通常含有3~6个基音周期[14],不同人的基音周期也有差别,而且不管是男女之间的基音周期还是老幼之间的基音周期都有着很大的不同[15],这就导致了采样点在20~250范围内的不等。例如,采样频率为8 Hz时,那么对应的N的取值通常就处于100~250之间,且持续时间处于10~20 ms之间。本文选用的窗函数N值为200。

窗函数选择好之后,还需要对语音信号进行某种变换处理,如平方变换、取绝对值变换等来实现语音信号特征值的采集。

每帧处理以后的输出函数为:

(3)

式中:Qn为函数输出表达;X(m)为第n处的语音信号函数;ω(n)为窗函数序列;T为对信号实施的某种变换处理。

2 语音信号的特征值提取

2.1 短时能量计算

短时能量计算流程如图4所示。

图4 短时能量处理计算流程

定义某语音信号n时刻的短时平均能量En,则有:

(4)

式中:h(n)=ω2(n)为语音音频信号的平方经过单位冲击响应为h(n)的线性滤波输出。

分割后为N帧的语音信号,每一帧数据均可求得与之相对应的短时能量值,并将其放置于短时能量矩阵Energy(i)中,直至得到完整的短时能量矩阵。遍历最后得出完整的短时能量矩阵Energy中的最小值和最大值即分别为相对应的语音短时能量最小值和最大值。

2.2 节拍计算

(1) 包络信号的提取。原始的语音信号包络并不平滑,能量最大值处又存在多个峰值点,而且,局部极值的现象又很普遍。因此,采用高斯滤波对其进行处理:

(5)

式中:σ2为方差。

如果对式(5)的语信号的所有数据点都进行滤波处理,则会涉及到大量的指数和浮点数的运算,这就严重影响了算法的实时性。合适平滑参数的选取,使得连续高斯滤波函数离散化和归一化,得到一维高斯滤波模板。一维高斯滤波模板可以有效地在对所有的语音信号进行平滑处理,并进行多次的迭代运算[16]。语音信号数据中常存在着多个峰值点和局部极值点的现象,一维高斯滤波模板很大程度上去除了数据中的多峰值点和局部极值,而且也为后续的峰值点检测提供了便利。

(2) 峰值点检测。演奏乐曲时,为保证乐曲的优美性,乐曲节奏通常不会超过240拍/min,即每秒不会多于4个节拍。由于语音信号数据的变化具有灵活性,在峰值点检测时,如若某点为峰值点,则该点两侧至少有20个小于它的语音信号包络数据。否则,该点不为峰值点。具体检测过程如下:

① 设包络数据为N(i),i的起始值为20。

② 从N(i-20)至N(i+20)依次检查各语音数据,同时记录该过程中的最小值(min)。如若这些数据中存在着大于N(i)的数据值,则当前点不是峰值点,停止遍历;此时,i=i+1,重新开始过程②,继续检测下一个数据。

③ 如果N(i-20)到N(i+20)之间的数据均小于N(i),且abs(N(i)-min)>T,那么N(i)即为峰值点,并记录该点的位置。由于下一个峰值点和当前峰值点的距离一定大于20,且有i=i+20,则继续执行过程②;如果abs(N(i)-min)≤T,那么N(i)为局部极值点而非峰值点,则有i=i+1,并重新开始执行过程②。(式中T是为了进一步排除局部极值点所设的阈值。)

④ 当i与语音信号包络数据末端处数据值之间的距离小于20时,则峰值检测过程结束。

(3) 特征值计算。由峰值点检测将节拍起音时刻序列转化成节拍持续时间序列,其中节拍值tempo与拍周期Tbpm之间的关系如下:

tempo=60/Tbpm

采样率为fs,有tempo=60×fs/Tn。式中,Tn=Tbpm×fs。

式中,Tn=Tbpm×fs。

那么,在峰值间隔最小位置处,即可求得tempo的最大值;峰值间隔最大的位置处即可求到tempo的最小值。又有,相邻节拍点之间的时间差为DS(Duration Sequence),即:

DS=相邻节拍点时间差(s)

平均速度tempo的计算:

(6)

式中:n为DS序列中的节拍点数量。

3 材料处理与分析

选取京东校园实训中心语音数据库中高客户满意度和低客户满意度的语音录音各60组(语音选取周期为15组/周,共计4周)。并将语音录音按客户满意度的评价等级进行汇总整理。具体为“非常满意=5”,“满意=4”,“一般=3”,“不满意=2”“非常不满意=1”(高满意度组:非常满意、满意;低满意度组:一般、不满意、非常不满意)。本文主要在于分析高客户满意度和低客户满意度之间的差异性,选取语音时,并没有计入客户满意度评价为“满意”的客服语音录音。

利用建立的Matlab语音分析系统,逐个分析计算出各个语音录音中的语音特征值:节拍均值、节拍最大值、节拍最小值、短时能量均值、短时能量最大值、短时能量最小值,并将这120组数据进行汇总整理,之后进行节拍均值、节拍差值与客户满意度以及短时能量均值、短时能量差值与客户满意度之间的方差分析和相关性分析。

(1) 方差分析。分析高客户满意度组和低客户满意度组的语音特征值是否有差异性。具体如表1所示。

单因素ANONA分析(One-Way Analysis of Variance)结果显示:评价尺度为“非常满意”的客服语音节拍差值与评价尺度为“一般”“不满意”“非常不满意”的客服语音节拍差值有着显著性差异,且评价尺度为“一般”“不满意”“非常不满意”的客服语音节拍差值之间的差异性并不明显。

同理,评价尺度为“非常满意”的客服语音短时能量差值与评价尺度为“一般”“不满意”“非常不满意”的客服语音短时能量差值间有着显著性的差异,且评价尺度为“一般”“不满意”“非常不满意”间的客服语音短时能量差值差异性并不显著;评价尺度为“非常满意”的客服语音短时能量均值与评价尺度为“一般”“不满意”“非常不满意”的客服语音短时能量均值间有着显著性的差异,且评价尺度为“一般”“不满意”“非常不满意”间的客服语音短时能量均值的差异性并不显著。

但是,评价尺度为“非常满意”的客服语音节拍均值与评价尺度为“一般”“不满意”“非常不满意”的客服语音节拍均值之间的差异并不显著。

表1 客户满意度方差分析(节拍差值)

注:*P<0.05

(2) 相关性分析。分析客服语音特征值:节拍差值、节拍均值、短时能量差值、短时能量均值与客户满意度之间的相关关系。具体如下表2所示。

表2 相关性关系表

注:*P<0.05,**P<0.01

相关性分析结果显示:节拍差值、短时能量差值、短时能量均值均与客户满意度有着显著的负相关关系。也就是说在一定范围内随着节拍差值、短时能量差值、短时能量均值的增加,客户满意度是呈递减趋势的。

4 结 语

语音分析减少了语音信息数据在每次客服语音服务过程中的流失,方便了客服语音服务信息反馈的获取和服务规范的管理。将大量客服与客户交互过程的录音从闲置的语音录音库中归类整理出来,建立语音分析系统来进行语音情感值的量化,分析研究了其与客户满意度之间的关系。结果表明,语音节拍均值与客户满意度之间的相关关系并不显著;语音短时能量差值、语音短时能量均值和语音节拍差值均与客户满意度有着显著的负相关关系,如:语音服务过程中,一定范围内随着客服语音节拍差值的增加,其所对应的客户满意度就会有所降低。该结论为客服人员通过控制自身语音特征值的方式提高客户满意度提供了一定的参考价值,而且客户满意度的提升同时也有利于电商企业经济效益的提升和实现优势性经营。

猜你喜欢
基音客服差值
差值法巧求刚体转动惯量
语音推销
基于多分类支持向量机和主体延伸法的基音检测算法
基于基音跟踪的语音增强研究
敬业的客服
枳壳及其炮制品色差值与化学成分的相关性
一种基音周期检测中减小中值平滑误差的方法
基于广东“一张网”对内客服模式的探讨
销售能手
差值扩展算法嵌入容量的研究与改进