Reading javax.speech.engine.Engine.allocate(int mode) it sasy: "When the mode is ~ASYNCHRONOUS_MODE, it operates the same as the signature with no arguments (see allocate())." But in javax.speech.engine.Engine.deallocate(int mode): "Calling deallocate(~ASYNCHRONOUS_MODE &~IMMEDIATE_MODE) operates the same as the signature with no arguments (see deallocate())."
It seems that in allocate you have two mode: asynchronous and immediate, but in deallocate you have a third mode: 0x00.