郭颖奇,付 佳,何 飞,何 凌,莫思特

(四川大学 电气信息学院,四川 成都 610065)

0 引 言

情感计算是指赋予计算机类似于人一样的观察、理解和生成各种情感的能力。美国MIT 的Picard 教授于1997年提出情感计算的概念,其专著“Affective Computing”中指出情感计算是与情感相关,来源于情感或能够对情感施加影响的计算。而中国科学院自动化研究所的胡包刚等人则对情感计算提出了自己的定义[1]:“情感计算是通过赋予计算机识别、理解、表达和适应人类的情感的能力来建立和谐人机环境,并使计算机具有更高的、全面的智能的计算技术”。

基于前人的理论,本文通过对情绪识别电路的研究和设计,实现情感计算的数值化和程序化,进而为建立一个友好的、人性化的人机互动系统打下基础。

1 语音情感计算的研究现状

目前,有关情绪识别的研究已经相对较多。MIT 开发的情感机器人通过生物传感器和一部记录人脸面部表情的摄像机采集数据,然后由“情感助理”调节程序对采集数据进行相应处理,最后达到识别人情感的功能[2]。IBM 公司研制的情感鼠标则可以根据手部的血压计温度等传感器感知用户的情感[3]。中国科学院计算技术研究所王兆其正从事虚拟人表情和动作的研究。中科院计算所高文教授研究方向是多功能感知技术[4]。然而,这些研究很少是利用语音特征来实现情绪识别的。

本文基于对语音特征的研究分析,提出一种语音情感计算的情绪识别电路设计方案。该电路通过对语音信号的情感计算,实现情绪识别、同步分析和判断情绪状态等功能。根据情绪波动状况,在判定为激动或痛苦时发出警报,为有效地避免疾病发作时无法得到及时救治的情况发生提供可能。

2 理论研究及设计原理分析

2.1 基于情绪状态的语音特征研究

大部分的汉语发音由声母与韵母组成,少数的可直接由单字母发音,如:“鹅”“啊”等单音节字。声母与韵母的发音在声学上又被称为清音与浊音(汉语发音在声学上被分为清音与浊音),两者在时域与频域上都有不同的特征。浊音发声时声带发生振动,产生相较于清音更高的时域波形幅值,且具有周期特性。这种由声带振动所引起的周期性称为基音周期。不同年龄阶段的人群基频范围不同,其基音周期具有较宽的范围值如表1所示,且同一人在不同情态下发音的基音周期也不尽相同[5]。

表1 不同人群的基频范围表Table 1 Basic frequency range of different groups

文献[6]介绍了基音、能量算子、声道特征、语音能量等参数的计算方法,并进一步说明当情绪变化时这些参数的变化规律。表2为基频随着情绪变化的变化趋势表。本文利用该特性,以同一人为研究对象,以基音周期的变化为切入点来进行情感计算和仿真分析。基音周期T作为基频f的倒数,即T=1/f。通过检测基音周期的变化,就能反映出人说话时的基音频率的变化。由表1可以看出不同的群体在不同情绪状态下的语音特征值是不完全重合的,因此,本文通过检测单位时间内的基音周期数目来确定说话者的情绪状态。

2.2 基于情感计算的电路设计原理

本电路设计的关键点在于能够判别出基音周期随情绪的变化,并将该变化通过可见的形式呈现。设计流程框图如图1所示。

本设计主要原理包括以下两部分:一是利用浊音段波形的周期特性,将每一个周期波形通过特定电路转换为矩形波;其次是利用计数电路对单位时间间隔内的矩形波进行计数,通过计数值的分析来反映情绪变化。

表2 情绪基频变化趋势表Table 2 Change trend of emotion basic frequency of different groups

图1 设计思路图Fig.1 Flow chart of design thinking

3 电路设计与实现方式

3.1 硬件结构设计

该语音情感计算电路包括信号采集电路、低通滤波电路、A/D 转换电路、数值比较器、单片机、乘法器、D/A转换电路、幅值比较电路,报警装置等部分。

工作原理为:语音信号实时采集电路采集语音,通过低通滤波器滤除高频率成分的噪音,滤波后的语音信号通过A/D 转换,A/D 转换电路输出端连接到单片机,由单片机对输出值进行存储,并利用数值比较器找出一段语音中的最大幅值。该值经过乘法器后输出作为后续电路中比较器电路的阈值。后续输入的语音信号将根据该幅值进行高低电平的转换,得到的矩形波用于驱动计数器计数,该计数器用74LS161 芯片进行设计。报警装置为蜂鸣器或者显示屏,即当计数值不在范围内时,系统发出警示音或是屏幕闪烁。各模块连接关系如图2所示。

图2 功能模块图Fig.2 Connection diagram of function modules

3.2 信号采集电路

信号采集电路用于语音信号的采集如图3所示。电路中的麦克风通过感受空气中音频的振动来采集语音信号,再通过电容耦合将语音信号转换成可用于分析的电信号。信号采集前端还优选通过固定的增益较小的电路来提高电路的输入阻抗,使信号采集更加有效。通过此信号采集模块可以实时高效地采集语音信号,为后续的情感计算提供数据准备。

3.3 低通滤波电路

为了消除信号采集过程中外界环境噪声对语音信号的干扰,对语音信号中的高频成分进行滤除。一般情况下,噪声的频率较高且符合高斯分布。文献[7]实验表明,语音频段在300~3 400 Hz 时已经能够很好地表达语音的信息。根据对实际语音特点的研究分析,本电路通过对截止频率为3.4 kHz 低通滤波器的设计,滤除高频信号成分,从而达到去除噪声的目的。

3.4 单片机

本文利用单片机对语音信号进行A/D 转换后的输出值进行存储,将存储值与数值比较器的阈值进行比较,转换成0/1 数值。通过对0/1 或1/0 的转换次数进行计数,单片机决定是否发出警报信号。

本设计使用的单片机型号选用MSP430F169,由于该型单片机具有超低功耗的特性,具有12 位的A/D 和D/A 转换功能,且具有可编程功能,同时又能满足存储要求,具备阈值设定功能和乘法器电路,总体符合设计需要。

3.5 数值比较器

在阈值设定完成后,需要对A/D 转换后的数值与该阈值进行比较处理,获取浊音段的基音周期的长短。高于阈值的数值经过数值比较器后输出高电平,而低于阈值的数值经过数值比较器后输出低电平。输出的高低电平在波形上即为一个个的矩形波,这些串联的矩形波代表的即为语音段中的浊音段。当人的语速较快时,基音周期减小,基音频率变大,单位时间内出现矩形波的次数就会较多;反之则周期变大,频率减小,单位时间内矩形波的个数也会相应减少。设计采用运算放大器TL082 来构成幅值比较器,经过图4所示的幅值比较电路转换成矩形波。

图4 幅值比较电路Fig.4 Amplitude comparison circuit

3.6 计数器电路及报警装置

当幅值比较器输出的矩形波进入计数器时,计数器开始计数。计数器电路中利用两块74LS161 芯片进行计数计算,通过七段数码显示管显示当前计数值。此处的驱动方波由函数发生器产生,方波信号输入频率为10 Hz,100 Hz,1 000 Hz。计数器开始计数后,随着频率的增加,计数器计数与之同步,能满足运算要求。实际操作过程中,单片机可以通过软件编程实现自动计数的功能。图5为计数电路的设计图以及当前计数显示。

图5 计数电路图Fig.5 Circuit diagram of counting

为了验证电路设计的正确性与可行性,下面将通过Multisim 软件的仿真实验对电路进行测试。

4 语音情绪识别电路在Multisim中的仿真测试

本实验参照祝宇虹等对语音基音周期分析时样本的选择,选取诱导方式对语音进行录制[8]。选用录音脚本如:“你好”“不知道”“这件事是谁告诉你的”等。测试者以不同的情绪读出这些语音,然后输入系统利用仿真实验进行基频分析,并得出相关波形加以分析。

4.1 汉字浊音段的仿真模拟

在对语音信号特点进行分析的基础上,设计语音模拟电路。该电路产生的模拟信号作为整个情感计算系统的输入信号。根据傅里叶定律,每个时域信号都可以看作是无限个正弦信号叠加而成的浊音信号。6 个正弦信号叠加可模拟一个实际环境中采集的语音信号(含噪声),对应的频率和幅值范围分别是100 Hz~10 kHz和5~14 mV。

4.2 低通滤波器仿真

由于语音信号相对噪声频率较低,为了有效滤除高频噪声且保证语音信号本身免受干扰,需要将低通滤波器的-3 dB 截止频率设定在3.4 kHz 附近。本实验中选用OPAMP_3T_VIRTUAL 运算放大器来进行低通滤波器的设计。仿真电路图如图6所示。

图6 低通滤波器仿真电路Fig.6 Simulation circuit of low pass filter

4.3 幅值比较仿真

对于不同的人,说话的声音本身有所差异,因此阈值的设定也应当有所不同。有研究表明[9],清音段的幅值小于浊音段的幅值,且人的语音具有随机性和非平稳性。在人说话时,话语中的最大幅值的0.3~0.5 可以用来区分清音段和浊音段,大于这个范围的为浊音段,小于的则为清音段。因此,本实验对低通滤波后的信号,每隔2 s 取一次值,将这些值中的最大值的0.4 作为判断清浊音的阈值,进而去除语音中的清音段。该仿真实验证明了将浊音段的波形转换为矩形波可行,并为下一步计数提供了基础信号。

4.4 计数电路仿真

实验中通过对单位时间内矩形波进行计数,在这里单位时间间隔为3 s,将计数器的结果除以3,就可以得到浊音段的基音频率数值。在实际使用中提供参考阈值,使用者可根据自身情况进行数值报警阈值设置。计数模块的仿真电路与原理部分的设计电路相同,表3是针对同一正常成年人不同情绪下的语音仿真实验计数结果。

4.5 实验结果分析

正常情况下,人的基音频率的范围为60~500 Hz。实验对多批次不同人群进行了仿真实验,分析结果可得到单位时间间隔内情绪波动数值的参考范围。3 s 内儿童发声计数超过1 200 次则为情绪激动即启动报警;成人3 s 内超过900 次即启动报警;老年人3 s 内超过690 次则启动报警等。在实际使用中该报警阈值可根据语音特点进行调整。

表3 语音仿真实验计数结果表Table 3 Counting results of speech simulation experiment

5 结 语

根据人的语速会受到心情的影响而发生变化,以及汉字中浊音部分基音周期会随说话者语速变化而发生相应变化的特点,本文对基于语音情感计算进行了深入研究和电路设计。在充分考虑语音的特性以后,对电路各个模块进行了仿真设计,仿真结果表明电路的设计正确可行。它能够实时采集语音并进行情感计算,响应速度快,满足人们对情绪实时监控的需求,特别是对那些情绪不能有太大波动的心脏病患者或是一些典型的心理疾病患者,在发病时发出及时的求救信号,具有一定的实际应用价值。