如何解析此格式Praat TextGrid

问题描述

| TextGrid是Praat程序使用的\“ segmentation \”文件。我想编写一个解析器,然后将验证数据。我的问题是: 您将如何编写这种格式的解析器?逐行阅读还是其他?这是已知格式吗?
File type = \"ooTextFile\"
Object class = \"TextGrid\"

xmin = 0 
xmax = 93.0538775510204 
tiers? <exists> 
size = 3 

item []: 
    item [1]:
        class = \"IntervalTier\" 
        name = \"diph\" 
        xmin = 0 
        xmax = 93.0538775510204 
        intervals: size = 65 
        intervals [1]:
            xmin = 0 
            xmax = 1.300090702947846 
            text = \"\" 
        intervals [2]:
            xmin = 1.300090702947846 
            xmax = 1.5300845864661654 
            text = \"ey_s\" 
        intervals [3]:
            xmin = 1.5300845864661654 
            xmax = 3.4648692624493815 
            text = \"\" 
(然后以间隔[4 .... n]将其重复到EOF)     

解决方法

        TextGrid解析器已经存在,并且是NLTK Toolkit的一部分。 Python文件在这里: http://nltk.googlecode.com/svn/trunk/nltk_contrib/nltk_contrib/textgrid.py 更新的链接: https://github.com/nltk/nltk_contrib/blob/master/nltk_contrib/textgrid.py     ,        自动Praat \的TextGrid文件解析器是用于解析Praat \的textGrid文件的小型应用程序。解析的结果是一个电子表格,该电子表格保存在输出文本文件中。输出文本文件可以由Excel等应用程序导入。 TGP是一个灵活的程序,可以轻松地连续扩展或修改,它目前能够分析某些类型的TextGrid文件。 TGP的1.0版读取具有以下项目类型的TextGrid文件:单词,电话和可选的焦点。 http://tgp.peremila.com/     ,        另一种解决方案是使用这些Praat对象的JSON或YAML表示形式。然后解析正确性是微不足道的。 我已经编写了两个Perl脚本来简化此操作(从Praat转换为JSON / YAML,从YAML / JSON转换为Praat),这可能对这些任务很有用。 这些脚本是我维护的名为
serialise
的插件的一部分,该插件通过CPrAN分发。该实现有点麻烦,但是非常稳定,并且该插件支持您要使用的大多数对象。欢迎所有评论。