// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[JavaPackage="org.chromium.mojo.speech_recognizer"]
module speech_recognizer;

enum Error {
  NETWORK_TIMEOUT = 1,
  NETWORK = 2,
  AUDIO = 3,
  SERVER = 4,
  CLIENT = 5,
  SPEECH_TIMEOUT = 6,
  NO_MATCH = 7,
  RECOGNIZER_BUSY = 8,
  INSUFFICIENT_PERMISSIONS = 9
};

struct UtteranceCandidate {
  // Utterance text candidate returned by speech recognition service.
  string text;

  // Confidence score in [0,1].
  float confidence_score;
};

union ResultOrError {
  Error error_code;
  array<UtteranceCandidate> results;
};

// |SpeechRecognizerService| provides access to a speech recognition service.
// It is responsible for reading microphone input, deciding when the user is
// done speaking, and performing speech recognition on the result.
interface SpeechRecognizerService {
  // Starts listening to the user. When listening has finished or an error
  // occurs, returns |result_or_error|. Any call to Listen() made while another
  // is in progress will immediately return an error.
  Listen() => (ResultOrError result_or_error);

  // Stops the SpeechRecognizer from listening and finishes any previous call
  // to Listen() causing it to return.
  StopListening();
};