| Literature DB >> 27826938 |
Kerem Eryilmaz1, Hannah Little2,3.
Abstract
In evolutionary linguistics, experiments using artificial signal spaces are being used to investigate the emergenceof speech structure. These signal spaces need to be continuous, non-discretized spaces from which discrete unitsand patterns can emerge. They need to be dissimilar from-but comparable with-the vocal tract, in order tominimize interference from pre-existing linguistic knowledge, while informing us about language. This is a hardbalance to strike. This article outlines a new approach that uses the Leap Motion, an infrared controller that canconvert manual movement in 3d space into sound. The signal space using this approach is more flexible than signalspaces in previous attempts. Further, output data using this approach is simpler to arrange and analyze. Theexperimental interface was built using free, and mostly open- source libraries in Python. We provide our sourcecode for other researchers as open source.Entities:
Keywords: Artificial language learning; Combinatorialstructure; Language evolution; Leap Motion; Python; Signal space proxies
Mesh:
Year: 2017 PMID: 27826938 PMCID: PMC5628194 DOI: 10.3758/s13428-016-0818-x
Source DB: PubMed Journal: Behav Res Methods ISSN: 1554-351X
Fig. 1The Leap Motion controller showing the spatial dimensions used in one of our experiments. There is also the possibility to use the front-back dimension
Fig. 2Signal creation screen for an experiment with limited signal durations. The progress bar indicates the time left until maximum duration is reached, though not all experiments will have a time limit on signals
Fig. 3Signal recognition screen
Fig. 4The wait dialogue after signal recognition
Fig. 5The server side interface as seen by the experimenter. The red numbers that can be seen on the meanings are only seen on the server side, and are the file names of the meanings
Columns of the response DataFrame, as returned by toPandas p2p() (see Appendix 1)
| Response column | Description |
|---|---|
| round | Number of exchange, e.g., first exchange in the experiment is round 0. |
| phase | Number of phase. |
| client |
client
|
| image | What meaning was the signal produced for. |
| data_index | The index of this data point in the trajectory. |
| x | Hand position on the x-axis i.e., from left to right in millimeters |
| y | Hand position on the y-axis i.e., from down to up in millimeters |
| z | Hand position on the z-axis i.e., from front to back in millimeters |
| frequency | Frequency of the signal in Hertz. This is useful if you do not have a linear mapping between hand position and your auditory output. |
| mel | Frequency of the signal in Mel Scale. |
| amplitude | Volume of the signal in range [0,1]. This is useful if you do not have a linear mapping between hand position and your auditory output. |
Columns of the question DataFrame, as returned by toPandas_p2p() (see Appendix 1A.9)
| Question Column | Description |
|---|---|
| round | Number of exchange, e.g., first exchange in the experiment is round 0. |
| phase | Number of phase. |
| client | client_id of the signal recognizer. |
| image0, image1, image2, etc. | Which meanings were in the set being selected from. |
| answer | The meaning that the signal was produced for. |
| given_answer | The meaning selected by the participant. |
| success | Are the answer and given_answer the same |
Dependencies of the framework
| Dependency | Function |
|---|---|
| PyAudio | For audio I/O. |
| PyQt4 | For the graphical user interfaces. |
| twisted | For asynchronous I/O and networking. |
| qt4reactor | To integrate QT and : event loops. |
| IPython | Mostly for data processing and visualization scripts. |
| pandas | Frequently used in data processing scripts. |
| matplotlib | Used for data visualization. |
| scipy | Used for its implementations of scientific functions such as gamma. |
| jsonpickle | Used to serialize and deserialize data. |
| ghmm | Used for training HMMs. |
Server and client mode constants
| Client Mode | Indicates | Server Mode | Indicates |
|---|---|---|---|
| INIT | Initialization. | INIT | Initialization. |
| SPEAKER | Client is speaker. | SPEAKERS_TURN | Signal creation |
| HEARER | Client is hearer. | HEARERS_TURN | Signal recognition |
| FEEDBACK | Client is receiving feedback. | FEEDBACK | Clients are receiving feedback. |
Attributes of a LeapP2PRoundSummary object
| Attribute | Description |
|---|---|
| speaker | Speaker’s client_id |
| hearer | Hearer’s client_id |
| signal | Raw data from sensor |
| image | Speaker’s target image |
| guess | Hearer’s guess |
| success | True |
| options | Options in the recognition screen excluding target |
| success_counts | dict from meanings to consecutive success counts |
| image pointer | Index of the last element in the meaning space |