Hi, I'd like to help you with your problem.
I am sorry you are going through this with your husband. You mentioned that he stopped talking with you all of a sudden. That leads me to believe that there was no precursor to his behavior, nothing that you feel or can recall that could have triggered his reaction.
Since there is no one incident to point to that tells you what is going on with your husband and he will not tell you why he won't speak, you are left to guess. There are two possibilities that I can think of. One, he has some personal issue, maybe a shock of some sort or a mental health problem that you are not aware of. Two, he is perceiving that you did something wrong and this is his way of punishing you. If he has done this before and you recall the reason why, this is most likely a repeat of that behavior.
What is confusing is the inconsistency of his behavior. If he was angry, he would not be buying you things or doing more around the house than usual, unless he feels that his not speaking to you is sufficient enough to make you upset and therefore he gets revenge that way. It is a very complicated way to express anger, but for some people that is what works.
Is he speaking to others? Does he talk on the phone when you are around? If he works, then he also must speak there. That information will tell you a lot about what he is doing.
You can do several things about this. One, you can ignore him. Go about your business as best you can. One of these days, he will need to speak with you about something that needs discussed. It is highly unlikely he will be able to continue since it takes two of you to run the household. Another thing you could try is suggesting counseling together. Tell him you want to work this out, whatever it is. If he won't go with you, go alone. You need support to help you deal with your husband's behavior. Also, if you seek counseling, it tells your husband you are serious about doing something about his behavior, good or bad. If he does go, talk about how his anger can be better expressed without going to such an extreme. Agree to listen, whatever it is and learn more together about how to communicate and talk things out. Also, if he learned this behavior as a child, maybe seeing his parents or other adults doing this, he needs to learn that it is not an acceptable response to feelings of anger. The therapist can help him learn better ways to express himself.
You can also decide whether or not you want to deal with the behavior at all. You could try to stay out as much as possible, visit a relative or friend for a few days, or go somewhere on your own for a while. This is not so much about revenge, but rather a way to enjoy yourself without having to put up with the behavior. If it is a form of revenge on you, the less attention you pay to it, the better the chances he will stop using it against you.
If you ever feel that your husband's behavior is about a possible mental health or physical disorder, suggest he contact his doctor and schedule and evaluation. You can also call the doctor as well and describe the behavior and ask for suggestions. Depending on the symptoms, he could be suffering from a physical problem that has behavioral symptoms.
I hope this has helped you,