- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TTS技术和脑电采集设备的精神疲劳实验系统设计与实现
摘要:在精神疲劳研究中,能客观地反映精神疲劳状态的实验系统是研究的基础。本文基于语音合成技术TTS,结合脑电采集设备,利用Micmsoft Speech SDK语音开发包、TTS引擎和微软MFC基础类库,在VC++环境下设计并实现了精神疲劳实验系统。实验结果表明,将TTS技术应用于精神疲劳实验系统,大大提高了实验的灵活性,能实现疲劳状态的准确标定。
关键词:TTS;脑电信号;VC开发环境;精神疲劳状态标定;Microsoft Speech SDK
精神疲劳是现代社会中的重要问题,严重影响了人们的生命和健康。在交通驾驶、航天航空、实时监控、高风险作业等行业,许多事故的发生都与精神疲劳有关,因此,对精神疲劳的分析及评价就显得非常必要。
自对疲劳进行研究以来,精神疲劳的测定经历了生理生化法、主观评定法、生理反应测定法等方法。这些传统方法因有很大的局限性而很难做到客观和定量化。随着现代电子技术和医学信号检测与处理技术的发展,基于生理参数信号(脑电信号、心电信号等)的精神疲劳测定技术的研究受到越来越多的关注。
在精神疲劳的研究中,受试者的精神疲劳状态一般通过不同的精神疲劳实验来产生,并对相应的精神疲劳状态进行量化标定。其中,让受试者进行某种作业,通过统计每次的完成时间或成功率来对受试者的疲劳状态进行标定是一种广泛采用的方法。Atsuo Murata等在其研究中让受试者根据CRT显示的两个三位数做加法,根据其完成时间和正确率给出疲劳状态的标定,该方法中,受试者对计算机给出的操作命令需要经过一定的心算或者判断过程来完成。文献中通过听觉操作命令为实验任务的方法,在按一定时间间隔播放的声音序列中,随机插入动作命令集合(上下左右)中的某一个,受试者听到声音命令后按下键盘上预先设定好的键,依据受试者操作正确率来标定其疲劳状态。随着实验进行受试者精神达到一定疲劳状态,由于操作命令相对简单,这种情况下,依照操作正确率标定的疲劳状态不能准确反映受试者的疲劳状态。本文采用基于脑电信号的精神疲劳测定技术,将TTS技术应用到精神疲劳实验系统中,尝试通过控制大脑认知问题的难度来提高精神疲劳实验的可控性,为后续精神疲劳的研究提供更可信有效的数据。
1 实验系统总体设计
1.1 实验系统总体设计思路
TTS技术,又称文语转换技术,它是将计算机自己产生的或外部输入的文字信息转换为能被人理解的、流利的语言输出的技术。Microso ft Speech SDK 5.1全面支持中文语音应用程序的开发。SDK中的底层协议都以COM组件的形式完全独立于应用程序层,语音相关的工作由COM组件来完成,程序员只需根据应用程序的需要调用相关的语音应用程序接口(SAPI)就可以实现语音功能。通过编制相应的软件程序,调用Microsoft Speech SDK 5.1的动态链接库,利用系统中安装的TTS引擎将精神疲劳实验中随机生成的一个等式判断命令语句由文本转换为语音读出来,受试者以听觉判断命令为实验任务,同时由脑电采集设备采集脑电信号,然后根据受试者完成作业的质量对相应脑电信号数据进行疲劳状态的定量标定。
基于TTS技术和脑电采集设备的精神疲劳实验系统的总体设计流程如图1所示。
1.2 硬件配置及开发环境
硬件配置条件:
1)计算机
实验用标准配置计算机一台,另有耳塞式耳机或音箱。
2)脑电信号采集设备
脑电信号的采集要通过专用的仪器设备完成,以实现安全、有效、可靠的获取人的脑电信号数据供进一步的分析处理。脑电采集设备种类繁多,文中使用由g.tec公司生产的g.USBamp信号放大采集设备,电极位置按照国际10—20标准导联系统的电极安放,详细电极位置见文献。
开发环境配置条件:
软件运行环境为Win7系统,安装有Microsoft Simplified Chinese语音引擎,开发工具为VC6.0。
2 实验系统各模块设计与实现
本实验系统的目的是完成标定有相应精神疲劳状态的脑电信号数据的采集存储,实验系统主要包括两个部分:脑电采集和听警觉作业。
脑电采集是通过脑电采集设备完成对受试者脑电信号的采集,听警觉作业是让受试者对听到的判断命令进行判断选择,同时系统会记下受试者每次选择判断的时间和正误,最后依据作业完成质量对疲劳状态进行量化标定。实验首先进行脑电信号的采集,在脑电信号开始采集的初始阶段,只采集受试者的脑电信号,直到听警觉作业开始的同时才进行脑电数据的存储。这样即丢弃了开始采集脑电信号时因设备不稳定而获取的不准确数据,同时保证了存储下来的数据是受试者在作业过程中的脑电信号数据。这两部分工作分别由2个线程来完成。
2.1 脑电采集模块
脑电信号采集部分由数据采集线程来完成,其主要实现过程如图2所示。
m_EEGRunFlag为数据采集状态标志,开始脑电采集后,开启脑电数据采集线程。脑电信号的获取是由g.tec公司提供的API函数编程实现的,创建overlapped结构事件对象的目的是避免阻塞线程,系统调用获取数据的函数时可以立即返回,但是直到overlapped结构中事件被触发数据才是有效的,用WaitForSingleObject()函数来判断数据传输是否结束,用GetOvedappedResuk()函数来检索获取的有效字节数目。此时在线程中只获取而不存储脑电数据,直到m_RunFlag为TRUE才开始脑电数据的存储。
2.2 听警觉作业模块
听警觉作业部分由作业线程来完成,其主要实现过程如图3所示。
m_RunFlag为听警觉作业状态标志,开始作业后,开启作业线程。开始听警觉作业的同时开始数据采集线程中数据的存储。受试者听到声音后,对判断命令进行选择判断,两次朗读判断命令时间间隔由定时器控制,受试者操作结束后,等待定时器被触发系统朗读下一次判断命令。当判断命令达到50次时,m_RunFlag置为FAISE,同时数据采集线程中不再存储数据,保存受试者作业信息,作业线程结束。其中,TTS朗读判断命令和受试者选择操作的实现过程如图4所示。
a、b、c为随机生成的整数,a、b、c的范围可自由调整,通过调整a、b的范围可以调整作业的复杂度,图4中选择进行20以内整数的加法。c由a、b随机得到,最终生成的文本内容可能正确可能错误(如:可能是3+5=8或者15+7=19)。受试者在听到判断命令后,经过心算判断系统读出的判断命令的正误,然后按下键盘上预先设定好的键(如:错误按←,正确按→)。受试者在听到判断命令后的1.5 s内按键视为有效操作,如果受试者没有在有效时间内按键或者没有按键视为此次操作错误。如果判断正确,对应正确操作次数m_Tnum加1。
2.3 实验系统实现
基于以上实验系统各个模块实现,利用微软MFC基础类库,添加相应控件,编写代码,生成精神疲劳实验系统界面如图5所示。
每次实验设定50次判断命令任务,在一天中的不同时刻重复进行实验。每次实验结束后,受试者在实验中的按键正确率和反应时间都被记录下来。总的实验结束后,统计受试者在各次实验中的按键正确率和反应时间(平均反应时间),求出正确率和反应时间的比值,记为RT,根据这个比值大小确定精神疲劳状态。具体来讲,对每一个受试者,将个人RT的范围(最大值到最小值)平均分为5个部分,分别对应疲劳状态1到5。受试者每次实验对应的疲劳状态分别由RT的值落在哪个范围来确定,至此完成了脑电信号数据对应精神疲劳状态的标定。
3 实验系统部分关键技术实现
文中使用文语转换技术TTS。用听警觉作业设计实验来标定受试者精神疲劳状态时,通常需要加入预先设定好的声音命令。将TTS技术应用到精神疲劳实验系统中,通过调用TTS引擎,将文本内容用近似于人的声音“读”出来,系统不需要大量声音文件的支持,并且,TTS引擎只有几兆字节,因此,它可以节省很大的存储空间。
TTS关键实现代码如下:
4 结论
文中利用TTS技术和脑电采集设备设计并实现了精神疲劳实验系统,同以往的精神疲劳实验系统相比,有明显的优势。相较于固定的听觉操作命令,本系统的实现过程更加灵活,可把随机生成的一个文本等式朗读出来。并且,可根据受试者的反馈或实验需要自由调整实验难度。实验证明,这种情况下得到的操作正确率和反应时间,对疲劳状态的标定更加准确,为后续精神疲劳的研究奠定了一定的基础。
上一篇:Si87xx的CMTI性能测量
下一篇:基于USB摄像头的高速
像采集技术