9

我正在使用TextToSpeech类在 android 中工作,并且有一个具有特定长度的字符串。我想计算这个生成的文本到语音音频的估计时间(我知道我可以得到音频,然后得到这个生成的音频的时间长度,但我想探索其他替代方案)。

我正在尝试获取speechRate(但似乎不可能),并且使用字符串的长度创建一些公式来估计时间。

有什么建议吗??

提前致谢。

PD:关于规范:getSpeechRate()?(或如何判断当前设置的 TTS 速率)

4

2 回答 2

1

我使用 int pauseInSeconds=1+string.length()/7 进行简短的英语口语。

当然非常粗糙。

于 2016-03-02T20:06:56.817 回答
1

你可以这样做:

private void speakWord(String word)
{
     //Get time
     textToSpeech.speak(...);
     checkSpeaking(true);
}

private void checkSpeaking(boolean isSpeaking)
{
    Print.e("Speaking is: " + isSpeaking);
    if (isSpeaking)
    {
        new Handler().postDelayed(()-> 
        {
            if (textToSpeech.isSpeaking()) {
                checkSpeaking(true);
            }
            else {
                checkSpeaking(false);
            } 
        },300);
    }
    else
    {
        //Get time
    } 
}
于 2020-06-08T02:01:12.997 回答