tts studio speak spanish languages español ejemplo android text-to-speech

studio - Texto a voz(TTS)-Android



text to speech android español (6)

Prueba esto, es simple: ** speakout.xml: **

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#3498db" android:weightSum="1" android:orientation="vertical" > <TextView android:id="@+id/txtheader" android:layout_width="match_parent" android:layout_height="0dp" android:layout_gravity="center" android:layout_weight=".1" android:gravity="center" android:padding="3dp" android:text="Speak Out!!!" android:textColor="#fff" android:textSize="25sp" android:textStyle="bold" /> <EditText android:id="@+id/edtTexttoSpeak" android:layout_width="match_parent" android:layout_weight=".5" android:background="#fff" android:textColor="#2c3e50" android:text="Hi there!!!" android:padding="5dp" android:gravity="top|left" android:layout_height="0dp"/> <Button android:id="@+id/btnspeakout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight=".1" android:background="#e74c3c" android:textColor="#fff" android:text="SPEAK OUT"/> </LinearLayout>

Y tu SpeakOut.java:

import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.view.View; import android.widget.Button; import android.widget.EditText; public class SpeakOut extends Activity implements OnInitListener { private TextToSpeech repeatTTS; Button btnspeakout; EditText edtTexttoSpeak; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.speakout); btnspeakout = (Button) findViewById(R.id.btnspeakout); edtTexttoSpeak = (EditText) findViewById(R.id.edtTexttoSpeak); repeatTTS = new TextToSpeech(this, this); btnspeakout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { repeatTTS.speak(edtTexttoSpeak.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); } }); } @Override public void onInit(int arg0) { // TODO Auto-generated method stub } }

FUENTE Publicación de Parallelcodes.com

Soy nuevo en la plataforma Android. Ahora estoy trabajando en TTS(Text to Speech) .Si introduzco el texto en un área de texto y me gustaría que se convierta en voz cuando hago clic en el botón Hablar.

¿Puede alguien ayudarme?


Texto a voz está integrado en Android 1.6+. Aquí hay un ejemplo simple de cómo hacerlo.

TextToSpeech tts = new TextToSpeech(this, this); tts.setLanguage(Locale.US); tts.speak("Text to say aloud", TextToSpeech.QUEUE_ADD, null);

Más información: http://android-developers.blogspot.com/2009/09/introduction-to-text-to-speech-in.html

Aquí hay instrucciones sobre cómo descargar código de muestra desde el Administrador de Android SDK:

  1. Inicie el Administrador de Android SDK.

    a. En Windows, haga doble clic en el archivo SDK Manager.exe en la raíz del directorio Android SDK.

    segundo. En Mac o Linux, abra una terminal en el directorio tools / en el SDK de Android, luego ejecute sdk para Android.

  2. Expande la lista de paquetes para la última plataforma de Android.

  3. Seleccione y descargue Muestras para SDK. Cuando se complete la descarga, puede encontrar el código fuente para todas las muestras en esta ubicación:

/ sdk / samples / android-version /

(i.e. /android-sdk-windows/samples/android-16/ApiDemos/src/com/example/android/apis/app/TextToSpeechActivity.java)


Un ejemplo minimalista para probar rápidamente el sistema TTS:

private TextToSpeech textToSpeechSystem; @Override protected void onStart() { super.onStart(); textToSpeechSystem = new TextToSpeech(this, ttsInitResult -> { if (TextToSpeech.SUCCESS == ttsInitResult) { String textToSay = "Hello world, this is a test message!"; textToSpeechSystem.speak(textToSay, TextToSpeech.QUEUE_ADD, null); } }); }

Si no usa mensajes localizados, textToSpeechSystem.setLanguage(..) es importante, ya que es posible que sus usuarios no tengan todos los idiomas en inglés como idioma predeterminado, por lo que la pronunciación de las palabras será incorrecta. Pero para probar TTS en general, este fragmento es suficiente

Enlaces relacionados: https://developer.android.com/reference/android/speech/tts/TextToSpeech


https://drive.google.com/open?id=0BzBKpZ4nzNzUR05nVUI1aVF6N1k

package com.keshav.speechtotextexample; import java.util.ArrayList; import java.util.Locale; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; import android.speech.RecognizerIntent; import android.view.Menu; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private TextView txtSpeechInput; private ImageButton btnSpeak; private final int REQ_CODE_SPEECH_INPUT = 100; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtSpeechInput = (TextView) findViewById(R.id.txtSpeechInput); btnSpeak = (ImageButton) findViewById(R.id.btnSpeak); // hide the action bar getActionBar().hide(); btnSpeak.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { promptSpeechInput(); } }); } /** * Showing google speech input dialog * */ private void promptSpeechInput() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.speech_prompt)); try { startActivityForResult(intent, REQ_CODE_SPEECH_INPUT); } catch (ActivityNotFoundException a) { Toast.makeText(getApplicationContext(), getString(R.string.speech_not_supported), Toast.LENGTH_SHORT).show(); } } /** * Receiving speech input * */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQ_CODE_SPEECH_INPUT: { if (resultCode == RESULT_OK && null != data) { ArrayList<String> result = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); txtSpeechInput.setText(result.get(0)); } break; } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } ==================================================== <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_gradient" android:orientation="vertical"> <TextView android:id="@+id/txtSpeechInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="100dp" android:textColor="@color/white" android:textSize="26dp" android:textStyle="normal" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="60dp" android:gravity="center" android:orientation="vertical"> <ImageButton android:id="@+id/btnSpeak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:src="@drawable/ico_mic" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/tap_on_mic" android:textColor="@color/white" android:textSize="15dp" android:textStyle="normal" /> </LinearLayout> </RelativeLayout> =============================================================== <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Speech To Text</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="speech_prompt">Say something&#8230;</string> <string name="speech_not_supported">Sorry! Your device doesn/'t support speech input</string> <string name="tap_on_mic">Tap on mic to speak</string> </resources> =============================================================== <resources> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> </resources>


package com.example.texttospeech; import java.util.Locale; import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences.Editor; import android.speech.tts.TextToSpeech; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { String text; EditText et; TextToSpeech tts; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et=(EditText)findViewById(R.id.editText1); tts=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { // TODO Auto-generated method stub if(status == TextToSpeech.SUCCESS){ int result=tts.setLanguage(Locale.US); if(result==TextToSpeech.LANG_MISSING_DATA || result==TextToSpeech.LANG_NOT_SUPPORTED){ Log.e("error", "This Language is not supported"); } else{ ConvertTextToSpeech(); } } else Log.e("error", "Initilization Failed!"); } }); } @Override protected void onPause() { // TODO Auto-generated method stub if(tts != null){ tts.stop(); tts.shutdown(); } super.onPause(); } public void onClick(View v){ ConvertTextToSpeech(); } private void ConvertTextToSpeech() { // TODO Auto-generated method stub text = et.getText().toString(); if(text==null||"".equals(text)) { text = "Content not available"; tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); }else tts.speak(text+"is saved", TextToSpeech.QUEUE_FLUSH, null); } } <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="177dp" android:onClick="onClick" android:text="Button" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_centerHorizontal="true" android:layout_marginBottom="81dp" android:ems="10" > <requestFocus /> </EditText> </RelativeLayout>


public class Texttovoice extends ActionBarActivity implements OnInitListener { private TextToSpeech tts; private Button btnSpeak; private EditText txtText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_texttovoice); tts = new TextToSpeech(this, this); // Refer ''Speak'' button btnSpeak = (Button) findViewById(R.id.btnSpeak); // Refer ''Text'' control txtText = (EditText) findViewById(R.id.txtText); // Handle onClick event for button ''Speak'' btnSpeak.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { // Method yet to be defined speakOut(); } }); } private void speakOut() { // Get the text typed String text = txtText.getText().toString(); // If no text is typed, tts will read out ''You haven''t typed text'' // else it reads out the text you typed if (text.length() == 0) { tts.speak("You haven''t typed text", TextToSpeech.QUEUE_FLUSH, null); } else { tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); } } public void onDestroy() { // Don''t forget to shutdown! if (tts != null) { tts.stop(); tts.shutdown(); } super.onDestroy(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.texttovoice, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void onInit(int status) { // TODO Auto-generated method stub // TTS is successfully initialized if (status == TextToSpeech.SUCCESS) { // Setting speech language int result = tts.setLanguage(Locale.US); // If your device doesn''t support language you set above if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { // Cook simple toast message with message Toast.makeText(getApplicationContext(), "Language not supported", Toast.LENGTH_LONG).show(); Log.e("TTS", "Language is not supported"); } // Enable the button - It was disabled in main.xml (Go back and // Check it) else { btnSpeak.setEnabled(true); } // TTS is not initialized properly } else { Toast.makeText(this, "TTS Initilization Failed", Toast.LENGTH_LONG) .show(); Log.e("TTS", "Initilization Failed"); } } //-------------------------------XML--------------- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:orientation="vertical" tools:ignore="HardcodedText" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="15dip" android:text="listen your text" android:textColor="#0587d9" android:textSize="26dip" android:textStyle="bold" /> <EditText android:id="@+id/txtText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:layout_marginTop="20dip" android:hint="Enter text to speak" /> <Button android:id="@+id/btnSpeak" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:enabled="false" android:text="Speak" android:onClick="speakout"/>