微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于TTS技术和脑电采集设备的精神疲劳实验系统设计

基于TTS技术和脑电采集设备的精神疲劳实验系统设计

时间:05-18 来源:互联网 点击:

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技术和脑电采集设备设计并实现了精神疲劳实验系统,同以往的精神疲劳实验系统相比,有明显的优势。相较于固定的听觉操作命令,本系统的实现过程更加灵活,可把随机生成的一个文本等式朗读出来。并且,可根据受试者的反馈或实验需要自由调整实验难度。实验证明,这种情况下得到的操作正确率和反应时间,对疲劳状态的标定更加准确,为后续精神疲劳的研究奠定了一定的基础。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top