ITextToSpeechService.aidl revision 5acb33af357b56fffb055997718b1e4aa97f53fc
150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert/*
250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Copyright (C) 2011 The Android Open Source Project
350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License");
550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * you may not use this file except in compliance with the License.
650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * You may obtain a copy of the License at
750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *      http://www.apache.org/licenses/LICENSE-2.0
950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
1050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Unless required by applicable law or agreed to in writing, software
1150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS,
1250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * See the License for the specific language governing permissions and
1450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * limitations under the License.
1550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert */
1650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
1750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertpackage android.speech.tts;
1850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
1950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.net.Uri;
2050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.os.Bundle;
215acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniakimport android.os.ParcelFileDescriptor;
2250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertimport android.speech.tts.ITextToSpeechCallback;
2350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
2450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert/**
2550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * Interface for TextToSpeech to talk to TextToSpeechService.
2650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert *
2750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert * {@hide}
2850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert */
2950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringertinterface ITextToSpeechService {
3050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
3150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
3250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Tells the engine to synthesize some speech and play it back.
3350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
34492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
35492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
3650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param text The text to synthesize.
3750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
3850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
3950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
40492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    int speak(in IBinder callingInstance, in String text, in int queueMode, in Bundle params);
4150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
4250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
4350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Tells the engine to synthesize some speech and write it to a file.
4450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
45492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
46492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
4750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param text The text to synthesize.
485acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak     * @param fileDescriptor The file descriptor to write the synthesized audio to. Has to be
495acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak              writable.
5050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
5150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
525acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak    int synthesizeToFileDescriptor(in IBinder callingInstance, in String text,
535acb33af357b56fffb055997718b1e4aa97f53fcPrzemyslaw Szczepaniak        in ParcelFileDescriptor fileDescriptor, in Bundle params);
5450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
5550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
5650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Plays an existing audio resource.
5750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
58492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
59492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
6050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param audioUri URI for the audio resource (a file or android.resource URI)
6150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
6250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
6350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
64492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    int playAudio(in IBinder callingInstance, in Uri audioUri, in int queueMode, in Bundle params);
6550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
6650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
6750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Plays silence.
6850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
69492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
70492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
7150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param duration Number of milliseconds of silence to play.
7250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param queueMode Determines what to do to requests already in the queue.
7350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param param Request parameters.
7450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
75492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    int playSilence(in IBinder callingInstance, in long duration, in int queueMode, in Bundle params);
7650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
7750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
7850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Checks whether the service is currently playing some audio.
7950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
8050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    boolean isSpeaking();
8150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
8250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
8350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Interrupts the current utterance (if from the given app) and removes any utterances
8450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * in the queue that are from the given app.
8550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
86492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     * @param callingInstance a binder representing the identity of the calling
87492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath     *        TextToSpeech object.
8850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
89492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    int stop(in IBinder callingInstance);
9050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
9150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
9250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Returns the language, country and variant currently being used by the TTS engine.
9350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
9450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Can be called from multiple threads.
9550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
9650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return A 3-element array, containing language (ISO 3-letter code),
9750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         country (ISO 3-letter code) and variant used by the engine.
9850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         The country and variant may be {@code ""}. If country is empty, then variant must
9950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         be empty too.
10050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
10150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    String[] getLanguage();
102b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak
103b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak    /**
104b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * Returns a default TTS language, country and variant as set by the user.
105b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *
106b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * Can be called from multiple threads.
107b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *
108b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     * @return A 3-element array, containing language (ISO 3-letter code),
109b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         country (ISO 3-letter code) and variant used by the engine.
110b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         The country and variant may be {@code ""}. If country is empty, then variant must
111b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     *         be empty too.
112b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak     */
113b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak    String[] getClientDefaultLanguage();
114b46533732c40c6aa4d0d7357176835a33d863234Przemyslaw Szczepaniak
11550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
11650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Checks whether the engine supports a given language.
11750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
11850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param lang ISO-3 language code.
11950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param country ISO-3 country code. May be empty or null.
12050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param variant Language variant. May be empty or null.
12150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return Code indicating the support status for the locale.
12250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         One of {@link TextToSpeech#LANG_AVAILABLE},
12350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_AVAILABLE},
12450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE},
12550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_MISSING_DATA}
12650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_NOT_SUPPORTED}.
12750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
12850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    int isLanguageAvailable(in String lang, in String country, in String variant);
12950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
13050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
131748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * Returns a list of features available for a given language. Elements of the returned
132748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * string array can be passed in as keys to {@link TextToSpeech#speak} and
133748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * {@link TextToSpeech#synthesizeToFile} to select a given feature or features to be
134748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * used during synthesis.
135748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     *
136748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param lang ISO-3 language code.
137748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param country ISO-3 country code. May be empty or null.
138748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @param variant Language variant. May be empty or null.
139748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     * @return An array of strings containing the set of features supported for
140748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     *         the supplied locale. The array of strings must not contain
141748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     *         duplicates.
142748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath     */
143748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath    String[] getFeaturesForLanguage(in String lang, in String country, in String variant);
144748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath
145748af66ca27d3afe2e16ccc80b147d447635292aNarayan Kamath    /**
14650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Notifies the engine that it should load a speech synthesis language.
14750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
14813896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     * @param caller a binder representing the identity of the calling
14913896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     *        TextToSpeech object.
15050e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param lang ISO-3 language code.
15150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param country ISO-3 country code. May be empty or null.
15250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param variant Language variant. May be empty or null.
15350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @return Code indicating the support status for the locale.
15450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         One of {@link TextToSpeech#LANG_AVAILABLE},
15550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_AVAILABLE},
15650e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE},
15750e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_MISSING_DATA}
15850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *         {@link TextToSpeech#LANG_NOT_SUPPORTED}.
15950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
16013896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak    int loadLanguage(in IBinder caller, in String lang, in String country, in String variant);
16150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
16250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert    /**
16350e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * Sets the callback that will be notified when playback of utterance from the
16450e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * given app are completed.
16550e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     *
16613896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     * @param caller Instance a binder representing the identity of the calling
16713896b74194b07c821d5d89713e4e747b9b77d73Przemyslaw Szczepaniak     *        TextToSpeech object.
16850e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     * @param cb The callback.
16950e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert     */
170492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath    void setCallback(in IBinder caller, ITextToSpeechCallback cb);
17150e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert
17250e657bb2d005568f5dd8bc1d904d07b0d94018fBjorn Bringert}
173