What happened.......!?!?!?!

I’ve been holding so much in for the past few months and I just can’t anymore. I need to let it out. So I’m 4 months pregnant and me and my SO we’re doing great before I got pregnant. We have been together for a few years now and it took us only 3 months to get pregnant so it wasn’t anything stressful and we did plan it. BUT now everything has just went downhill. We fight constantly. We don’t hangout. I can’t even have a conversation with him without him calling me a dumb ass or putting me down and laughing at me. When I talk about the baby he just doesn’t seem as interested anymore. I tell him lets go shopping for the baby and he says I don’t feel like it. I could only text him because if I call him he hangs up on me within a minute for no reason. He doesn’t ask how me and the baby are doing as I’ve been really sick. We haven’t had sex since Valentine’s Day and we don’t even make out anymore! He’s a psycho, whenever I do see him just for him to drop me off at school he doesn’t want to talk to me and the last time we were fighting and he started speeding and tried crashing. I yelled at him and told him wtf he’s gonna end up killing us and our baby and he just said are you fucken stupid, shut the fuck up. Yes I know I need to leave him. I don’t feel safe with him and I’ve been in an abusive relationship before but the question is..what went wrong? He was a respectful guy before and never did anything even close to what he’s doing now up until I got pregnant (obviously, otherwise I would of ran as far away as possible) Now I know I’m going to end up being a single mother which makes me really sad, and breaks my heart for my baby’s sake but I just don’t get why guys change once a girl gets pregnant. If anything they should be treating us like a princess because we’re carrying their baby for 9 months! I’m a complete mess, I can’t stop crying. I always said I’d have one baby daddy and that would be my husband who I want to spend the rest of my life with but looks like it’s not happening for me...