安卓TextToSpeech:获取音频时长

9
我正在使用类在Android上工作,有一个特定长度的字符串。我想计算此生成的文本转语音音频的预计时间(我知道可以获取音频,然后获取此生成的音频的时长,但我想探索其他替代方案)。
我正在尝试获取(但似乎不可能),然后使用字符串的长度创建一些公式,得到一个时间估计结果。
有任何建议吗?
提前感谢。
附:关于spechRate: getSpeechRate()?(或如何告诉TTS当前设置的速率是多少)

1
没有实际渲染语音的准确方法。 - alanv
你可以创建一个mp3文件并获取它的长度。我认为这是最简单的方法。 - Giuseppe
2个回答

1
我使用 int pauseInSeconds=1+string.length()/7 来实现简短的英语发言。
当然,这只是一个大致的计算。

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
    } 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接