Skip to content

Instantly share code, notes, and snippets.

@hbcafe
Created November 1, 2016 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save hbcafe/e6d53488acfdf6ae0fdf81caea0d2dfe to your computer and use it in GitHub Desktop.
Save hbcafe/e6d53488acfdf6ae0fdf81caea0d2dfe to your computer and use it in GitHub Desktop.
Connect native Android app to Watson Text to Speech in under 10 minutes (TTS interface)
package com.ibm.watsonvoicetts;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.ibm.watson.developer_cloud.android.library.audio.StreamPlayer;
import com.ibm.watson.developer_cloud.text_to_speech.v1.TextToSpeech;
import com.ibm.watson.developer_cloud.text_to_speech.v1.model.Voice;
public class MainActivity extends AppCompatActivity {
TextView textView;
EditText editText;
Button button;
StreamPlayer streamPlayer;
private TextToSpeech initTextToSpeechService(){
TextToSpeech service = new TextToSpeech();
String username = "<here comes the API user>";
String password = "<here comes the API password>";
service.setUsernameAndPassword(username, password);
return service;
}
private class WatsonTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... textToSpeak) {
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("running the Watson thread");
}
});
TextToSpeech textToSpeech = initTextToSpeechService();
streamPlayer = new StreamPlayer();
streamPlayer.playStream(textToSpeech.synthesize(String.valueOf(editText.getText()), Voice.EN_MICHAEL).execute());
return "text to speech done";
}
@Override
protected void onPostExecute(String result) {
textView.setText("TTS status: " + result);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
button = (Button) findViewById(R.id.button);
textView = (TextView) findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("the text to speech: " + editText.getText());
textView.setText("TTS: " + editText.getText());
WatsonTask task = new WatsonTask();
task.execute(new String[]{});
}
});
}
}
@hendrawd
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment