python-pulseaudio uses ctypes and appears to have everything you need. You will have to take care of the types of numpy arrays and use their buffer interfaces, but this should be doable.
I think you can be happier using ALSA as the layer above pulseaudio; most applications seem to work that way. PyAlsaAudio looks like what you need there.
source share