5

TextToSpeech有一种设置语速的方法:setSpeechRate()。但它没有查询当前速度的相反方法。

有没有办法在系统中查询该值?

4

2 回答 2

1

您可能会获得默认的 TTS 语速

Settings.Secure.getInt(getContentResolver(), Settings.Secure.TTS_DEFAULT_RATE, 100) / 100f;
于 2014-12-12T13:54:30.923 回答
0

我一直在寻找类似的东西,似乎真的没有这样的方法。但是由于1.0 是正常的语速,我通过将语速保持在自己的变量中来解决它。我有一个类提供了一些使用 TTS 的方法,所以这是我的实现:

public class MyTts {
    private static float rate = 1.0f;
    ...


    public float getSpeechRate() {
        return rate;
    }

    public int setSpeechRate(float rt) {
        rate = rt;
        return tts.setSpeechRate(rate);
    }
    ...
}

在哪里setSpeechRate退货TextToSpeech.ERRORTextToSpeech.SUCCESS根据文件。

编辑:似乎当我将速率设置为 1.5f 然后又回到 1.0f 时,情况就不一样了。这取决于 Android 中的 tts 设置。

于 2013-10-12T17:15:11.630 回答