LoginSignup
3
4

More than 3 years have passed since last update.

Android(Kotlin)で標準の音声合成(TextToSpeech)を細かくカスタマイズして使う

Posted at

概要

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を細かく調整する方法についてのメモでした。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4