SynthesisRequest.java revision 653278341d76d0b23a008087ff94250ae0beb54b
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 */
16package android.speech.tts;
17
18import 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 synthesis speech rate, with 100 being the normal, and
28 *   higher values representing higher speech rates.</li>
29 *   <li>The voice pitch, with 100 being the default pitch.</li>
30 * </ul>
31 *
32 * Any additional parameters sent to the text to speech service are passed in
33 * uninterpreted, see the @code{params} argument in {@link TextToSpeech#speak}
34 * and {@link TextToSpeech#synthesizeToFile}.
35 */
36public final class SynthesisRequest {
37    private final String mText;
38    private final Bundle mParams;
39    private String mLanguage;
40    private String mCountry;
41    private String mVariant;
42    private int mSpeechRate;
43    private int mPitch;
44    private int mCallerUid;
45
46    public SynthesisRequest(String text, Bundle params) {
47        mText = text;
48        // Makes a copy of params.
49        mParams = new Bundle(params);
50    }
51
52    /**
53     * Gets the text which should be synthesized.
54     */
55    public String getText() {
56        return mText;
57    }
58
59    /**
60     * Gets the ISO 3-letter language code for the language to use.
61     */
62    public String getLanguage() {
63        return mLanguage;
64    }
65
66    /**
67     * Gets the ISO 3-letter country code for the language to use.
68     */
69    public String getCountry() {
70        return mCountry;
71    }
72
73    /**
74     * Gets the language variant to use.
75     */
76    public String getVariant() {
77        return mVariant;
78    }
79
80    /**
81     * Gets the speech rate to use. The normal rate is 100.
82     */
83    public int getSpeechRate() {
84        return mSpeechRate;
85    }
86
87    /**
88     * Gets the pitch to use. The normal pitch is 100.
89     */
90    public int getPitch() {
91        return mPitch;
92    }
93
94    /**
95     * Gets the additional params, if any.
96     */
97    public Bundle getParams() {
98        return mParams;
99    }
100
101    /**
102     * Gets the request caller Uid.
103     */
104    public int getCallerUid() {
105        return mCallerUid;
106    }
107
108    /**
109     * Sets the locale for the request.
110     */
111    void setLanguage(String language, String country, String variant) {
112        mLanguage = language;
113        mCountry = country;
114        mVariant = variant;
115    }
116
117    /**
118     * Sets the speech rate.
119     */
120    void setSpeechRate(int speechRate) {
121        mSpeechRate = speechRate;
122    }
123
124    /**
125     * Sets the pitch.
126     */
127    void setPitch(int pitch) {
128        mPitch = pitch;
129    }
130
131    /**
132     * Sets Caller Uid
133     */
134    void setCallerUid(int uid) {
135        mCallerUid = uid;
136    }
137}
138