实时率
又称:RTF、RTFx
发布于
定义
实时率(RTF)是语音识别系统处理音频所用的时间除以这段音频的时长。RTF为0.5表示1分钟的语音在30秒内转写完成;低于1就比实时更快。
这是表示语音模型速度的标准方式,与录音的长短无关。这一定义可以追溯到美国标准机构NIST组织的评测,当时称之为速度因子:总处理时间除以源信号的时长。
它的倒数RTFx已成为更常见的数据,因为数值越大越好,也更容易读。两者描述的是同一件事。
计算公式
RTF等于处理时间除以音频时长。如果10秒的音频用2秒转写完成,RTF就是0.2。
RTFx把它倒过来:音频时长除以处理时间。同样的例子得出的RTFx是5。Open ASR Leaderboard会公布其排名模型的RTFx,它解释说,RTFx为1表示系统处理语音的速度与说话的速度相同,RTFx为2表示所需时间减半。
怎样解读一个数据
先确认你看的是哪一个,因为两者的方向相反。
- RTF:越低越快。低于1能跟上实时语音;高于1就会落后。
- RTFx:越高越快。高于1能跟上实时语音。
- RTF为0.01与RTFx为100速度相同:1小时的音频用36秒处理完。
为什么公布的数据这么高
模型卡上常写着几百甚至几千的RTFx。这些数据是在数据中心显卡上同时处理许多录音测得的。有一个模型的卡片给出了超过3,000的数据,同时补充说明,性能可能因音频时长和批大小而异。
笔记本电脑转写一个人的声音,远远达不到那样的速度,也不需要。这个数据适合用来比较模型,而不适合用来预测你实际会看到的速度。
它没有告诉你什么
RTF是整段录音的平均值。它不能说明第一个词何时出现,也不能说明你停止说话后要等多久,而对听写来说,这些才是你能感受到的。
一个RTF极好的模型,如果要等一整段音频才开始写,可能感觉比RTF较差的流式模型更慢。对于实时使用,应该问的指标是延迟,而RTF只是用来确认模型到底能不能跟上。
什么会改变它
同一个模型在不同条件下会给出不同的数据。
- 硬件,以及模型是在CPU、图形芯片还是神经网络引擎上运行。
- 模型的大小,以及它是否经过量化。
- 音频的长度。非常短的片段有固定的启动开销,会让比值看起来更差。
- 批处理。在服务器上同时处理许多录音会大幅提高RTFx。
大家常问的问题。
多少的实时率算好?
对于实时听写,任何明显低于1的数值都可以,这样模型就能跑在你说话的前面。对于转写文件,越低就意味着等待越少。
RTF和RTFx有什么区别?
它们互为倒数。RTF是处理时间除以音频长度,所以越低越快。RTFx是音频长度除以处理时间,所以越高越快。
如何计算实时率?
用转写所花的时间除以音频的时长。10秒的音频用2秒转写完成,RTF就是0.2,也就是RTFx为5。
实时率低就意味着延迟低吗?
不一定。RTF是整段录音的平均值。如果模型要读完一整段才写出内容,即使RTF很低,也仍然会让你等待。
RTF为1是什么意思?
系统转写音频所用的时间正好等于音频本身的时长。它刚好能跟上实时语音。
为什么我的速度比模型卡上的数据低?
公布的数据通常是在服务器显卡上批量处理许多录音测得的。在笔记本电脑上处理一段录音,是另一种测试。