RTTM 文件格式

Zen*_*Zen 2 python format file

我目前正在开发一个使用 RTTM 文件格式的程序。但是,似乎没有关于内容的文档。有人对此文件格式中指示的字段有具体说明吗?

zee*_*han 7

实时TM

丰富转录时间标记 (RTTM) 文件是以空格分隔的文本文件,每行包含一圈,每行包含十个字段:

  • type——段类型;应始终由SPEAKER
  • 文件ID——文件名;记录的基本名称减去扩展名(例如,rec1_a)
  • Channel ID——打开的通道(1索引);应始终为1
  • 转弯开始——从录音开始开始以秒为单位的转弯开始
  • 转弯持续时间——转弯持续时间(以秒为单位)
  • 正字法字段 -- 应始终为 < NA >
  • 扬声器类型 - 应始终为 < NA >
  • 发言者姓名——本轮发言者的姓名;在每个文件的范围内应该是唯一的
  • Confidence Score——系统认为信息正确的置信度(概率);应始终为 < 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>
Run Code Online (Sandbox Code Playgroud)

写入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')
Run Code Online (Sandbox Code Playgroud)

参考网址: https://github.com/nryant/dscore https://github.com/nryant/dscore/blob/824f126ae9e78cf889e582eec07941ffe3a7d134/scorelib/rttm.py#L103


bun*_*bun 5

您可以在 NIST 的The 2009 (RT-09) Rich Transcription Meeting Recognition Evaluation Plan(存档版本,原始链接已失效)的附录 A 中找到此内容。


qbo*_*lec 5

还有https://catalog.ldc.upenn.edu/docs/LDC2004T12/RTTM-format-v13.pdf与@bernlim 给出的规范不同,主要是省略了第 10 个字段“SLAT”。我发现有些工具确实不输出 10 个字段而是 9 个字段,并且用于评分 diarizations 的 md-eval-v21.pl 不会费心读取第 10 个字段。