Watson STT Java: resultados variables entre Websockets Java y HTTP POST

Estoy tratando de crear una aplicación que tome una entrada de audio transmitida (por ejemplo: una línea en el micrófono) y que haga Voz a Texto usando IBM Bluemix (Watson).

Modifiqué brevemente el código Java de ejemplo encontradoaquí. Este ejemplo envía un WAV pero en cambio estoy enviando un FLAC ... esto es [debería] ser irrelevante.

Los resultados son malos, muy malos. Esto es lo que obtengo cuando uso el código Java Websockets:

{
  "result_index": 0,
  "results": [
    {
      "final": true,
      "alternatives": [
        {
          "transcript": "it was six weeks ago today the terror ",
          "confidence": 0.92
        }
      ]
    }
  ]
}

Ahora, compare los resultados anteriores con los siguientes. Estos son los resultados cuando se envía lo mismo pero en su lugar se usa cURL (HTTP POST):

{
   "results": [
  {
     "alternatives": [
        {
           "confidence": 0.945,
           "transcript": "it was six weeks ago today the terrorists attacked the U. S. consulate in Benghazi Libya now we've obtained email alerts that were put out by the state department as the attack unfolded as you know four Americans were killed including ambassador Christopher Stevens "
        }
     ],
     "final": true
  },
  {
     "alternatives": [
        {
           "confidence": 0.942,
           "transcript": "sharyl Attkisson has our story "
        }
     ],
     "final": true
  }
   ],
   "result_index": 0
}

Ese es un resultado casi perfecto.

¿Por qué la diferencia al usar Websockets?

Respuestas a la pregunta(1)

Su respuesta a la pregunta