Home | History | Annotate | Download | only in tts
      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 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  */
     36 public 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