diff --git a/EEG101/android/.idea/misc.xml b/EEG101/android/.idea/misc.xml index ba7052b8..635999df 100644 --- a/EEG101/android/.idea/misc.xml +++ b/EEG101/android/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/EEG101/android/app/build.gradle b/EEG101/android/app/build.gradle index f253ccfa..3530e1aa 100644 --- a/EEG101/android/app/build.gradle +++ b/EEG101/android/app/build.gradle @@ -90,7 +90,7 @@ android { applicationId "com.eeg_project" minSdkVersion 16 targetSdkVersion 25 - versionCode 17 + versionCode 16 versionName "2.0" ndk { abiFilters "armeabi-v7a" diff --git a/EEG101/android/app/src/main/java/com/eeg_project/components/classifier/GaussianNaiveBayesClassifier.java b/EEG101/android/app/src/main/java/com/eeg_project/components/classifier/GaussianNaiveBayesClassifier.java index f66cbdca..7b857d4d 100644 --- a/EEG101/android/app/src/main/java/com/eeg_project/components/classifier/GaussianNaiveBayesClassifier.java +++ b/EEG101/android/app/src/main/java/com/eeg_project/components/classifier/GaussianNaiveBayesClassifier.java @@ -556,6 +556,10 @@ private int argmax(double[] x) { // Returns: // index of the element with the highest value in x + if(x.length <= 1){ + return 0; + } + double max = x[0]; int maxInd = 0; for (int i = 1; i < x.length; i++) { diff --git a/EEG101/android/app/src/main/java/com/eeg_project/components/signal/NoiseDetector.java b/EEG101/android/app/src/main/java/com/eeg_project/components/signal/NoiseDetector.java index 36d118cf..2a5b2eef 100644 --- a/EEG101/android/app/src/main/java/com/eeg_project/components/signal/NoiseDetector.java +++ b/EEG101/android/app/src/main/java/com/eeg_project/components/signal/NoiseDetector.java @@ -10,6 +10,10 @@ import com.facebook.react.bridge.WritableMap; import com.facebook.react.modules.core.DeviceEventManagerModule; +import org.apache.commons.lang3.ArrayUtils; + +import java.lang.reflect.Array; +import java.nio.ByteBuffer; import java.util.Arrays; // For printing arrays when debugging import javax.annotation.Nullable; diff --git a/EEG101/package.json b/EEG101/package.json index 4046be8c..48cb1c90 100644 --- a/EEG101/package.json +++ b/EEG101/package.json @@ -22,7 +22,7 @@ "react-native-i18n": "^2.0.1", "react-native-responsive": "^1.0.1", "react-native-svg": "^5.3.0", - "react-native-torch": "^1.0.0", + "react-native-torch": "^1.0.1", "react-redux": "^4.4.5", "react-router-native": "^4.2.0", "redux": "^3.6.0", diff --git a/EEG101/src/i18n/i18n.js b/EEG101/src/i18n/i18n.js index 913c021e..6baa6c52 100644 --- a/EEG101/src/i18n/i18n.js +++ b/EEG101/src/i18n/i18n.js @@ -1,13 +1,11 @@ import I18n from 'react-native-i18n'; import en from './locales/en'; -import fr from './locales/fr'; import es from './locales/es'; I18n.fallbacks = true; I18n.translations = { en, - es, }; diff --git a/EEG101/src/i18n/locales/en.js b/EEG101/src/i18n/locales/en.js index 5b763af9..a71e8713 100644 --- a/EEG101/src/i18n/locales/en.js +++ b/EEG101/src/i18n/locales/en.js @@ -33,7 +33,6 @@ export default { //slide-01.js introductionSlideTitle: 'INTRODUCTION', brainElectricity: 'Your brain produces electricity. ', - brainElectricityOffline: 'The brain produces electricity.', EEGLink: 'EEG', deviceCanDetect: ' device that you are wearing, we can detect the electrical activity of your brain.', usingThe: 'Using the ', @@ -242,8 +241,6 @@ export default { trainSamples: 'samples', trainStop: 'STOP', trainCollect: 'COLLECT', - trainCollectMore: 'COLLECT MORE', - teamMemberBrian: '', trainOn: 'ON', trainOff: 'OFF', trainFitClassifier: 'FIT CLASSIFIER', diff --git a/EEG101/src/i18n/locales/es.js b/EEG101/src/i18n/locales/es.js index 48d24203..4928b5bd 100644 --- a/EEG101/src/i18n/locales/es.js +++ b/EEG101/src/i18n/locales/es.js @@ -16,8 +16,8 @@ export default { step1Title: 'Paso 1', musePowerOnWarning: 'Asegúrate de que el dispositivo Muse se encuentre encendido.', museFirstGenWarning: 'Si estás utilizando un Muse Primera Generación, es posible que sea necesario conectarlo manualmente en los ajustes del Bluetooth.', - offlineModeEnable: '', - offlineModeDisable: '', + offlineModeEnable: 'MODO OFFLINE', + offlineModeDisable: 'MODO OFFLINE', connector2Link: 'OK, ESTÁ ENCENDIDO', //connector-02.js @@ -33,7 +33,6 @@ export default { //slide-01.js introductionSlideTitle: 'INTRODUCCIÓN', brainElectricity: 'Tu cerebro produce electricidad.', - brainElectricityOffline: '', EEGLink: 'EEG', deviceCanDetect: ' que estás utilizando, es posible detectar la actividad eléctrica de tu cerebro.', usingThe: 'A través del dispositivo ', @@ -59,23 +58,23 @@ export default { eyeRythymsDescription: 'Cuando cierras tus ojos, hay un incremento en la actividad rítmica cerebral en el rango de 8 - 13 ciclos por segundo (Hz). Estas ondas cerebrales, denominadas alfa, fueron uno de los primeros descubrimientos que Hans Berger hizo con EEG. La habilidad para detectar ondas alfa cuando los ojos están cerrados varía de persona a persona. ¡No te sientas mal si no puedes verlas!', //slide-02.js - physiologySlideTitle: 'PHYSIOLOGY ES', - EEGComeFrom: 'Where does the EEG signal come from? ES', - EEGMeasures: 'The EEG measures the electrical activity that occurs when ES', - neuronsLink: 'neurons ES', - receiveAndTransmit: ' receive and transmit information. ES', - organizedNeural: 'Organized neural activity produces electric fields. ES', - whenBillionsOfNeurons: 'When billions of neurons ES', - workTogetherLink: 'work together ES', - produceThoughts: ' to produce thoughts, feelings, and behaviours, their electricity can be detected by electrodes on the scalp. ES', - EEGDetects: 'EEG detects the "state" of the brain. ES', - organizedElectricalActivity: 'This organized electrical activity varies between different brain states, such as ES', - sleepWakefulnessLink: 'sleep and wakefulness. ES', - neuralBasisEEGTitle: 'Neural basis of EEG. ES', - neuralBasisEEGDescription1: 'When synapses are activated on a neuron\'s dendrites, a small electric field (dipole) is created along the body of the neuron due to the difference in charge between those dendrites and the axon. This electric field only lasts for a few milliseconds. ES', - neuralBasisEEGDescription2: 'The electric fields produced by single neurons are vanishingly small. However, when large numbers of cortical neurons fire rhythmically, their activity can produce electric fields that are large enough to cross the surface of the skull. This process is influenced by many factors, including depth, orientation, and subtype of neurons, and is a topic of ongoing research. ES', - brainStatesTitle: 'Brain states ES', - brainStatesDescription: 'During sleep our brains produce very different kinds of rhythmic electrical activity. When awake, brain rhythms tend to be rapidly-changing and irregular, while slowly-changing, organized rhythms become more dominant as we fall asleep and pass through the multiple sleep stages. \n Certain emotions and cognitive processes have also been linked with characteristic patterns of rhythmic activity that can be identified with EEG. ES', + physiologySlideTitle: 'FISIOLOGÍA', + EEGComeFrom: '¿Cuál es el origen de la señal de EEG?', + EEGMeasures: 'La señal de EEG registra la señal eléctrica que ocurre cuando', + neuronsLink: 'las neuronas', + receiveAndTransmit: 'reciben y transmiten información.', + organizedNeural: 'La actividad neuronal organizada produce campos eléctricos.', + whenBillionsOfNeurons: 'Cuando miles de millones de neuronas', + workTogetherLink: 'trabajan juntas', + produceThoughts: ' para producir pensamientos, sentimientos y comportamientos, su actividad eléctrica es detectada por los electrodos sobre la cabeza.', + EEGDetects: 'El EEG detecta el estado general del cerebro.', + organizedElectricalActivity: 'Esta actividad organizada eléctrica varía para diferentes estados cerebrales, por ejemplo', + sleepWakefulnessLink: 'si estás dormido o despierto.', + neuralBasisEEGTitle: 'Las bases neuronales del EEG.', + neuralBasisEEGDescription1: 'Cuando las sinapsis en las dendritas de una neurona se activan, un pequeño campo eléctrico (dipolo) se crea a lo largo del cuerpo de la neurona debido a la diferencia de carga eléctrica entre las dendritas y el axón. Este campo eléctrico dura un par de milisegundos.', + neuralBasisEEGDescription2: 'El campo eléctrico producido por una neurona es diminuto. No obstante, cuando muchas neuronas corticales disparan de manera rítmica, su actividad puede producir campos eléctricos que son lo suficientemente grandes para cruzar la superficie del cráneo. Este proceso depende de diferentes factores, incluyendo la profundidad, la orientación, el subtipo de neurona... y es un tema actual de investigación.', + brainStatesTitle: 'Estados cerebrales', + brainStatesDescription: 'Mientras dormimos, nuestros cerebros producen un tipo particular de actividad eléctrica rítmica. Cuando estamos despiertos, los patrones rítmicos cerebrales tienden a ser dinámicos e irregulares, mientras que ritmos lentos y organizados se vuelven dominantes cuando nos vamos quedando dormidos y pasamos por las diferentes etapas del sueño. \n Ciertas emociones y procesos cognitivos también han sido asociados con patrones característicos de actividad rítmica cerebral que pueden ser registrados con el EEG.', //slide-03.js hardwareSlideTitle: 'HARDWARE', @@ -242,8 +241,6 @@ export default { trainSamples: 'muestras', trainStop: 'ALTO', trainCollect: 'ADQUIRIR', - trainCollectMore: 'ADQUIRIR', - teamMemberBrian: '', trainOn: 'ON', trainOff: 'OFF', trainFitClassifier: 'ENTRENAR AL CLASIFICADOR', diff --git a/EEG101/src/i18n/locales/fr.js b/EEG101/src/i18n/locales/fr.js deleted file mode 100644 index 63e61029..00000000 --- a/EEG101/src/i18n/locales/fr.js +++ /dev/null @@ -1,314 +0,0 @@ -export default { - - //global - nextLink: ' NEXT FR', - museDisconnectedTitle: 'Muse Disconnected FR', - museDisconnectedDescription: 'Please reconnect to continue the tutorial. FR', - closeButton: 'Close FR', - connectButton: '', - - //begin-landing.js - welcomeEEG101: 'Welcome to EEG 101 FR', - tutorialDescription: 'At the end of this tutorial, you will have learned how EEG devices can be used to measure the electrical activity of the brain. FR', - getStartedLink: ' GET STARTED FR', - - //connector-01.js - step1Title: 'Step 1 FR', - musePowerOnWarning: 'Make sure your Muse is powered on. FR', - museFirstGenWarning: 'If you are using a first generation Muse you may need to pair your device in bluetooth settings. FR', - offlineModeEnable: '', - offlineModeDisable: '', - connector2Link: ' OK, IT\'S ON FR', - - //connector-02.js - step2Title: 'Step 2 FR', - getStartedLink: ' GET STARTED FR', - waitMusePair: 'Wait for your Muse to pair \n with EEG 101... FR', - - //connector-03.js - step3Title: 'Step 3 FR', - museFitProperly: 'Make sure the Muse is properly fitted to your head. FR', - fitInstructions: 'Fit the earpieces snugly behind your ears and adjust the headband so that it rests mid forehead. Clear any hair that might prevent the device from making contact with your skin. FR', - - //slide-01.js - introductionSlideTitle: 'INTRODUCTION FR', - brainElectricity: 'Your brain produces electricity. FR', - brainElectricityOffline: '', - EEGLink: 'EEG FR', - deviceCanDetect: ' device that you are wearing, we can detect the electrical activity of your brain. FR', - usingThe: 'Using the FR', - tryBlinkingEyes: 'Try blinking your eyes... FR', - doesSignalChange: 'Does the signal change? FR', - eyeMovementCreates: 'Eye movements create FR', - noiseLink: 'noise FR', - inEEGSignal: ' in the EEG signal. FR', - tryThinkingAbout: 'Try thinking about a cat... FR', - doesSignalChange: 'Does the signal change? FR', - althoughEEG: 'Although EEG can measure overall brain activity, it’s not capable of FR', - readingMindsLink: 'reading minds FR', - tryClosingEyes10: 'Now try closing your eyes for 10 seconds. FR', - mayNoticeSignalChange: 'You may notice a change in your signal due to an increase in FR', - alphaWavesLink: 'alpha waves. FR', - whatIsEEGTitle: 'What exactly is EEG? FR', - whatIsEEGDescription: 'Electroencephalography (EEG) is a technique that measures the electrical activity of the brain with sensors that record fluctuations in voltage at the surface of the skull. The first human electroencephalogram was recorded in 1924 by Hans Berger, a German psychiatrist whose interest in ‘psychic energy’ led him to experiment with the electrical fields of the brain. FR', - noiseTitle: 'Noise FR', - noiseDescription: 'Movement of the eyes (which are electrically charged) and muscle activity produce electrical activity. Thus, blinking, swallowing, and clenching the jaw will all produce noise that can overpower signals originating in the brain. This can make it very difficult to read the EEG. To accurately sense the activity of the brain, movement must be kept to a minimum. FR', - cannotReadMindsTitle: 'EEG cannot read minds FR', - cannotReadMindsDescription: 'The EEG signal is generated when tens of thousands of brain cells fire in synchrony. Although thinking about a cat produces some change in brain activity, it is too small to affect the large-scale, rhythmic firing of the brain that EEG detects. FR', - eyeRythymsTitle: 'Closed eye rhythms FR', - eyeRythymsDescription: 'When the eyes are closed, there is often a large increase in rhythmic brain activity in the range of 8-13 cycles per second (Hz). These alpha waves were one of the first discoveries that Hans Berger made with EEG. The ability to detect alpha waves when the eyes are closed varies greatly from person to person, however. Don\'t feel bad if you can\'t see them! FR', - - //slide-02.js - physiologySlideTitle: 'PHYSIOLOGY FR', - EEGComeFrom: 'Where does the EEG signal come from? FR', - EEGMeasures: 'The EEG measures the electrical activity that occurs when FR', - neuronsLink: 'neurons FR', - receiveAndTransmit: ' receive and transmit information. FR', - organizedNeural: 'Organized neural activity produces electric fields. FR', - whenBillionsOfNeurons: 'When billions of neurons FR', - workTogetherLink: 'work together FR', - produceThoughts: ' to produce thoughts, feelings, and behaviours, their electricity can be detected by electrodes on the scalp. FR', - EEGDetects: 'EEG detects the "state" of the brain. FR', - organizedElectricalActivity: 'This organized electrical activity varies between different brain states, such as FR', - sleepWakefulnessLink: 'sleep and wakefulness. FR', - neuralBasisEEGTitle: 'Neural basis of EEG. FR', - neuralBasisEEGDescription1: 'When synapses are activated on a neuron\'s dendrites, a small electric field (dipole) is created along the body of the neuron due to the difference in charge between those dendrites and the axon. This electric field only lasts for a few milliseconds. FR', - neuralBasisEEGDescription2: 'The electric fields produced by single neurons are vanishingly small. However, when large numbers of cortical neurons fire rhythmically, their activity can produce electric fields that are large enough to cross the surface of the skull. This process is influenced by many factors, including depth, orientation, and subtype of neurons, and is a topic of ongoing research. FR', - brainStatesTitle: 'Brain states FR', - brainStatesDescription: 'During sleep our brains produce very different kinds of rhythmic electrical activity. When awake, brain rhythms tend to be rapidly-changing and irregular, while slowly-changing, organized rhythms become more dominant as we fall asleep and pass through the multiple sleep stages. \n Certain emotions and cognitive processes have also been linked with characteristic patterns of rhythmic activity that can be identified with EEG. FR', - - //slide-03.js - hardwareSlideTitle: 'HARDWARE FR', - howDoesEEGDeviceWork: 'How does an EEG device work? FR', - electricalActivitySensed: 'The electrical activity of the brain is sensed by FR', - electrodesLink: 'electrodes FR', - placedOnScalp: ' placed on the scalp. FR', - deviceHas4Electrodes: 'This device has 4 electrodes. FR', - touchTheHeadDiagram: 'Touch the head diagram to view the signal at each electrode. Scientists have FR', - namesLink: 'names FR', - forEachElectrode: ' for each of these electrodes. FR', - whatElectrodesMeasure: 'What do electrodes measure? FR', - voltageFluctuations: 'Each electrode detects voltage fluctuations that are compared to a FR', - referenceElectrodeLink: 'reference electrode FR', - amplified1Mil: ' and then amplified around 1,000,000 times. FR', - electrodesTitle: 'Electrodes FR', - electrodesDescription: 'An electrode is a conductor through which electricity flows. The device you are wearing (Muse) uses dry electrodes that don\'t require conductive gel and can be placed directly on the skin. FR', - electrodeNamingTitle: 'Electrode naming conventions FR', - electrodeNamingDescription: 'EEG electrodes are typically identified by a combination of a letter and a number. The letter indicates the part of the head where the electrode is located (F for frontal, C for central, etc.). The number indicates distance from the midline of the head with even numbers on the right hemisphere and odd numbers on the left. FR', - referencingTitle: 'Referencing FR', - referencingDescription: 'Each electrode\'s signal reflects the difference in electrical potential between that electrode and a seperate reference electrode. Thus, data gathered from EEG devices with different reference electrode placement can vary considerably. With Muse, the reference is located on the front of the forehead. FR', - - //slide-04.js - filteringSlideTitle: 'FILTERING FR', - raw: 'Raw FR', - bandPassFilter: 'Band-Pass Filter FR', - meaningfulData: 'How do we get meaningful data from the EEG? FR', - firstEEGMust: 'First, the EEG must be FR', - filteredLink: 'filtered FR', - toReduceSignals: 'to reduce signals that don\'t come from the brain. FR', - filtersTitle: 'Filters FR', - filtersDescription: 'Filters remove frequencies that sit outside the spectrum of signals produced by the brain, getting rid of some of the noise produced by muscles or environmental electrical activity. Filters are normally either high-pass (removing low frequencies), low-pass (removing high frequencies) or band-pass (allowing only a specific band of frequencies through). Here, we have implemented a band-pass filter that removes frequencies outside the range of those typically produced by the brain. FR', - - //slide-05.js - epochingSlideTitle: 'EPOCHING FR', - chunkingSignal: 'Chunking the signal FR', - EEGDividedSegments: 'Next, the EEG is divided into small segments or FR', - epochsLink: 'epochs FR', - epochsTitle: 'Epochs FR', - epochsDescription: 'The brain is constantly changing and the EEG changes with it. Dividing the EEG into epochs allows each moment in time to be analyzed individually. Analyzing how the properties of these epochs vary allows us to quantify how the brain changes over time. FR', - - //slide-06.js - artefactRemovalSlideTitle: 'ARTEFACT REMOVAL FR', - removingNoise: 'Removing noise FR', - afterEEGDividedEpochs: 'After the EEG has been divided into epochs, those that contain a FR', - significantLink: 'significant FR', - amountNoiseIgnored: ' amount of noise can be ignored. FR', - artefactDetectionTitle: 'Artefact detection FR', - artefactDetectionDescription: 'One simple way to define a "significant amount of noise" is to compare how variable an epoch is in comparison to its neighbours. If the signal moves around in one epoch a lot more than in its neighbours, it is probably because there was an eyeblink or some other source of noise. Get rid of it! FR', - - //slide-07.js - featureDetectionSlideTitle: 'FEATURE EXTRACTION FR', - breakingDownEEG: 'Breaking down the EEG FR', - onceNoiseRemoved: 'Once noise is removed, the EEG can be broken down into many simpler periodic signals or FR', - wavesLink: 'waves FR', - howEEGBrokenDown: 'How is the EEG broken down? FR', - complexSignalsBrokenDown: 'Complex signals can be broken down into simpler signals with a mathematical function known as the FR', - fourierTransformLink: 'Fourier Transform. FR', - wavesTitle: 'Waves FR', - wavesDescription: 'Each wave is characterised by a certain frequency (number of cycles per second, Hertz (Hz)). A high frequency wave has many cycles per second, whereas a low frequency wave has fewer cycles per second. Waves of different frequencies are associated with different patterns of neural firing. FR', - fourierTransformTitle: 'Fourier transform FR', - fourierTransformDescription: 'The Fourier Transform decomposes a complex signal into a collection of simple sine waves. Often, we use an algorithm specifically called the Fast Fourier Transform (FFT) to perform this decomposition in EEG. FR', - - //slide-08.js - PSDSlideTitle: 'PSD FR', - powerSpectralDensity: 'Power Spectral Density (PSD) FR', - whenWeApplyFourier: 'When we apply the Fourier Transform to the EEG, we obtain a measure of signal strength at given frequencies, represented in units of FR', - powerLink: 'power FR', - powerTitle: 'Power FR', - powerDescription: 'In this graph, the X axis represents frequency and the Y axis represents power (microvolts squared, in decibels (dB)). Power represents how strong a certain frequency is in a complex signal. When power is high for only a few frequencies, it means that the signal is primarily composed of those few elements. If all frequencies have similar power, the signal will look random and be difficult to interpret. FR', - - //slide-09.js - brainWavesSlideTitle: 'BRAIN WAVES FR', - whatDoFrequenciesRepresent: 'What do these frequencies represent? FR', - PSDDividedBands: 'The PSD can be divided into different frequency bands (named by the greek letters δ, θ, α, β, and γ). FR', - brainWaves: 'Brain Waves FR', - freqCorrelatedBrain: 'Each frequency band exhibits activity correlated with different brain processes. These bands are often referred to as FR', - brainWavesLink: 'brain waves FR', - harnessingBrainWaves: 'Harnessing Brain Waves FR', - noticePowerChanges: 'Notice how the power in a given frequency band changes over time. It is possible to harness these changes to create a simple FR', - BCILink: 'brain-computer interface (BCI) FR', - deltaTitle: 'Delta δ (0-4 Hz) FR', - deltaDescription: 'Delta waves are the slowest (i.e. lowest frequency) brain waves. Delta waves dominate during deep sleep and tend to be high in amplitude because they represent the synchronized firing of large populations of neurons. FR', - thetaTitle: 'Theta θ (4-8 Hz) FR', - thetaDescription: 'Theta waves are most commonly observed in the "hypnagogic" period just before falling asleep. They have also been observed during deep meditative and hypnotic states. FR', - alphaTitle: 'Alpha α (8-13 Hz) FR', - alphaDescription: 'Alpha waves can indicate the idling of a brain region. For example, they increase dramatically at when the eyes are closed. They are especially strong at the back of the head, where the vision centre of the brain is located. FR', - betaTitle: 'Beta β (13-30 Hz) FR', - betaDescription: 'Beta waves are prevalent when the brain is awake and active. They have been associated with alertness, concentration, and the active firing of neurons hard at work. FR', - gammaTitle: 'Gamma γ (30-100 Hz) FR', - gammaDescription: 'Gamma waves are the fastest form of neural oscillation. They are difficult to detect and analyze with ordinary EEG but are a topic of much ongoing research. They have been tentatively associated with attention, working memory, and even consciousness. FR', - BCITitle: 'Brain-computer interfaces FR', - BCIDescription: 'A Brain-computer interface is a direct communication channel between the brain and an external device. For example, one can feed information about brain state based on EEG frequency bands to a computer; that computer then analyzes the EEG data and decides what the user intent was. The computer can use that command to control an external device such as a wheelchair or a display. FR', - - //slide-end.js - thanksForCompleting: 'Thanks for completing \n EEG 101 FR', - hopeYouEnjoyed: 'We hope you enjoyed learning about the basics of EEG. Soon, this tutorial will cover more advanced topics, such as how to create a simple brain-machine interface! FR', - furtherLearning: 'What\'s Next? FR', - bciResource: '1. Live Artefact Removal FR', - signalProcessingResource: '2. Offline Mode FR', - machineLearningResource: '3. Interactive Brain Computer Interface! FR', - projectOpenSource: 'This project is Open Source FR', - resultOfCollaboration: 'EEG101 is the result of a collaboration between NeuroTechX, the international neurotechnology network, and the developers at KBDGroup. Its source code is open for anyone to use or contribute to. FR', - interestedInApp: 'Interested in how an EEG app is built? Want to contribute to this project? Check out the repo on Github and our community on Slack. FR', - theTeam: 'The EEG 101 Team FR', - teamMemberHubert: 'Hubert Banville - Visionary FR', - teamMemberDano: 'Dano Morrison - Developer FR', - teamMemberGeordan: 'Geordan King - Producer FR', - teamMemberMichael: 'Michael Vu - Author FR', - teamMemberJoanna: 'Joanna Jang - Author FR', - teamMemberBrian: 'Brian Stern - Software Architect FR', - teamMemberSteve: 'Steve Harjula - Visual Design FR', - teamMemberMiles: 'Miles McCraw - Animator FR', - restartButton: 'RESTART TUTORIAL FR', - - //DeviceStatusWdiget - widgetConnected: 'Muse connected FR', - widgetDisconnected: 'No connected device FR', - widgetConnecting: 'Connecting... FR', - - //ConnectorModule/component.js - needsPermission: 'EEG 101 needs your permission FR', - requiresLocation: 'This app requires coarse location permission in order to discover and connect to the 2016 Muse. FR', - statusConnected: 'Connected FR', - statusNoMusesTitle: 'No Muses were detected. FR', - searchAgain: ' SEARCH AGAIN FR', - statusConnecting: 'Connecting... FR', - statusDisconnected: 'Searching for Muses FR', - - // bci-01.js - bciTitle: 'BRAIN-COMPUTER INTERFACES FR', - whatIsBci: 'What is a Brain-Computer Interface? FR', - bciDefinition1: 'A BCI is a communication channel that allows the brain to FR', - bciDefinition2: 'interact FR', - bciDefinition3: 'with an external device such as a computer FR', - makeUseBci: 'How can we use EEG to make a BCI? FR', - recognizePatternBrain: 'We can teach a computer to execute a command when it recognizes a certain pattern of brain activity. This process is called FR', - machineLearning: 'machine learning FR', - buildBci: 'LET\'S BUILD A BCI FR', - bciInteractionTitle: 'Types of BCI interaction FR', - activeBci: 'Active BCI involves the user generating brain signals actively in order to control a computer. For example, using imagined movement of either the right or left hand to steer an avatar right or left. The function of active BCIs are to replace conventional interfaces such as keys on a keyboard. FR', - reactiveBci: 'Reactive BCIs use the brain\'s natural response to stimuli in order to gauge the user\'s intent. For example, detecting visually evoked responses to flashes of light on a keyboard to allow a user to spell by focusing their eyes on specific words. Although they don\'t require direct and conscious control, reactive BCIs must be built around specific stimuli that evolve known brain responses when perceived. FR', - passiveBci: 'Passive BCIs monitor the user\'s mental states without any effort their part. For example, passive BCIs might monitor attention, relaxation, or emotional state and use that information to adjust elements of a game. FR', - machineLearningTitle: 'Machine Learning FR', - machineLearningDefinition: 'A machine learning algorithm is a computer program that learns by looking at examples. For instance, machine learning algorithms can learn to recognize objects in a picture by looking at thousands of pictures of different objects. In an EEG BCI, this type of algorithm looks at many instances of someone’s brain activity and finds an optimal way to recognize what the user is doing. FR', - - // bci-02.js - step1Title: 'Step 1 FR', - chooseCommand: 'Choose a command FR', - bciCommands: 'This BCI will allow you to execute a command on your phone by switching between two \'brain states\' \n\n First, what do you want this BCI to do? FR', - step2Title: 'Step 2 FR', - offData: 'Collect "OFF" data FR', - step3Title: 'Step 3 FR', - onData: 'Collect "ON" data FR', - step4Title: 'Step 4 FR', - trainClassifier: 'Train the classifier FR', - - // bci-run.js - retrainBci: 'RE-TRAIN BCI FR', - endEeg101: 'END EEG 101 FR', - bciRunSlideTitle: 'USING YOUR MIND TO CONTROL THIS PHONE...FR', - - // bci-train.js - trainSamples: 'samples FR', - trainStop: 'STOP FR', - trainCollect: 'COLLECT FR', - trainCollectMore: 'COLLECT FR', - teamMemberBrian: '', - trainOn: 'ON FR', - trainOff: 'OFF FR', - trainFitClassifier: 'FIT CLASSIFIER FR', - trainAccuracy: 'Accuracy FR', - trainReFit: 'RE-FIT FR', - trainRunIt: ' RUN IT! FR', - trainReset: 'RESET FR', - - // ClassifierInfoDisplayer.js - nextTrain: 'Next, train the FR', - classifierName: 'classifier FR', - collectedData: 'on your data to distinguish between your brain states. \n\n The data you\'ve collected is simply the powers of the different brain waves (δ, θ, α, β) for each electrode in each epoch you collected FR', - trainClassifierButton: 'TRAIN CLASSIFIER FR', - classifierTitle2: 'Classifier FR', - classifierPopUp: 'A classifier is a type of machine learning algorithm that learns to distinguish between two or more groups by looking at relevant features of these groups. The classifier that we are training here uses the Gaussian Naive Bayes technique to estimate the probability that a data point belongs to two distinct normal distributions. Image from Raizada and Lee, 2013 FR', - classifierAccuracy: 'Accuracy: FR', - classifierScore: 'This score represents how well the classifier is able to distinguish between the two brain states based on the data you collected. \n\n If you are happy with your classifier\'s score you can run your BCI in real-time! Otherwise, you can start over with new data FR', - classifierReTrain: 'RE-TRAIN FR', - crossValidationAcc: 'Cross-validation accuracy FR', - crossValidationDefinition: 'Cross-validation is a technique to evaluate the accuracy of predictive algorithms by breaking up an original set of example data into a training set and a test set. The algorithm is trained on this training set and scored on how well it predicts the values of the test set. In k-fold cross-validation, which this BCI uses, this process is repeated a number of times with different randomly selected subsamples of data each time. FR', - - // DataCollection.js - collecting: 'Collecting... FR', - oopsYouOnly: 'Oops! You only collected FR', - epochsOfData: 'epochs of data.\n\n Remember, it is important to discard epochs that contain too much noise in order to detect signals from the brain. Try again, ensuring that your headband is fitted correctly and that blinks and movement are kept to a minumum. FR', - letsTeach: 'Now, let’s teach the algorithm the brain state you’ll use to turn the FR', - closeYourEyes: 'ON.\n\n Once again, you can try whatever you want. We recommend closing your eyes and relaxing. Click the button below to start recording another 30 seconds of data. FR', - youveCollected: 'Awesome! You\'ve collected FR', - totalCleanData: 'total epochs of clean data.\n\n The accuracy of machine learning is often dependent on the number of examples given to the algorithm. Consider collecting even more data to make this BCI as accurate as possible! FR', - letsTeach2: 'Let\'s teach the algorithm which brain state you’ll use to keep the FR', - eyesOpen: 'OFF.\n\n You can try whatever you want, but we recommend keeping your eyes open and concentrating. When you are ready, click to record 30 seconds of data. FR', - totalCleanData2: 'total epochs of clean data.\n\n For this BCI, each epoch is one second long. Those with too much noise are discarded. FR', - - // SideMenu.js - toolsTitle: 'EEG Sandbox FR', - eegSandbox: 'Tools FR', - bciValue: 'Brain-computer interface FR', - tutorialTitle: 'Tutorial FR', - introductionValue: 'Introduction FR', - physiologyValue: 'Physiology FR', - hardwareValue: 'Hardware FR', - filteringValue: 'Filtering FR', - epochingValue: 'Epoching FR', - artefactValue: 'Artefact Removal FR', - featureValue: 'Feature Extraction FR', - psdValue: 'Power Spectral Density FR', - brainWavesValue: 'Brain Waves FR', - brainComputerInterfaceValue: 'Brain-Computer Interfaces FR', - howBuildBciValue: 'How to Build a BCI FR', - infoValue: 'Information & Acknowledgements FR', - - // config.js - configConnected: 'CONNECTED FR', - configConnecting: 'CONNECTING FR', - configDisconnected: 'DISCONNECTED FR', - configNoMuses: 'NO_MUSES FR', - configEeg: 'EEG FR', - configFilter: 'FILTER FR', - configPsd: 'PSD FR', - configWaves: 'WAVES FR', - configArtefact: 'ARTEFACT FR', - configLowpass: 'LOWPASS FR', - configHighpass: 'HIGHPASS FR', - configBandstop: 'BANDSTOP FR', - configBandpass: 'BANDPASS FR', - configLight: 'the light FR', - configVibrate: 'vibration FR', -}; \ No newline at end of file diff --git a/EEG101/yarn.lock b/EEG101/yarn.lock index 70653e22..df942352 100644 --- a/EEG101/yarn.lock +++ b/EEG101/yarn.lock @@ -3884,9 +3884,9 @@ react-native-svg@^5.3.0: color "^0.11.1" lodash "^4.16.6" -react-native-torch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/react-native-torch/-/react-native-torch-1.0.0.tgz#cf00d93ee83a250a2df5a3ba2be4e3193eaa1c55" +react-native-torch@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-native-torch/-/react-native-torch-1.0.1.tgz#2cb5da44538b292feec17857abe8447578679565" react-native@^0.46.2: version "0.46.2" diff --git a/localization/es.js b/localization/es.js index 5b775d8a..4928b5bd 100644 --- a/localization/es.js +++ b/localization/es.js @@ -16,8 +16,8 @@ export default { step1Title: 'Paso 1', musePowerOnWarning: 'Asegúrate de que el dispositivo Muse se encuentre encendido.', museFirstGenWarning: 'Si estás utilizando un Muse Primera Generación, es posible que sea necesario conectarlo manualmente en los ajustes del Bluetooth.', - offlineModeEnable: '', - offlineModeDisable: '', + offlineModeEnable: 'MODO OFFLINE', + offlineModeDisable: 'MODO OFFLINE', connector2Link: 'OK, ESTÁ ENCENDIDO', //connector-02.js @@ -58,23 +58,23 @@ export default { eyeRythymsDescription: 'Cuando cierras tus ojos, hay un incremento en la actividad rítmica cerebral en el rango de 8 - 13 ciclos por segundo (Hz). Estas ondas cerebrales, denominadas alfa, fueron uno de los primeros descubrimientos que Hans Berger hizo con EEG. La habilidad para detectar ondas alfa cuando los ojos están cerrados varía de persona a persona. ¡No te sientas mal si no puedes verlas!', //slide-02.js - physiologySlideTitle: 'PHYSIOLOGY ES', - EEGComeFrom: 'Where does the EEG signal come from? ES', - EEGMeasures: 'The EEG measures the electrical activity that occurs when ES', - neuronsLink: 'neurons ES', - receiveAndTransmit: ' receive and transmit information. ES', - organizedNeural: 'Organized neural activity produces electric fields. ES', - whenBillionsOfNeurons: 'When billions of neurons ES', - workTogetherLink: 'work together ES', - produceThoughts: ' to produce thoughts, feelings, and behaviours, their electricity can be detected by electrodes on the scalp. ES', - EEGDetects: 'EEG detects the "state" of the brain. ES', - organizedElectricalActivity: 'This organized electrical activity varies between different brain states, such as ES', - sleepWakefulnessLink: 'sleep and wakefulness. ES', - neuralBasisEEGTitle: 'Neural basis of EEG. ES', - neuralBasisEEGDescription1: 'When synapses are activated on a neuron\'s dendrites, a small electric field (dipole) is created along the body of the neuron due to the difference in charge between those dendrites and the axon. This electric field only lasts for a few milliseconds. ES', - neuralBasisEEGDescription2: 'The electric fields produced by single neurons are vanishingly small. However, when large numbers of cortical neurons fire rhythmically, their activity can produce electric fields that are large enough to cross the surface of the skull. This process is influenced by many factors, including depth, orientation, and subtype of neurons, and is a topic of ongoing research. ES', - brainStatesTitle: 'Brain states ES', - brainStatesDescription: 'During sleep our brains produce very different kinds of rhythmic electrical activity. When awake, brain rhythms tend to be rapidly-changing and irregular, while slowly-changing, organized rhythms become more dominant as we fall asleep and pass through the multiple sleep stages. \n Certain emotions and cognitive processes have also been linked with characteristic patterns of rhythmic activity that can be identified with EEG. ES', + physiologySlideTitle: 'FISIOLOGÍA', + EEGComeFrom: '¿Cuál es el origen de la señal de EEG?', + EEGMeasures: 'La señal de EEG registra la señal eléctrica que ocurre cuando', + neuronsLink: 'las neuronas', + receiveAndTransmit: 'reciben y transmiten información.', + organizedNeural: 'La actividad neuronal organizada produce campos eléctricos.', + whenBillionsOfNeurons: 'Cuando miles de millones de neuronas', + workTogetherLink: 'trabajan juntas', + produceThoughts: ' para producir pensamientos, sentimientos y comportamientos, su actividad eléctrica es detectada por los electrodos sobre la cabeza.', + EEGDetects: 'El EEG detecta el estado general del cerebro.', + organizedElectricalActivity: 'Esta actividad organizada eléctrica varía para diferentes estados cerebrales, por ejemplo', + sleepWakefulnessLink: 'si estás dormido o despierto.', + neuralBasisEEGTitle: 'Las bases neuronales del EEG.', + neuralBasisEEGDescription1: 'Cuando las sinapsis en las dendritas de una neurona se activan, un pequeño campo eléctrico (dipolo) se crea a lo largo del cuerpo de la neurona debido a la diferencia de carga eléctrica entre las dendritas y el axón. Este campo eléctrico dura un par de milisegundos.', + neuralBasisEEGDescription2: 'El campo eléctrico producido por una neurona es diminuto. No obstante, cuando muchas neuronas corticales disparan de manera rítmica, su actividad puede producir campos eléctricos que son lo suficientemente grandes para cruzar la superficie del cráneo. Este proceso depende de diferentes factores, incluyendo la profundidad, la orientación, el subtipo de neurona... y es un tema actual de investigación.', + brainStatesTitle: 'Estados cerebrales', + brainStatesDescription: 'Mientras dormimos, nuestros cerebros producen un tipo particular de actividad eléctrica rítmica. Cuando estamos despiertos, los patrones rítmicos cerebrales tienden a ser dinámicos e irregulares, mientras que ritmos lentos y organizados se vuelven dominantes cuando nos vamos quedando dormidos y pasamos por las diferentes etapas del sueño. \n Ciertas emociones y procesos cognitivos también han sido asociados con patrones característicos de actividad rítmica cerebral que pueden ser registrados con el EEG.', //slide-03.js hardwareSlideTitle: 'HARDWARE', diff --git a/localization/translation_text.csv b/localization/translation_text.csv index 06009c92..a64d8369 100644 --- a/localization/translation_text.csv +++ b/localization/translation_text.csv @@ -8,7 +8,7 @@ closeButton,CLOSE,Close FR,Cerrar connectButton,CONNECT,, ,,, //begin-landing.js,//begin-landing.js,//begin-landing.js,//begin-landing.js -welcomeEEG101,Welcome to EEG 101,Welcome to EEG 101 FR,Bienvenid@ a EEG101 +welcomeEEG101,Welcome to EEG 101,Welcome to EEG 101 FR,Bienvenido a EEG101 tutorialDescription,"At the end of this tutorial, you will have learned how EEG devices can be used to measure the electrical activity of the brain.","At the end of this tutorial, you will have learned how EEG devices can be used to measure the electrical activity of the brain. FR","Al finalizar este tutorial, conocerás la manera en la que un dispositivo EEG puede ser usado para medir la actividad eléctrica cerebral." getStartedLink, GET STARTED , GET STARTED FR,EMPEZAR ,,, @@ -16,8 +16,8 @@ getStartedLink, GET STARTED , GET STARTED FR,EMPEZAR step1Title,Step 1,Step 1 FR,Paso 1 musePowerOnWarning,Make sure your Muse is powered on.,Make sure your Muse is powered on. FR,Asegúrate de que el dispositivo Muse se encuentre encendido. museFirstGenWarning,If you are using a first generation Muse you may need to pair your device in bluetooth settings.,If you are using a first generation Muse you may need to pair your device in bluetooth settings. FR,"Si estás utilizando un Muse Primera Generación, es posible que sea necesario conectarlo manualmente en los ajustes del Bluetooth." -offlineModeEnable,ENABLE OFFLINE MODE,, -offlineModeDisable,DISABLE OFFLINE MODE,, +offlineModeEnable,ENABLE OFFLINE MODE,,MODO OFFLINE +offlineModeDisable,DISABLE OFFLINE MODE,,MODO OFFLINE connector2Link," OK, IT\'S ON "," OK, IT\'S ON FR","OK, ESTÁ ENCENDIDO" ,,, //connector-02.js,//connector-02.js,//connector-02.js,//connector-02.js