There should be different levels of perception.
Zombies that hear gunshots from far away should move maybe a hundred meters roughly in that direction and stop if there is no visual.
Zombies that hear steps should move in the direction the steps come from.
Only when there is actual visual contact should zombies attack the player.