I've always wondered this--you should only have to restart linux if you change the kernel!--and I think I found out how:
do:
sudo /etc/init.d/alsa-utils restart
But sometimes this won't work if something is really holding on to the sound so do:
name@comp:~$ lsof | grep pcm
sh 5079 name 70u CHR 116,6 13639 /dev/snd/pcmC0D0p
esd 5080 name 70u CHR 116,6 13639 /dev/snd/pcmC0D0p
to find the process id and then kill it and restart:
name@comp:~$ kill -9 5079
name@comp:~$ kill -9 5080
name@comp:~$ lsof | grep pcm
sudo /etc/init.d/alsa-utils restart
and hopefully that will work.