I had a cat that did exactly the same thing, he would bite and scratch me whenever I went near him. However over the time that we had him, we did manage to get him to become better behaved - although he would still give the occasional nip!
How long it will take to train your cat will depend on how old it is: if it is quite young then it should be easier to get it to stop, however if it is an older cat that has been biting all its life, this is going to take a bit more work!
- Play fighting - Cats love to play fight, so a good way to teach it not to bite is by doing something it loves. Start by playing with your cat gently until you can see that it is getting over excited and is about to use its teeth or claws.
As soon as it bites say 'No' in a firm voice, and stop playing. If you repeat this process your cat should soon learn that if it wants you to play with it, then it needs to be gentle.
- Exercise- Although you have said that you do take your cat for walks, it is often that cats have too much pent up energy and will cause them to bite. Make sure that you play with your cat enough. If you have a cat laser this is a great way to get your cat to run around without you having to run around yourself!
- Spray bottle- Don't give up with the spray bottle method, this is what proved most effective for me but it did take a lot of time and consistency.
- Praising- Cats will respond to being praised for good behaviour. So if you stroke your cat and it doesn't bite make sure to give lots of positive reinforcement and the occasional treat or two.
- Look for signs- It is usually clear when a cat is about to bite, their tails twitch, ears flatten and it will stare straight at you. When this occurs stop stroking your cat and either place him outside, at a scratching post or give him a toy. This will divert his aggression onto something else other than you.
I hope this helps, give it time and hopefully your cat will stop with the biting.