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