1181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger/*
2181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * Copyright (C) 2009 The Android Open Source Project
3181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *
4181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * Licensed under the Apache License, Version 2.0 (the "License");
5181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * you may not use this file except in compliance with the License.
6181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * You may obtain a copy of the License at
7181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *
8181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *      http://www.apache.org/licenses/LICENSE-2.0
9181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *
10181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * Unless required by applicable law or agreed to in writing, software
11181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * distributed under the License is distributed on an "AS IS" BASIS,
12181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * See the License for the specific language governing permissions and
14181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger * limitations under the License.
15181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger */
16181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
17181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballingerpackage android.speech;
18181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
19181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballingerimport android.os.Bundle;
20181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
21181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger/**
223da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov *  Listener for speech recognition events, used with RecognitionService.
23181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *  This gives you both the final recognition results, as well as various
24181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *  intermediate events that can be used to show visual feedback to the user.
25181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger *  {@hide}
26181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger */
273da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsovoneway interface IRecognitionListener {
2879896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    /**
2979896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * Called when the endpointer is ready for the user to start speaking.
3079896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
3179896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * @param params parameters set by the recognition service. Reserved for future use.
3279896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     */
3379896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    void onReadyForSpeech(in Bundle params);
34181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
3579896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    /**
3679896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * The user has started to speak.
3779896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     */
38181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger    void onBeginningOfSpeech();
39181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
4079896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    /**
4179896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * The sound level in the audio stream has changed.
4279896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
4379896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * @param rmsdB the new RMS dB value
4479896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     */
45181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger    void onRmsChanged(in float rmsdB);
46181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
47181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger    /**
4879896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * More sound has been received.
4979896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
5079896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * @param buffer the byte buffer containing a sequence of 16-bit shorts.
51181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger     */
52181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger    void onBufferReceived(in byte[] buffer);
53181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
5479896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    /**
5579896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * Called after the user stops speaking.
5679896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     */
57181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger    void onEndOfSpeech();
58181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
5934b234d53f9658ff7206dad6158993a1d197ffa7Mitsuru Oshima    /**
6079896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * A network or recognition error occurred.
6179896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
622a5d9f9b577376768372837723f0f42098aba13bJean-Michel Trivi     * @param error code is defined in {@link SpeechRecognizer}
6334b234d53f9658ff7206dad6158993a1d197ffa7Mitsuru Oshima     */
6434b234d53f9658ff7206dad6158993a1d197ffa7Mitsuru Oshima    void onError(in int error);
65181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger
6679896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    /**
6734b234d53f9658ff7206dad6158993a1d197ffa7Mitsuru Oshima     * Called when recognition results are ready.
6879896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
6979896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * @param results a Bundle containing the most likely results (N-best list).
7079896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     */
7179896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    void onResults(in Bundle results);
7279896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov
7379896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     /**
7479896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * Called when recognition partial results are ready.
7579896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     *
7679896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov     * @param results a Bundle containing the current most likely result.
77181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger     */
7879896bd123aa3bc69c6455d4e2ddf2b2b555e6e5Valentin Kravtsov    void onPartialResults(in Bundle results);
793da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov
803da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov    /**
813da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov     * Reserved for adding future events.
823da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov     *
833da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov     * @param eventType the type of the occurred event
843da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov     * @param params a Bundle containing the passed parameters
853da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov     */
863da3cad97269d694a6153771fb4a0c3775ca6ab5Valentin Kravtsov    void onEvent(in int eventType, in Bundle params);
87181a44dd81eed5587252ef740663a42fe4d2a9a9Brandon Ballinger}
88