Data over audio really isn't all that complicated folks. It's been done many many times.
Modem stuff obviously is not the best to emulate, since everything about it is designed for use on POT lines, which have very limited frequency response.
For example, there is an open source fax patch for Asterisk that emulates a fax modem over VoIP. (http://www.zoiper.com/foip/ for those interested) But its limited to ~14.4kbps max I believe.
PC sound cards and smart phone sound cards and the like are much higher quality in most cases. Granted, you probably would need a decent effort to get decent speeds, still, but, it's certainly not impossible. I'd say 64kbit/sec (4MB in ~8 min) would be reasonably easy to achieve even with mono audio, and even with single direction comm. Granted that this would work best as a two way link (speaker and mic on each device).
I've actually considered using audio data transfer for another project, but, never got around to making the code. And I'll never write something like this for python, so, not going to be much help here anyways.
Just pointing out that it's possible!
-wk
Well anything in C++ would work, as it's trivial for me to pull it into python. I just thought that python would be "easier" since it creates a nice platform-independent interface to the audio devices. But if you created a C++ implementation that works for one platform, I'm sure it can be adapted it to my needs.