In this section, one real-world implementation of the SCF is presented, including all of the SCF’s requirements for a completely automated sleep communication.
What does "Sleeator" stand for?
The software of this implementation is called “Sleeator 2”, which is a short version for “SLEEpCommunicATOR”. The version number is 2 already because the software architecture and design were completely reprogrammed from scratch during the development process in order to improve the performance.
Which hardware is used in this implementation of the SCF?
Hardware devices used are the Zeo (for details, see below), and ordinary speakers (see below).
Which features does the Sleeator have?
The main purpose of the Sleeator 2 developed here is to supply a real-world implementation to enable the user to communicate during sleep. The Sleeator 2 includes all necessary technologies for automated communication both from wake world to sleep world and from sleep world to wake world: a real-time REM sleep detector, a stimulus generator for sending messages from wake world to sleep world, a real-time eye movement detector and message decoder and a graphical user interface for setting all necessary parameters such as the stimulus intensity.
Are there additional tools included?
Moreover, it includes additional tools and settings for recording, visualizing, simplifying and optimizing the process of sleep communication, such as: direct recording of EEG data to a SQL database preventing data loss, a replay mode for recorded data, a simulation mode for simulating a signal for testing purposes, automatic live visualization tools for the raw EEG data and its Fourier transform including multiple adjustable filters, adjustable and trainable machine learning algorithms (k-nearest neighbor, feed-forward artificial neural network, support vector machines, threshold classifiers and more) for REM detection and eye movement message detection, the possibility to use multiple REM and/or eye movement message detectors simultaneously, logging possibilities, automatic stimulus playback with modifiable REM waiting time and other adjustable parameters, advanced stimulus control such as stimulus pausing for x seconds capabilities, an action interface allowing to execute various commands according to the detected eye movements messages such as stimulus control.
Is fully automated sleep communication possible using the Sleeator?
Since the Sleeator 2 is equipped with automatic REM detectors, automatic stimulus generation methods and automatic eye movement detectors, it is possible to use the software for completely automated sleep communication on one's own and for self-experiments without the need for additional people around. Of course, sleep communication with a computer as implemented by the Sleeator 2 might not be as interesting as with a human, but for future applications of sleep communication this might be an interesting feature (compare chapter 7 on future prospects).
How is it programmed and where can I get the code?
The software consists of several thousand lines of Python code (without the imported standard libraries). It would go beyond the scope of this website (and the reader's interest) to describe the whole software or its code in detail. Hence, the description below will focus on the most important features of the software. For more details, the interested reader is referred to the code directly which will be downloadable soon. In case of unclarities of what an element in the GUI is useful for, there have been implemented extensive tool tips for many GUI elements, so hovering about an unclear element with the mouse will give additional information on its function, too.
Work on an executable file is in progress, but can take some more time.
How is the Sleeator structured?
The Sleeator 2 is structured into different tabs. The first tab deals with connection to the recording, visualization of the raw signal and of its Fourier transform, and offers a database reset option. The second and third tabs enable the user to modify, retrain and save the REM and eye movement detectors. On the fourth tab, details for sending messages from wake world to dream world can be specified, and similarly, on the fifth tab, details for messaging from sleep world to wake world.
If all necessary Python libraries are installed and the Zeo is connected to the computer, starting a sleep communication is very simple, as illustrated below.