As everyone has already said, Confidence is key! But confidence stems from a positive mindset. Start by levelling up your mind. Think to improve. Improve your lifestyle, improve your grades. Even if its not related to girls, try to improve every aspect of your life. As you move up, your personality develops and you become more positive and confident. The more confidence you give off, the more people you attract. Eventually you'll be able to talk to any girl you want to!
Also, dress well. It has a impact on your confidence as well as other people's perception of you.
Don't try too hard for girls. Especially if you're not getting the same sort of effort back. Attract girls rather than chasing them. I think that this whole nice guy thing you have going on is great, but it shouldn't be your selling point. There are plenty of nice guys out there, what makes you different? That's what you should be thinking. Girls don't just want one good quality in a guy, they want many. Being a nice guy is good and all, but what else?
Also, don't change yourself to suit others. Are you a nice guy because that's generally who you are? Or are you a nice guy because it makes people like you? Don't become the admirable nice guy that's always doing the right thing because you think girls like it. Because in reality, nobody wants that. Just be yourself.
I think you need to develop yourself before you start thinking about how to talk to girls. Find what makes you different. The way to do that is by gaining confidence. The easiest way to gain confidence is the be successful and generate happiness