Seasonal Generative Radio is a submission for Kontinuum 2022, which combines the changing seasons throughout the year with a well known composition by Vivaldi (Four Seasons) to generate a unique and ever evolving composition which will play for 365 days in a row if selected by the panel. The musical generation is supplemented with artificially generated narration, which is programmatically triggered to play every hour, similar to a radio presenter.
Our work combines a number of technologies, which can be run continually on a server if required.
The weather is reflective of the constantly changing conditions in which we live our day to day lives. While there is a certain level of predictable ranges in which we can expect the weather to vary over on any given day, the number of variables which combined describe the environment is a powerful stimuli to base a generative composition on.
Weather data captured as generative stimuli
wind speed
: The speed of the wind, given in meters/sec
wind gust
: The gust of the wind, given in meters/sec
wind deg
: A meteorological measurement of the direction of the wind in degrees
temperature
: Temperature in degrees celsius
temperature_max
: Maximum temperature at the moment. This is maximal currently observed temperature (within large megalopolises and urban areas).
temperature_min
: Minimum temperature at the moment. This is maximal currently observed temperature (within large megalopolises and urban areas).
feels_like
: This temperature parameter accounts for the human perception of weather.
Visibility
: Human visibility in meters
Humidity
: Humidity in the air described as a % value
Pressure
: Atmospheric pressure
Rain
: Numerical representation of the amount of snowfall
Snow
: Numerical representation of the amount of snowfall
Clouds
: Cloudiness described as a % value
wind speed
: tempo
wind gust
:
wind deg
:
temperature
:
temperature_max
: Max distortion?
temperature_min
: Min distortion?
feels_like
:
Visibility
:
Humidity
:
Pressure
:
Rain
:
Snow
:
Clouds
:
Luca to describe modulation of audio sources using weather data
- Describe programme used
- How the sound is modulated
To generate the narration every hour, we use a generative language model called GPT-Neo, an open source alternative to OpenAI's GPT-3. It is trained on the Pile dataset and achieves comparable results to OpenAI's GPT-3 model.
Interestingly, generative models take an input parameter called temperature
to control how 'far' away from context the model can sway. As a result, the weather data also bears an impact on the generation of our narration, ensuring greater variability in the text.
Temperature is commonly a number around 1
, as a result, we calculate temperature as: temperature_min
/ temperature_max
Note: Max Length could also be generated by using weather data, e.g. pressure * Humidity %
All generative language tasks require an initial prompt to trigger the model to start predicting the next word or set of words in a sequence. We keep ours generic enough to allow for a greater variety of outcomes over the course of each day:
Welcome to Seasonal Generation Radio, today we're going to be talking about
Start by setting up a new conda environment to run on the server
conda env create -f environment.yml
conda activate radiogen
Weather
The weather module can be run as a standalone script, or can be called from other modules.
parameters:
city
: Name of the city you want to return data for
stream
: (yes/no) - whether you want a stream returned or a single response
interval
: (1s / 10s / 30s) - the interval at which the stream should be refreshed
To start a weather stream for London which refreshes every 10 seconds run:
python weather.py London yes 10s