{"id":23758451,"url":"https://github.com/xasopheno/whoyouare","last_synced_at":"2025-09-05T04:34:08.276Z","repository":{"id":27940120,"uuid":"115646732","full_name":"xasopheno/WhoYouAre","owner":"xasopheno","description":"A Deep Learning Toolkit for Composition and Improvisation","archived":false,"fork":false,"pushed_at":"2022-12-08T18:34:22.000Z","size":339870,"stargazers_count":4,"open_issues_count":30,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-02-28T11:47:02.657Z","etag":null,"topics":["audio","keras","pyaudio","python","real-time"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xasopheno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-28T17:48:17.000Z","updated_at":"2020-02-13T20:09:31.000Z","dependencies_parsed_at":"2022-09-18T10:21:41.878Z","dependency_job_id":null,"html_url":"https://github.com/xasopheno/WhoYouAre","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xasopheno%2FWhoYouAre","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xasopheno%2FWhoYouAre/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xasopheno%2FWhoYouAre/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xasopheno%2FWhoYouAre/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xasopheno","download_url":"https://codeload.github.com/xasopheno/WhoYouAre/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232024701,"owners_count":18461967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","keras","pyaudio","python","real-time"],"created_at":"2024-12-31T19:54:34.859Z","updated_at":"2024-12-31T19:54:35.360Z","avatar_url":"https://github.com/xasopheno.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WhoYouAre\nA Recurrent Neural Network trained on a corpus of melodic time series data is used to train a network to produce new melodies with structural similarities to that of the training corpus. Midi data is generated from microphone input. This data is then used to train an RNN using techniques commonly employed in the context of Natural Language Processing. Trained model makes predictions in under a 1/10 second and can be used in real-time situations. \n\nThe time needed to train a RNN increases with the amount of data presented to the network, but predict time remains relatively the same. Therefore, it is possible to supplement initial training data with additional melodies which will influence the types of melodic structures generated by the network while negligibly reducing network prediction speed. As the dataset in this case is generated by a musician, therefore uniquely personal, this process opens up an interesting window into the general study of RNNs. \n\n\n## Setup \n`pip3 install requirements.txt`\n\n`cd UI/front-end/ \u0026\u0026 yarn`\n\n## Use\n#### Generate a .csv file for training:\n\n`python3 Record.py -val -csv`\n\nCopy .csv values from `Audio/data/output_new.csv` to `Audio/data/input.csv`.\n\n#### Train on the .csv file:\n\nOpen `WhoYouAre.ipynb` with `jupyter notebook`\n\nCopy `model.h5` and `model.json` to `NN/trained_networks`\n#### You can then improvise with the trained model with \nFrom the directory `WhoYouAre` run `./client.sh` and `./server.sh`\n\n`python3 Record.py -nn -model=model -cli -val`\n\n#### `Record.py`\n```\n  -h, --help    show this help message and exit\n  -vol          Specify if input volume should be displayed.\n  -val          Specify if prediction values should be displayed.\n  -csv          Specify if a csv should be written.\n  -midi         Specify if midi should be sent with python-rt-midi.\n  -socket       Specify if frequencies should be sent to a local websocket.\n  -filtered     filter out redundant notes).\n  -py_osc       Specify if frequencies should be sent to the python\n                oscillator.\n  -nn           Improvise with neural network.\n  -model MODEL  specify model to be used with network.\n  -cli          set flag if using webclient\n  \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxasopheno%2Fwhoyouare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxasopheno%2Fwhoyouare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxasopheno%2Fwhoyouare/lists"}