getSpeechRate()? (或如何分辨什么TTS率目前定)(getSpeechRate(

2019-06-27 00:55发布

文字转语音有一种方法来设置语速: setSpeechRate() 。 但它并没有查询当前速度的相反方法。

有没有一种方法来查询该值的系统

Answer 1:

你可能会得到默认的TTS的语速

Settings.Secure.getInt(getContentResolver(), Settings.Secure.TTS_DEFAULT_RATE, 100) / 100f;


Answer 2:

我一直在寻找类似的事情,它看起来是不是真的有这样的方法。 但由于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设置。



文章来源: getSpeechRate()? (or how to tell what rate TTS is currently set at)