Text-to-Speech Machine Learning - Preprocessing - Python Advanced
Github Repository
Objective
Create a text-to-speech model.
Details
This project involves implementing a custom text-to-speech (TTS) model using deep learning techniques. The model is trained to generate speech from text by processing spectrograms through a neural network architecture consisting of Convolutional and Long Short-Term Memory (LSTM) layers. The project includes building the model, preprocessing data (creating spectrograms from audio files and getting text), and generating speech through a spectrogram-to-audio conversion process using Griffin-Lim. This solution demonstrates proficiency in deep learning, audio signal processing, and the creation of machine learning models for speech synthesis.
Project
Download from Github repo. (Note: I have not yet had the computing power available to train a full model, so end results may vary).
What I Learned
Through this project, I gained hands-on experience in deep learning for text-to-speech synthesis. I learned how to preprocess and convert audio data into spectrograms, build and train neural networks using TensorFlow, and apply techniques like LSTMs for sequence prediction. Additionally, I explored audio signal processing methods such as Griffin-Lim to convert spectrograms back into speech.
Music Bot Machine Learning - Python - SQL Advanced
Github Repository
Objective
Create a music recommendation machine learning model with my own data scraping.
Details
I wanted to try a different approach to recommending songs to see how well it would work and to possibly introduce new songs to people. To accomplish this, I decided I would request song information from the Spotify API. I would then use the Wikipedia API to find the corresponding articles for the songs if one existed. My machine learning model was then trained by using comparisons of the Wikipedia articles to get similarity ratings for different songs.
Project
Currently in progress.
What I Learned
Through this project, I was able to reinforce my knowledge of SQL, connecting to and using unfamiliar APIs in my projects, and gathering needed data to reach a goal. I was also able to learn more about Python machine learning and pipelines.
Account Manager Tokens - Encryption - Python - SQL Advanced
Github Repository
Objective
Learn more about account/login systems by making my own custom one.
Details
I thought it would be a good learning opportunity to try to create a secure user login system by myself. While I would not use this for real site users, it helped me think through the process of making and securing a database of users. I implemented features such as two-factor authentication, email validation, session tokens, password resetting, security questions, login tracking, and IP tracking.
Project
Currently in progress.
What I Learned
I learned how to implement user authentication and authorization, how to keep important data secure through hashing and preventing things such as SQL injections, token generation and tracking, and input validation.
Auto-Differentiation / Dual Numbers Python - Calculus Intermediate
Github Repository
Objective
Implement the math behind dual numbers in order to have an auto-differentiator.
Details
Dual numbers are similar to complex numbers. They have a real part and a dual part. The cool thing about dual numbers is, if you plug them into a function, the real part equals the normal value of the function and the dual part equals the value of the derivative of the function. Eventually, I want to make my own neural network program from scratch. Since you need to take lots of derivatives in order to do that, I thought it would be useful to have these numbers to more easily do that, so I implemented basic arithmetic and a plethora of common math functions to work with them.
Project
Download in Github repo
What I Learned
I learned a lot about the math behind auto-differentiation and implementing my own number system in python.
Portfolio Website Web Design - HTML - CSS - Javascript - Flask/Python Intermediate
Github Repository
Objective
Create a dynamic website to show my work.
Details
It was a priority for me to make my portfolio website functional on all devices, so this website is responsive to whatever device it is viewed on. All the extra features are implemented using Javascript.
Project
The website you are currently on.
What I Learned
I learned a lot about making a website responsive through CSS and javascript. I was also able to tinker around with javascript to make some extra user interactivity.
Graphing Calculator Javascript Intermediate
Github Repository
Objective
Deepen understanding of javascript by implementing a basic graphing calculator
Details
I wanted to strengthen my javascript knowledge by spending a little bit of time on a project and I enjoy math, so I thought it would be cool to make my own Simple graphing calculator that I could expand on later. Other than obviously the HTML, I only used javascript so that I could become more familiar with it. I implemented features such as having multiple functions, being able to toggle function visibility, being able to adjust graph details, and being able to pan and zoom on the graph.
Project
WebsiteWhat I Learned
I learned a lot about javascript and making projects in it while developing this. I also learned about correctly handling user interaction and got to practice making some simple regular expressions.
Note Bar Python - PyQt5 - SQL Intermediate
Github Repository
Objective
Create a simple note bar that is unintrusive to have on my screen at all times
Details
I thought it would be useful to have a lightweight, small note application so that I can easily just create a new note whenever I need to.
Project
Download from Github repo
What I Learned
I learned a lot about PyQt5 and was able to work with SQLite again.
Letter Shift Web Design - Javascript Simple
Github Repository
Objective
Make a simple game using javascript.
Details
I wanted to practice web design and javascript by making a clean, simple game. In the game, the user is provided a word that has had a Caeser cipher applied to it (so each letter is shifted away from its original position). From there, the user simply inputs a shift amounts to shift the letters until they get the original word.
Project
WebsiteWhat I Learned
I think I ended up with a simple, clean website. In making it I was able to practice using CSS to get that simple, clean look. I was also able to practice using javascript to manipulate elements and get user input.
Rubik's Cube Memory - C Simple
Github Repository
Objective
Practice coding with C.
Details
I wanted to practice coding with C and doing light memory manipulation, so I decided on making a Rubik's cube program. I programmed in all the possible moves, and the program is able to shuffle and solve a Rubik's cube.
Project
There currently is no end-user product, just the code that is viewable in the Github Reposity.
What I Learned
This project was more for getting extra practice doing things I already knew how to do with C.