blob: 917a10978d191bf13654302961f472eb55d17072 [file] [log] [blame]
Bjorn Bringert50e657b2011-03-08 16:00:40 +00001/*
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
Narayan Kamathb956f372011-05-16 16:51:44 +010018import android.os.Bundle;
19
Bjorn Bringert50e657b2011-03-08 16:00:40 +000020/**
Narayan Kamathe22b69a2011-06-08 11:41:47 +010021 * 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>
Bjorn Bringert50e657b2011-03-08 16:00:40 +000031 *
Narayan Kamathe22b69a2011-06-08 11:41:47 +010032 * 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}.
Bjorn Bringert50e657b2011-03-08 16:00:40 +000035 */
Narayan Kamathe22b69a2011-06-08 11:41:47 +010036public final class SynthesisRequest {
Bjorn Bringert50e657b2011-03-08 16:00:40 +000037 private final String mText;
Narayan Kamathb956f372011-05-16 16:51:44 +010038 private final Bundle mParams;
Bjorn Bringert50e657b2011-03-08 16:00:40 +000039 private String mLanguage;
40 private String mCountry;
41 private String mVariant;
42 private int mSpeechRate;
43 private int mPitch;
Przemyslaw Szczepaniak65327832013-05-31 13:12:52 +010044 private int mCallerUid;
Bjorn Bringert50e657b2011-03-08 16:00:40 +000045
Narayan Kamath9ee81542011-06-15 18:50:23 +010046 public SynthesisRequest(String text, Bundle params) {
Bjorn Bringert50e657b2011-03-08 16:00:40 +000047 mText = text;
Narayan Kamathe22b69a2011-06-08 11:41:47 +010048 // Makes a copy of params.
Narayan Kamathb956f372011-05-16 16:51:44 +010049 mParams = new Bundle(params);
Bjorn Bringert50e657b2011-03-08 16:00:40 +000050 }
51
52 /**
Bjorn Bringert50e657b2011-03-08 16:00:40 +000053 * 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 /**
Bjorn Bringert4bbca882011-04-19 18:45:25 +010081 * Gets the speech rate to use. The normal rate is 100.
Bjorn Bringert50e657b2011-03-08 16:00:40 +000082 */
83 public int getSpeechRate() {
84 return mSpeechRate;
85 }
86
87 /**
Bjorn Bringert4bbca882011-04-19 18:45:25 +010088 * Gets the pitch to use. The normal pitch is 100.
Bjorn Bringert50e657b2011-03-08 16:00:40 +000089 */
90 public int getPitch() {
91 return mPitch;
92 }
93
94 /**
Narayan Kamathb956f372011-05-16 16:51:44 +010095 * Gets the additional params, if any.
96 */
97 public Bundle getParams() {
98 return mParams;
99 }
100
101 /**
Przemyslaw Szczepaniak65327832013-05-31 13:12:52 +0100102 * Gets the request caller Uid.
103 */
104 public int getCallerUid() {
105 return mCallerUid;
106 }
107
108 /**
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100109 * Sets the locale for the request.
Bjorn Bringert71e0b482011-04-15 14:37:05 +0100110 */
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100111 void setLanguage(String language, String country, String variant) {
112 mLanguage = language;
113 mCountry = country;
114 mVariant = variant;
115 }
Bjorn Bringert71e0b482011-04-15 14:37:05 +0100116
117 /**
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100118 * Sets the speech rate.
Bjorn Bringert360eb162011-04-19 09:20:35 +0100119 */
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100120 void setSpeechRate(int speechRate) {
121 mSpeechRate = speechRate;
122 }
Bjorn Bringert360eb162011-04-19 09:20:35 +0100123
124 /**
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100125 * Sets the pitch.
Bjorn Bringert50e657b2011-03-08 16:00:40 +0000126 */
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100127 void setPitch(int pitch) {
128 mPitch = pitch;
129 }
Przemyslaw Szczepaniak65327832013-05-31 13:12:52 +0100130
131 /**
132 * Sets Caller Uid
133 */
134 void setCallerUid(int uid) {
135 mCallerUid = uid;
136 }
Narayan Kamathe22b69a2011-06-08 11:41:47 +0100137}