Sample voice spectrum
There are many people who are wanted to play an instrument but never had the chance to learn it, practice it, and master it. Even for those who have already master one instrument, taking time to learn a new instrument may be troublesome. Furthermore, some people may be physically unable to play an instrument. Therefore, it would be useful and interesting to make something that turns human voices into popular instruments like the piano, trumpet, flute, clarinet, violin, and etc. Voiano is going to make that happen. Transforming human voices into instruments is quick and fun to play with. It is also convenient to play the tuba or cello with vocal via Voiano than to carry the big instruments around.
What it does
The user sings a song or hums a melody, Voiano will extracts the dominant frequencies of the user's voice and turns it into a note played by an instrument of the user's choices such as the piano. Currently, the Voiano only supports piano and it will process the signal with Raspberry Pi and eventually sends out the processed information to headphones so that the user will be able to hear their voice in piano. It can also serve as a calibrator for users who are trying to check their voice precision.
How we built it
First, Voiano was prototyped on MATLAB. Voice is broken into frequency spectrums using the Fast Fourier Transform of MATLAB. The dominant frequencies of your voice is extracted. Then it finds the appropriate tone in the selected instrument and outputs the result through the speakers. To make this device more compact, it was programmed onto the Raspberry Pi using Python, which allows it to be a stand-alone device without requiring a full-blown computer.
Challenges we ran into
All sounds in real life are made up of nearly infinite amount of frequencies combined together. This made it difficult to find the right frequency in order to identify the correct tone. On top of that, there was the issue of noise. Another challenge was to make this device real time. The intention was to output the sound of the instrument as the user sings. It was difficult to record, process, and output the sound such that there is no noticeable delay. There are also limitations to the Raspberry Pi. It was difficult to develop on it because the Raspberry Pi is small and slow.
Accomplishments that we're proud of
In a short amount of time, we are able to complete this challenge. As a team, we were focused and determined and that is an accomplishment. Despite the fact that we have a lot of academic commitments, we sacrificed the entire weekend to work on this project. Although there were many obstacles and challenges along the way, and yet we did not give up. We as a team have learned a lot along the way. We are proud to be able overcome these obstacles.
What we learned
Many of the things in this project were new to the team. We were relatively new to Python and the Raspberry Pi. Initially, we saw the Hackathon as a great way to learn and ultimately, this was the case. We never stopped pushing ourselves beyond the limits of our knowledge. By the end of it all, we learned how to learn, how to find the right information and how to apply our theories into practice. And along the way, we created something awesome.
What's next for Voiano
Currently, we have limited choice in instruments. However, this is trivial. We can easily extend the choices of instruments by expanding our sound library. Furthermore, we plan to be able to operate Voiano at higher and lower octaves for users with deeper or higher voices.