1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 package android.speech.tts;
17 
18 import android.os.Bundle;
19 
20 /**
21  * Contains data required by engines to synthesize speech. This data is:
22  * <ul>
23  *   <li>The text to synthesize</li>
24  *   <li>The synthesis locale, represented as a language, country and a variant.
25  *   The language is an ISO 639-3 letter language code, and the country is an
26  *   ISO 3166 alpha 3 code. The variant is not specified.</li>
27  *   <li>The name of the voice requested for this synthesis. May be empty if
28  *   the client uses {@link TextToSpeech#setLanguage} instead of
29  *   {@link TextToSpeech#setVoice}</li>
30  *   <li>The synthesis speech rate, with 100 being the normal, and
31  *   higher values representing higher speech rates.</li>
32  *   <li>The voice pitch, with 100 being the default pitch.</li>
33  * </ul>
34  *
35  * Any additional parameters sent to the text to speech service are passed in
36  * uninterpreted, see the {@code params} argument in {@link TextToSpeech#speak}
37  * and {@link TextToSpeech#synthesizeToFile}.
38  */
39 public final class SynthesisRequest {
40     private final CharSequence mText;
41     private final Bundle mParams;
42     private String mVoiceName;
43     private String mLanguage;
44     private String mCountry;
45     private String mVariant;
46     private int mSpeechRate;
47     private int mPitch;
48     private int mCallerUid;
49 
SynthesisRequest(String text, Bundle params)50     public SynthesisRequest(String text, Bundle params) {
51         mText = text;
52         // Makes a copy of params.
53         mParams = new Bundle(params);
54     }
55 
SynthesisRequest(CharSequence text, Bundle params)56     public SynthesisRequest(CharSequence text, Bundle params) {
57         mText = text;
58         // Makes a copy of params.
59         mParams = new Bundle(params);
60     }
61 
62     /**
63      * Gets the text which should be synthesized.
64      * @deprecated As of API level 21, replaced by {@link #getCharSequenceText}.
65      */
66     @Deprecated
getText()67     public String getText() {
68         return mText.toString();
69     }
70 
71     /**
72      * Gets the text which should be synthesized.
73      */
getCharSequenceText()74     public CharSequence getCharSequenceText() {
75         return mText;
76     }
77 
78     /**
79      * Gets the name of the voice to use.
80      */
getVoiceName()81     public String getVoiceName() {
82         return mVoiceName;
83     }
84 
85     /**
86      * Gets the ISO 3-letter language code for the language to use.
87      */
getLanguage()88     public String getLanguage() {
89         return mLanguage;
90     }
91 
92     /**
93      * Gets the ISO 3-letter country code for the language to use.
94      */
getCountry()95     public String getCountry() {
96         return mCountry;
97     }
98 
99     /**
100      * Gets the language variant to use.
101      */
getVariant()102     public String getVariant() {
103         return mVariant;
104     }
105 
106     /**
107      * Gets the speech rate to use. The normal rate is 100.
108      */
getSpeechRate()109     public int getSpeechRate() {
110         return mSpeechRate;
111     }
112 
113     /**
114      * Gets the pitch to use. The normal pitch is 100.
115      */
getPitch()116     public int getPitch() {
117         return mPitch;
118     }
119 
120     /**
121      * Gets the additional params, if any.
122      */
getParams()123     public Bundle getParams() {
124         return mParams;
125     }
126 
127     /**
128      * Gets the request caller Uid.
129      */
getCallerUid()130     public int getCallerUid() {
131         return mCallerUid;
132     }
133 
134     /**
135      * Sets the locale for the request.
136      */
setLanguage(String language, String country, String variant)137     void setLanguage(String language, String country, String variant) {
138         mLanguage = language;
139         mCountry = country;
140         mVariant = variant;
141     }
142 
143     /**
144      * Sets the voice name for the request.
145      */
setVoiceName(String voiceName)146     void setVoiceName(String voiceName) {
147         mVoiceName = voiceName;
148     }
149 
150     /**
151      * Sets the speech rate.
152      */
setSpeechRate(int speechRate)153     void setSpeechRate(int speechRate) {
154         mSpeechRate = speechRate;
155     }
156 
157     /**
158      * Sets the pitch.
159      */
setPitch(int pitch)160     void setPitch(int pitch) {
161         mPitch = pitch;
162     }
163 
164     /**
165      * Sets Caller Uid
166      */
setCallerUid(int uid)167     void setCallerUid(int uid) {
168         mCallerUid = uid;
169     }
170 }
171