Android предоставляет полезную функцию, которая преобразовывает текст в речь (TTS), и воспроизводит текст на разных языках. Это руководство объясняет, как создать данную функцию. В этом уроке я также объясню, как изменить тип языка, громкость и уровень скорости.
Исходники
Ниже я представил видео конечного результата.
Я разработал простой интерфейс с одним полем ввода и кнопкой, чтобы вызвать событие, которое будет принимать текст из поля ввода и воспроизводить данный текст.
![image](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/453/ed2/966/453ed29663f731d647b93592d88aabde.png)
1. Создайте новый проект, выбрав File ⇒ New Android Project и заполните необходимые данные.
2. Реализация вашего основного класса активности из TextToSpeech.OnInitListener
3. Теперь добавьте следующий код в главный класс.
4. И запустите проект.
Вы можете изменить язык, используя функцию SetLanguage (). На данный момент поддерживаются многие языки.
Вы можете изменить уровень громкости, используя функцию setPitch (). По умолчанию значение равно 1.0.
Частоту воспроизведения можно установить с помощью функции setSpeechRate (). По умолчанию значение равно 1.0.
Исходники
Ниже я представил видео конечного результата.
Я разработал простой интерфейс с одним полем ввода и кнопкой, чтобы вызвать событие, которое будет принимать текст из поля ввода и воспроизводить данный текст.
![image](https://habrastorage.org/getpro/geektimes/post_images/453/ed2/966/453ed29663f731d647b93592d88aabde.png)
1. Создайте новый проект, выбрав File ⇒ New Android Project и заполните необходимые данные.
2. Реализация вашего основного класса активности из TextToSpeech.OnInitListener
public class AndroidTextToSpeechActivity extends Activity implements TextToSpeech.OnInitListener {
3. Теперь добавьте следующий код в главный класс.
package com.androidhive.texttospeech;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class AndroidTextToSpeechActivity extends Activity implements
TextToSpeech.OnInitListener {
/** Called when the activity is first created. */
private TextToSpeech tts;
private Button btnSpeak;
private EditText txtText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tts = new TextToSpeech(this, this);
btnSpeak = (Button) findViewById(R.id.btnSpeak);
txtText = (EditText) findViewById(R.id.txtText);
// button on click event
btnSpeak.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
speakOut();
}
});
}
@Override
public void onDestroy() {
// Don't forget to shutdown tts!
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
btnSpeak.setEnabled(true);
speakOut();
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
private void speakOut() {
String text = txtText.getText().toString();
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
}
4. И запустите проект.
Изменение языка
Вы можете изменить язык, используя функцию SetLanguage (). На данный момент поддерживаются многие языки.
tts.setLanguage(Locale.CHINESE); // Chinese language
Изменение громкости
Вы можете изменить уровень громкости, используя функцию setPitch (). По умолчанию значение равно 1.0.
tts.setPitch(0.6);
Изменение скорости
Частоту воспроизведения можно установить с помощью функции setSpeechRate (). По умолчанию значение равно 1.0.
tts.setSpeechRate(2);