-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the VoSS wiki!
Action of the Program
Time Steps
Each “time step” goes through a process of reproduction, interaction between agents, increasing of the agents’ ages, updating of the convention, and removal of agents who have completed their lifespan. These actions are performed by four functions: reproduce, diffuse, increment and charon.
Diffuse
During each step, every agent who has completed less than 10% of their lifespan hears the vocabularies of an adjustable number of agents (the child’s “nuclear family” assigned at birth) plus an additional set of randomly selected words from the population. The number of family members can be changed using command ‘family’ from the menu. The number of randomly selected words from non-family can be changed with command ‘words’.
Interaction process and Phone->Vowel->Phone Transforms
- Child hears a word spoken by another agent in the community. When the word is spoken, the nucleus goes through a series of adjustments starting as the phone in the speaker’s rep to the vowel that the child hears. The coarticulation adjustments are applied to the phone, then a vowel is produced within phone_radius_noise (AKA vowel noise) of the adjusted phone.
- If the word is unknown, child adds it to their vocabulary.
- Child ‘de-assimilates’ the vowel using Phonology class methods.
- Child looks for a match to the ‘corrected’ vowel of the word in its repertoire. When more than one match exists within the perceptual margin, Child chooses the one with the highest weight. If all phones have zero weight, the closest acoustic match is returned.
- Child updates word history If a match is found, child adds the phone to the word’s history. If no match is found, child imitates the perceived vowel and adds it to its repertoire as well as the word’s history. The imitation is generated randomly as a phone within phone_radius of the de-assimilated vowel.
- Child iterates once through repertoire, identifying conflicts between weighted phones. Phone conflicts are resolved by shifting or merging (absorption or midpoint). Repertoire is updated once: only conflicts identified in initial pass are addressed.
- Child weighs phones to reflect possible changes in repertoire/vocabulary.
Increment
Increases each agent’s age by 1. If this results in an agent reaching the age of maturity (10% lifespan), that agent will ‘purge’ the extraneous vowels in their repertoire i.e. vowels which are not being used in any words and thus have a weight of 0. After that, they cease listening and only talk to the children and babies in the population.
increment(): for agent in population: agent.age += 1 if agent.age == age_of_maturity: remove vowels with weight == 0
Charon
Agents who have completed lifespan steps are ferried off to a land where the streets are paved with RAM, everyone gets their own dedicated cache and no data is ever deleted or corrupted.
If a non-ancestor group is removed, the cycle counter increments.
Charon is also the function that calls the sampling and proto reports (either phones or vowels, according to the sampling method).
Blevins, Juliette (2004). _Evolutionary Phonology. _
Ohala, J. J. (1981). "The listener as a source of sound change."
Rosner, B. S. and J. B. Pickering (1994). Vowel Perception and Production.