Husband calls me names

My husband and I have been together for 7 years now. I would say we have a pretty awesome relationship. Our personalities mesh well together and we are both very laid back. Just with in the past few months my husband has picked up this horrible habit of calling me names!!

How do I get him to stop?

If something frustrates him instead of talking it out like we usually do he goes straight to "you're a dumb fucking bitch", "you're an idiot", "how do you have a college degree when you are so fucking dumb".

Wtf!!! Where did this come from?!? This needs to be nipped in the butt asap! We NEVER use to talk to each other like this. I have had one small talk about it and he apologized, said he wasn't sure why he got so worked up, and said he would stop. Well, he hasn't stopped.

Anyone else experience something similar and was able to find a way to get the hubs to stop speaking like this?

Ps: I'm not gonna divorce him or leave him. This is something we can work through, I would just love some advice on how to get him to stop with the insults when he is mad.