我目前正在开发一个使用RTTM文件格式的程序。然而,似乎没有关于内容的文件。是否有人对此文件格式中所示的字段进行了详细说明?
您可以在NIST的2009(RT-09)Rich Transcription的附录A中找到这一点会议认可评估计划(存档版本,原始链接已失效)。
还有https://catalog.ldc.upenn.edu/docs/LDC2004T12/RTTM-format-v13.pdf这与@bernlim给出的规范的不同之处主要在于省略了第10个字段"SLAT"。我发现有些工具确实不输出10个字段,而是输出9个字段,并且用于对日记进行评分的md-eval-v21.pl不需要读取第10个字段。
RTTM
富转录时间标记(RTTM)文件是以空格分隔的文本文件,每行包含一圈,每行包括十个字段:
- Type——段类型;应始终由扬声器
- 文件ID--文件名;记录的基本名称减去扩展名(例如,rec1_a)
- 通道ID——打开的通道(1索引);应始终1
- Turn Onset--从录制开始到转弯的开始时间(秒)
- 转弯持续时间——转弯持续时间(秒)
- 正交字段-应始终通过<NA>
- 扬声器类型--应始终为<NA>
- 说话人姓名——轮次说话人姓名;在每个文件的范围内应该是唯一的
- 置信度得分——信息正确的系统置信度(概率);应该总是<NA>
- 信号展望时间--应始终为<NA>
例如:
SPEAKER CMU_20020319-1400_d01_NONE 1 130.430000 2.350 <NA> <NA> juliet <NA> <NA>
SPEAKER CMU_20020319-1400_d01_NONE 1 157.610000 3.060 <NA> <NA> tbc <NA> <NA>
SPEAKER CMU_20020319-1400_d01_NONE 1 130.490000 0.450 <NA> <NA> chek <NA> <NA>
写入rttm文件:
with open(rttmf, 'wb') as f:
for turn in turns:
fields = ['SPEAKER', turn.file_id, '1', format_float(turn.onset, n_digits), format_float(turn.dur, n_digits),
'<NA>', '<NA>', turn.speaker_id, '<NA>', '<NA>']
line = ' '.join(fields)
f.write(line.encode('utf-8'))
f.write(b'n')
参考网址:https://github.com/nryant/dscorehttps://github.com/nryant/dscore/blob/824f126ae9e78cf889e582eec07941ffe3a7d134/scorelib/rttm.py#L103