What would your voice sound like if it were a grand piano?
Voice Tunes records raw audio, converts the recording to MIDI using a machine learning API, and allows users to play the file back as a grand piano. Users can also create an account to share their tunes, re-record and remove tunes, and save tunes either in the app or to their computer.
This app builds off of, but is not affiliated with, Piano Scribe, an incredible open source project that transcribes audio files in the browser using Magenta.js and TensorFlow.js.
Want to take your tune to the next level and see what it might look like as sheet music?
Try uploading your tune to Midi Sheet Music! You will need to download the program, but it's free, takes a minute, and is definitely worth it.
- Voice Tunes - Play with the app! Note that this app works best on Chrome. Also, because this app is deployed on Heroku, it may take a minute to load. If it takes longer than this, you may need to refresh your browser.
- Demo - Watch a demo of the app.
- Create/remove a username
- Record audio, convert to MIDI, and then play recording
- Save MIDI in-app to play later on
- Save MIDI to computer
- Edit MIDI name in-app (just double-click on the name!)
-
Connect to a cloud storage service such as Amazon S3, Google Cloud Storage, or Microsoft Azure Storage. This app is configured to upload MIDI files to Google Cloud Storage (GCS). If you don't already have an account with a cloud storage service, you'll need to create one. All of the services previously mentioned have free or affordable options. If you opt for a service other than GCS, you'll need to modify the storage.yml file in voice-tunes-backend/config/.
Once you have a service, create a folder called 'secrets' within voice-tunes-backend/config/. Then, place your credentials file into that directory. You should be able to generate the credentials file through your service's website. Be sure the file's path matches the path in voice-tunes-backend/config/storage.yml.
For more information on connecting to a cloud storage service with Active Storage, check out the documentation here. I also found this tutorial to be quite helpful.
-
Set up the database. In your console, cd into the voice-tunes-backend directory. Then run 'rake db:migrate'.
-
Run 'bundle install' to install the necessary Ruby gems and you're good to go!
Bug reports and pull requests are welcome on GitHub at https://github.com/alexander-mc/voice_tunes.git. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.