Code Monkey home page Code Monkey logo

radiogen's Introduction

Seasonal Generative Radio

Open In Colab

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.

Detailed Explanation

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

Relationships

wind speed: tempo
wind gust:
wind deg:
temperature:
temperature_max: Max distortion?
temperature_min: Min distortion?
feels_like:
Visibility:
Humidity: Pressure:
Rain:
Snow:
Clouds:

Audio Generation

Luca to describe modulation of audio sources using weather data

  • Describe programme used
  • How the sound is modulated

Narration Generation

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

Audio Generation Process

Set-Up

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

radiogen's People

Contributors

kayvane1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.