Delay between clicks and sound

I have this code inside OnGUI()

//BLA BLA
//when click button
    StartCoroutine(PlayAudio(click,"email"));
//BLA BLA

and this method

    private IEnumerator PlayAudio (AudioClip clip,string control)
    {
    		
    		audio.volume = 1.0f;
    		audio.loop = false;
    		audio.clip = clip;
    		audio.Play ();
    		yield return new WaitForSeconds(audio.clip.length);
                    //BLA BLA I do this after sound finish
    }

The problem is that the sound doesnt start when i click but after a few millisecond,and I do not why.

Try setting a lower DSP buffer size. I’ve posted more info on that in other answers here.

As someone pointed out in a comment the original answer’s link 404’s. Here is an updated link: Unity - Manual: Audio

If anyone is curious if this works, this fixed the issue for me as well.