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 
     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