概要
Android(Kotlin)で標準の音声合成(TextToSpeech)を使うの続きになります。
上記の記事では、Android(Kotlin)で利用可能な音声合成、TextToSpeechの使い方をメモしましたが、より細かくカスタマイズして使う方法についてメモしていきます。
実装
すでにTextToSpeechのインスタンス生成が済んでいる前提でメモしていきます。
TextToSpeechの基本的な使い方に関しては、Android(Kotlin)で標準の音声合成(TextToSpeech)を使うをご参照ください。
class MainActivity : AppCompatActivity(), TextToSpeech.OnInitListener {
private var textToSpeech: TextToSpeech? = null
override fun onCreate(savedInstanceState: Bundle?) {
// ~省略~
textToSpeech = TextToSpeech(this, this)
// ~省略~
}
読み上げのピッチ・スピードを調整する
読み上げのピッチ
読み上げ時のピッチ(高さ)を設定することが可能です。
ピッチはTextToSpeechのsetPitch (float pitch)
メソッドで行います。
デフォルトは1.0(基準)です。高くしすぎると音割れが起きます。
textToSpeech?.setPitch(0.6f)
読み上げのスピード
読み上げのスピードはsetSpeechRate (float speechRate)
メソッドで行います。
デフォルトは1.0で、例えば2.0を設定すると基準の倍の読み上げ速度になります。
textToSpeech?.setSpeechRate(4.0f)
読み上げ時にパラメータを渡す
前回の記事でも少し触れましたが、TextToSpeeachは読み上げメソッドでBundleのパラメータを渡すことができます。
https://qiita.com/maKunugi/items/059861da848219859f34#%E8%AA%AD%E3%81%BF%E4%B8%8A%E3%81%92
定義
public int speak (CharSequence text,
int queueMode,
Bundle params,
String utteranceId)
パラメータには、
- KEY_PARAM_STREAM: オーディオストリームを変更する際に利用
- KEY_PARAM_VOLUME: 音のボリュームを調整するのに利用
- KEY_PARAM_PAN: 音の定位を調整するのに利用
上記の3つのパラメータを渡すことができます。
KEY_PARAM_STREAM
KEY_PARAM_STREAMはオーディオストリームを設定することができます。
利用可能な定数はAudioManagerに定義されているストリーム用の定数群になります。
/*
AudioManagerのSTREAM定数
STREAM_ALARM
STREAM_DTMF
STREAM_MUSIC
STREAM_NOTIFICATION
STREAM_RING
STREAM_SYSTEM
STREAM_VOICE_CALL
*/
params.putInt(TextToSpeech.Engine.KEY_PARAM_STREAM, AudioManager.STREAM_MUSIC )
KEY_PARAM_VOLUME
KEY_PARAM_VOLUMEによって読み上げの音量を変更することができます。
0~1の間での指定。0:無音 1: 最大音量 (Default)
params.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME, 0.7f )
KEY_PARAM_PAN
KEY_PARAM_PANは読み上げ音の定位を指定することができます。
-1~1の間で指定が可能です。 -1: 左 0: 中央(Default) 1: 右
params.putFloat(TextToSpeech.Engine.KEY_PARAM_PAN, 1.0f)
上記のように、TextToSpeechは細かく読み上げの設定ができます。
以上、Android(Kotlin)のTextToSpeechを細かく調整する方法についてのメモでした。