You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Android TTS中onRangeStart回调里frame参数含义的疑问

关于Android TTS中onRangeStart回调里frame参数含义的疑问

嗨,我来帮你理清这个困惑!你之前误以为onRangeStart里的frame参数是毫秒,这就是换算后数值和实际朗读时长完全对不上的原因——它根本不是时间单位,而是代表音频帧的计数。

简单来说,音频帧是音频数据的最小单位,这个参数标记的是当前朗读片段在整个音频流里的帧偏移位置。要转换成实际时间,你得结合当前TTS引擎使用的音频采样率来计算:

  • 首先获取TTS引擎的采样率(常见的有44100Hz、22050Hz,也就是每秒生成多少帧音频)
  • 用frame数值除以采样率,得到的结果就是对应的秒数

举个例子,假设你的TTS采样率是44100Hz,而你拿到的frame值是1323000,那计算下来就是1323000 ÷ 44100 = 30秒,正好和你说的文本朗读时长匹配。之前你直接除以1000当成毫秒转秒,自然会得到700秒这种离谱的结果啦。

另外要注意,不同的TTS引擎可能会使用不同的采样率,所以别固定死某个数值来转换,最好动态获取当前引擎的参数哦。

备注:内容来源于stack exchange,提问作者Dragon-LV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:04:36