问题描述
我有两种方法,setSpeechRate(Float value)
和 public int synthesizetoFile(final CharSequence text,final Bundle params,final File file,final String utteranceId)
,我希望找到一种方法来在不同的语速下合成这些文件。
因此,第一步是调用 setSpeechRate(4.0f)
(返回 0
或 SUCCESS
)。然而,当我将 String
合成到同一个 Text-to-Engine
内的文件中,并使用 MediaPlayer
播放它时,我无法以比默认值 speechRate = 1
更快的速度播放它。
我希望,由于 speechRate
实际上已更新为 4.0
,因此生成的文件也将具有相同的速率。我错过了什么?
解决方法
根据docs,setSPeechRate 对“预先录制的语音”没有影响。这是一个奇怪且令人困惑的词选择,但我假设“预先录制”是指使用 SynthesizeToFile 创建的语音。
这是有道理的,因为较慢的语音会导致文件很大,并且很难以不同的速度播放相同的文件。
所以看起来你必须使用播放器来控制语速。