FPS, Trying to add sound to footsteps, Not working!

I am trying to add sound when the player is moving. I have a audio clip for running, and walking. How it works is if either w,a,s,or d, is held down play the clip during the duration of that time. Well when it plays it sounds like its looping(Maybe) extreamly fast. like ddddddddddddddd. Here is the script, yes i know this isn’t the best way to go about this but it will do for now. What might the problem be? How can I fix this?

public class PlayerSound : MonoBehaviour {

    public AudioClip walkSound;

	// Update is called once per frame
	void Update () 
    {
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S)
            || Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.W))
        {
            audio.PlayOneShot(walkSound, 0.7f);
        }
	}
}

You should have a small delay between each footstep, so something like this should work:

public class PlayerSound : MonoBehaviour {
    public AudioClip walkSound;
    public float footstepDelay;

    private float nextFootstep = 0;

    void Update () {
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S)
            || Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.W)) {
            nextFootstep -= Time.deltaTime;
            if (nextFootstep <= 0) {
                audio.PlayOneShot(walkSound, 0.7f);
                nextFootstep += footStepDelay;
            }
        }
    }
}

It just counts a timer down, then when it hits zero it resets it and plays the footstep sound.

Yeah, that helped great with the playing time. But I am having trouble with the rate which the sound is played. The clip its self is playing as if its being fastforward. How could I change the clip play speed.