基于TTS技術(shù)和腦電采集設(shè)備的精神疲勞實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)
2.1 腦電采集模塊
腦電信號采集部分由數(shù)據(jù)采集線程來完成,其主要實(shí)現(xiàn)過程如圖2所示。本文引用地址:http://www.ex-cimer.com/article/192784.htm
m_EEGRunFlag為數(shù)據(jù)采集狀態(tài)標(biāo)志,開始腦電采集后,開啟腦電數(shù)據(jù)采集線程。腦電信號的獲取是由g.tec公司提供的API函數(shù)編程實(shí)現(xiàn)的,創(chuàng)建overlapped結(jié)構(gòu)事件對象的目的是避免阻塞線程,系統(tǒng)調(diào)用獲取數(shù)據(jù)的函數(shù)時(shí)可以立即返回,但是直到overlapped結(jié)構(gòu)中事件被觸發(fā)數(shù)據(jù)才是有效的,用WaitForSingleObject()函數(shù)來判斷數(shù)據(jù)傳輸是否結(jié)束,用GetOvedappedResuk()函數(shù)來檢索獲取的有效字節(jié)數(shù)目。此時(shí)在線程中只獲取而不存儲(chǔ)腦電數(shù)據(jù),直到m_RunFlag為TRUE才開始腦電數(shù)據(jù)的存儲(chǔ)。
2.2 聽警覺作業(yè)模塊
聽警覺作業(yè)部分由作業(yè)線程來完成,其主要實(shí)現(xiàn)過程如圖3所示。
m_RunFlag為聽警覺作業(yè)狀態(tài)標(biāo)志,開始作業(yè)后,開啟作業(yè)線程。開始聽警覺作業(yè)的同時(shí)開始數(shù)據(jù)采集線程中數(shù)據(jù)的存儲(chǔ)。受試者聽到聲音后,對判斷命令進(jìn)行選擇判斷,兩次朗讀判斷命令時(shí)間間隔由定時(shí)器控制,受試者操作結(jié)束后,等待定時(shí)器被觸發(fā)系統(tǒng)朗讀下一次判斷命令。當(dāng)判斷命令達(dá)到50次時(shí),m_RunFlag置為FAISE,同時(shí)數(shù)據(jù)采集線程中不再存儲(chǔ)數(shù)據(jù),保存受試者作業(yè)信息,作業(yè)線程結(jié)束。其中,TTS朗讀判斷命令和受試者選擇操作的實(shí)現(xiàn)過程如圖4所示。
a、b、c為隨機(jī)生成的整數(shù),a、b、c的范圍可自由調(diào)整,通過調(diào)整a、b的范圍可以調(diào)整作業(yè)的復(fù)雜度,圖4中選擇進(jìn)行20以內(nèi)整數(shù)的加法。c由a、b隨機(jī)得到,最終生成的文本內(nèi)容可能正確可能錯(cuò)誤(如:可能是3+5=8或者15+7=19)。受試者在聽到判斷命令后,經(jīng)過心算判斷系統(tǒng)讀出的判斷命令的正誤,然后按下鍵盤上預(yù)先設(shè)定好的鍵(如:錯(cuò)誤按←,正確按→)。受試者在聽到判斷命令后的1.5 s內(nèi)按鍵視為有效操作,如果受試者沒有在有效時(shí)間內(nèi)按鍵或者沒有按鍵視為此次操作錯(cuò)誤。如果判斷正確,對應(yīng)正確操作次數(shù)m_Tnum加1。
評論