Sunday, May 29, 2011

TEXT to speech service demo



Text to speech service call by function:
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.speech.tts.TextToSpeech.OnUtteranceCompletedListener;
import android.util.Log;
import android.widget.Button;
import android.widget.Toast;

import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.widget.Toast;

public class SpeakerServices extends Service implements
        OnUtteranceCompletedListener {
   
    private static TextToSpeech myTts;
    static HashMap<String, String> mHashMap;
    static OnUtteranceCompletedListener context;
    Intent intent;
    public static final String BROADCAST_ACTION = "com.stockQuity.TabFirstActivity.displayevent";

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        intent = new Intent(BROADCAST_ACTION);
        myTts = new TextToSpeech(this, ttsInitListener);       
        System.out.println("start services===========");
      
   
        context=this;
    }

   

    private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {
        public void onInit(int version) {
        }
    };
    public static void speakSMS(String sms,String viewId) {

        myTts.setOnUtteranceCompletedListener(context);
        mHashMap = new HashMap<String, String>();
        mHashMap.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, viewId);

        System.out.println("message========" + sms);
        myTts.speak(sms, TextToSpeech.QUEUE_ADD, mHashMap);

        // myTts.synthesizeToFile(sms, null, "/sdcard/myappsounds/mysms.wav");
    }
   
   
    @Override
    public void onStart(Intent intent, int startid) {
        System.out.println("onini22222t========");
         myTts.setOnUtteranceCompletedListener(this);
    }

    @Override
    public void onDestroy() {
       
   
        if (myTts != null) {
            myTts.stop();
       
            //TabFirstActivity.scaleanimation.cancel();
               
       
            //com.stockQuity.variable.setStartAnimation(false);
            Toast.makeText(getApplicationContext(),
                    "The speech has been destroyed!", Toast.LENGTH_SHORT)
                    .show();
        }
        super.onDestroy();
    }

   

    @Override
    public void onUtteranceCompleted(String utteranceId) {
       
        if(utteranceId.equals("Tab1View1"))
        {
           
            System.out.println("end speech==="+utteranceId);
            intent.putExtra("view", "finishTab1View1");
           
            sendBroadcast(intent);
           
        }
   
        else    if(utteranceId.equals("Tab1View2"))
        {
           
            System.out.println("end speech==="+utteranceId);
            intent.putExtra("view", "finishTab1View2");
           
            sendBroadcast(intent);
           
        }
   
        else    if(utteranceId.equals("Tab1View3"))
        {
           
            System.out.println("end speech==="+utteranceId);
            intent.putExtra("view", "finishTab1View3");
           
            sendBroadcast(intent);
           
        }
   
    }

}


--------------------------------------------------------------------------------------------------------------
URL:http://pastebin.com/sw0TvnYi
http://code.google.com/p/mytracks/source/browse/MyTracksTest/src/com/google/android/apps/mytracks/services/StatusAnnouncerTaskTest.java?spec=svn628b9865aff4cf3e4fa68d2ab8bbaa59f9a0e729&r=628b9865aff4cf3e4fa68d2ab8bbaa59f9a0e729

public class TextToSpeechService extends Service implements OnInitListener, OnUtteranceCompletedListener {
   
    private int ringVolume, mediaVolume;
   
    private AudioManager mAudioManager;
    private TextToSpeech tts;
   
    @Override
    public void onCreate() {
        tts = new TextToSpeech(getApplicationContext(), this);
    }
   
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        HashMap<String, String> mHashMap = new HashMap<String, String>();
       
        mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
        ringVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
        mediaVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
       
        mAudioManager.setStreamVolume(AudioManager.STREAM_RING, ringVolume / 2, AudioManager.FLAG_ALLOW_RINGER_MODES);
        mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, ringVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
       
        tts.speak("Incoming call from", TextToSpeech.QUEUE_FLUSH, mHashMap);
       
        mHashMap.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "finished id");
        tts.speak(intent.getExtras().getString("incomingNumber"), TextToSpeech.QUEUE_ADD, mHashMap);
       
        return START_STICKY;
    }
   
    public void onInit(int status) {
        tts.setLanguage(Locale.US);
        tts.setOnUtteranceCompletedListener(this);
    }
   
    public void onUtteranceCompleted(String uttId) {
        if (uttId.equals("finished id")) {
            mAudioManager.setStreamVolume(AudioManager.STREAM_RING, ringVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
            mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mediaVolume, AudioManager.FLAG_ALLOW_RINGER_MODES);
        }
    }
   
    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
   
    @Override
    public void onDestroy() {
        if (tts != null) {
            tts.stop();
            tts.shutdown();
        }
    }
}

No comments:

Post a Comment