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
45    public SynthesisRequest(String text, Bundle params) {
46        mText = text;
47        // Makes a copy of params.
48        mParams = new Bundle(params);
49    }
50
51    /**
52     * Gets the text which should be synthesized.
53     */
54    public String getText() {
55        return mText;
56    }
57
58    /**
59     * Gets the ISO 3-letter language code for the language to use.
60     */
61    public String getLanguage() {
62        return mLanguage;
63    }
64
65    /**
66     * Gets the ISO 3-letter country code for the language to use.
67     */
68    public String getCountry() {
69        return mCountry;
70    }
71
72    /**
73     * Gets the language variant to use.
74     */
75    public String getVariant() {
76        return mVariant;
77    }
78
79    /**
80     * Gets the speech rate to use. The normal rate is 100.
81     */
82    public int getSpeechRate() {
83        return mSpeechRate;
84    }
85
86    /**
87     * Gets the pitch to use. The normal pitch is 100.
88     */
89    public int getPitch() {
90        return mPitch;
91    }
92
93    /**
94     * Gets the additional params, if any.
95     */
96    public Bundle getParams() {
97        return mParams;
98    }
99
100    /**
101     * Sets the locale for the request.
102     */
103    void setLanguage(String language, String country, String variant) {
104        mLanguage = language;
105        mCountry = country;
106        mVariant = variant;
107    }
108
109    /**
110     * Sets the speech rate.
111     */
112    void setSpeechRate(int speechRate) {
113        mSpeechRate = speechRate;
114    }
115
116    /**
117     * Sets the pitch.
118     */
119    void setPitch(int pitch) {
120        mPitch = pitch;
121    }
122}
123