Transferring data over sound with QAM / QPSK
The problem with transmitting data over an acoustic link is the variability of the channel. Things you need to take into account are

Bandwidth, quality &amp; directionality of the microphone
Bandwidth, quality &amp; directionality of the loudspeaker
Specifically the distortion properties of the loudspeaker
Relative placement and distance of speaker and microphone
Acoustic environment: reverb time as a function of frequency, distinct reflections, absorption properties, sympathetic buzzing and rattling, etc.
Background &amp; competing noises: number of sources, spatial distribution, temporal &amp; spectral properties, energy,
All of the above can be stationary or time variant.

As a result the amount of data you can reliably transmit varies by several orders of magnitude with the channel properties alone. In a clean &amp; stable environment with good speaker close to a microphone QAM is definitely possible. In a busy restaurant with a laptop speaker: not so much.