Basic h-bridge motor driver circuit for audio PWM waves with possible negative voltage
Your basic architecture is flawed.  The circuit producing the audio output will high pass filter the signal somewhere in the path.  Even in "HiFi" audio, 20 Hz can be attenuated 3 dB with gain dropping off arbitrarily below that.

The net result is that there is no DC information in the signal.  There is therefore no positive and negavite PWM.  The DC average of the signal will be 0.  For example, a positive 70% duty cycle PWM will be indistinguishable from a negative PWM of 30% duty cycle.

You might be able to salvage some of this concept by using 50% duty cycle as the 0 level, with high duty cycles (more time spent high than low) meaning forward rotation and low duty cycles meaning backward rotation.  Note that you can't use 100% or 0% duty cycle for full forward and full backward since both would look the same after DC is removed.  You probably want to limit the PWM to the 5-95% range or thereabouts.

However, all this is a kludge.  You mention the device producing this audio is a Android phone, so you have various other digital communication interfaces available.  One way or another you want to get digital motor speed from the device, and have the microcontroller driving the H bridge produce the actual pulses.  You could even pass digital information over the audio output.