Python脚本处理标注文件和音频匹配个数问题

目录

引题

在语音标注过程中,涉及大量的语音标注,尤其是有多人分工进行时,难免会出现很多不匹配的文件,标注类的文件(通常为.TextGrid),和音频类(通常为.wav),当两者出现个数不匹配的时候,无论是后期使用脚本提取参数,和运行某些工程类的模型,都会引起报错。

本文针对Python初学者,提供一个简单的脚本,检查两类文件(不限于上述两类,脚本可用于其它的扩展名的两类文件)的不匹配状况。主要目的还是学习一下基本的检查目录里的文件的操作,适用于Python学习者熟悉该方法。

数据说明

首先,我们有两个目录,分别放了两类文件,当然这两类文件也可以在一个目录里。一类是TextGrid,一类是wav,

\sample_TextGrid
000001.TextGrid
000002.TextGrid
000004.TextGrid
000005.TextGrid
000006.TextGrid
\sample_wav
000001.wav
000002.TextGrid
000002.wav
000003.wav

我们设置了两个目录,一个目录里是5个TextGrid文件,一个目录里是3个wav文件和一个TextGrid文件,要完成的任务是:

  1. 找出两个目录里共同的文件,比如000001.TextGrid和000001.wav;
  2. 找出第一个目录里有,第二个目录里没有的文件;
  3. 找出第二个目录里有,第一个目录里没有的文件;
  4. 以上三种类型可以分别保存在一个结果目录里吗?
  5. 注意第二个目录有一个干扰项,000002.TextGrid,是否能避开?

代码说明

无论这两类文件是在一个文件夹里,还是在两个文件夹里,我们都是先获得这两类的文件列表,注意我们设置了文件扩展名的变量,如果你是想检查比如.txt和.mp3的对应关系,可相应的修改check_dir1_ext和check_dir2_ext两个位置,这样也避开了第二个目录里的干扰项。

input_check_dir1 = r'sample_textgrid'
check_dir1_ext = '.TextGrid'
input_check_dir2 = r'sample_wav'
check_dir2_ext = '.wav'
check_list1 = [ls[:ls.find('.')] for ls in os.listdir(input_check_dir1) if ls[ls.find('.'):] == check_dir1_ext]
check_list2 = [ls[:ls.find('.')] for ls in os.listdir(input_check_dir2) if ls[ls.find('.'):] == check_dir2_ext]

代码里也增加了详细的说明,可查看代码。最后运行之后,我们得到了几个目录和一个log文件:

sample_textgrid_only  这个目录是第一个目录里有,第二个目录里没有的文件
sample_textgrid_save_all  这个目录是两个目录里共同的文件
sample_wav_only  这个目录是第二个目录里有,第一个目录里没有的文件
sample_textgrid_checked_result.txt 这个文件里记录了以上三类文件的个数

感兴趣的学习者还可以将所有要处理的文件放在一个目录中,只按扩展名区分两个类别,然后运行程序进行尝试。

[En]

Interested learners can also put all the files to be processed in one directory, distinguish the two categories only by extension, and run the program to try.

获取脚本

https://github.com/feelins/Python-linguistics

本文脚本在Part-05/P05_001_check_file_numbers目录里。本站所有脚本都可以在上述 github的项目目录里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置 github for windows在自己的电脑上通过 git clone将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图 Code位置所示,下载整站的代码,可直接使用。

Python脚本处理标注文件和音频匹配个数问题

; 关注

Python脚本处理标注文件和音频匹配个数问题

版权说明

1、版权归本公众号”极地语音工作室”,原名”语音处理小站”所有;

2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;

3、转载或者引用本文内容请注明来源及原作者;

4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。

Original: https://blog.csdn.net/shaopengfei/article/details/123554296
Author: 极地语音工作室
Title: Python脚本处理标注文件和音频匹配个数问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/498214/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球