Androidでテキストを音声に変換する

Androidは、テキストを音声に変換(TTS)し、異なる言語でテキストを再生する便利な機能を提供します。 このガイドでは、この機能の作成方法について説明します。 このレッスンでは、言語の種類、音量、速度レベルを変更する方法も説明します。



ソースコード



以下に、最終結果のビデオを示しました。









1つの入力フィールドと、入力フィールドからテキストを受け取り、指定されたテキストを再生するイベントをトリガーするボタンを備えたシンプルなインターフェイスを開発しました。



画像



1. [ファイル]⇒[新しいAndroidプロジェクト]を選択して新しいプロジェクトを作成し、必要なデータを入力します。

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






All Articles