code: @BetaApi(
        "The surface for long-running operations is not stable yet and may change in the future.")
    public final OperationFuture<LongRunningRecognizeResponse, LongRunningRecognizeMetadata>
        longRunningRecognizeAsync(LongRunningRecognizeRequest request) {
      return longRunningRecognizeOperationCallable().futureCall(request);
    }
docs: Performs asynchronous speech recognition: receive results via the google.longrunning.Operations
  interface. Returns either an `Operation.error` or an `Operation.response` which contains a
  `LongRunningRecognizeResponse` message.
  
  <p>Sample code:
  
  <pre><code>
  try (SpeechClient speechClient = SpeechClient.create()) {
  RecognitionConfig.AudioEncoding encoding = RecognitionConfig.AudioEncoding.FLAC;
  int sampleRateHertz = 44100;
  String languageCode = "en-US";
  RecognitionConfig config = RecognitionConfig.newBuilder()
  .setEncoding(encoding)
  .setSampleRateHertz(sampleRateHertz)
  .setLanguageCode(languageCode)
  .build();
  String uri = "gs://bucket_name/file_name.flac";
  RecognitionAudio audio = RecognitionAudio.newBuilder()
  .setUri(uri)
  .build();
  LongRunningRecognizeRequest request = LongRunningRecognizeRequest.newBuilder()
  .setConfig(config)
  .setAudio(audio)
  .build();
  LongRunningRecognizeResponse response = speechClient.longRunningRecognizeAsync(request).get();
  }
  </code></pre>
  
  @param request The request object containing all of the parameters for the API call.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails