why does the decision boundary change in BPSK? is it true?
Zero-mean noise by itself can't modify the decision boundary. However, the number of things that can go wrong in your system is large.

Is your channel flat or frequency-selective?

You can think of the channel as the sound card and its driver, the loudspeaker, the air, the microphone, and the receiver's sound card and its driver. In my experience, there's very large variability in the frequency response of such a system. You can find the channel's response (for example by transmitting noise or an impulse) and use only the frequency band where it's flat. Or, you can design a wide-band system, but then you'll need an equalizer in the receiver.

Is your carrier synchronizer working?

Plot the received signal and see if its envelope is constant. If it's changing over time, you may have a faulty synchronizer. One quick way to get around this problem is to use DSB-LC modulation and demodulate the signal with an envelope detector.

Are you using a matched filter?

You need one to get optimal signal-to-noise ratio. After your filter, plot the signal's eye diagram. If it's open, then you know that your system up to this point is correct.

Is your symbol timing correct?

Since the clocks of the transmitter and receiver are different, you need to do adaptive symbol timing recovery to properly sample the matched filter's output. To test this, plot the sampled symbols over a long time. If they are correct for some time, but then start to get closer and closer, your symbol timing recovery is off.

Is your frame synchronization correct?

Finally, you need to verify your frame synchronization is correct; otherwise it's very hard to align the transmitted and received streams for bit error calculations.

I'd suggest verifying the correct operation of your system block by block, in the order I have listed them.