介绍:
GRID唇语数据集是一个广泛用于唇读和多模态语音识别研究的音视频数据集。它由谢菲尔德大学(University of Sheffield)提供,包含34位说话者(33名男性和1名女性)的视频和对应的音频以及文本对齐标签。每位说话者录制了约1000个句子的视频,数据集的主要用途是唇语识别、音视频语音增强和多模态学习等领域。
下载相关库:
pip install requests tqdm
注:
os
是 Python 的标准库,它自带在所有 Python 解释器中,无需额外安装
数据集下载后的文件结构:
注:我只下载了视频数据和文本内容数据
./GRID_Dataset/
├── s1/
│ ├── video/
│ │ ├── s1.mpg_6000.part1.tar
│ │ └── s1.mpg_6000.part2.tar
│ └── align/
│ └── s1.tar
├── s2/
│ ├── video/
│ │ ├── s2.mpg_6000.part1.tar
│ │ └── s2.mpg_6000.part2.tar
│ └── align/
│ └── s2.tar
├── s3/
│ ├── video/
│ │ ├── s3.mpg_6000.part1.tar
│ │ └── s3.mpg_6000.part2.tar
│ └── align/
│ └── s3.tar
│ ...
├── s34/
│ ├── video/
│ │ ├── s34.mpg_6000.part1.tar
│ │ └── s34.mpg_6000.part2.tar
│ └── align/
│ └── s34.tar
代码:
注:由于GRID唇语数据集官网上对应的21号没有视频数据集,我就跳过了
import os
import requests
from tqdm import tqdm
# 下载GRID_Dataset数据集的URL
BASE_URL = "https://spandh.dcs.shef.ac.uk/gridcorpus/"
# 保存文件的本地路径
SAVE_DIR = "./GRID_Dataset/"
# 检查目录是否存在,如果不存在,则创建该目录
if not os.path.exists(SAVE_DIR):
os.makedirs(SAVE_DIR)
def download_file(url, save_path_time):
"""下载文件并显示进度条"""
# 检查文件是否已经存在
if os.path.exists(save_path):
print(f"{os.path.basename(save_path)} 已存在,跳过下载。")
return
try:
response = requests.get(url, stream=True)
response.raise_for_status() # 检查请求是否成功
total_size = int(response.headers.get('content-length', 0))
with open(save_path_time, 'wb') as file, tqdm(
desc=os.path.basename(save_path_time),
total=total_size,
unit='iB',
unit_scale=True,
unit_divisor=1024,
) as bar:
for data in response.iter_content(chunk_size=1024):
bar.update(len(data))
file.write(data)
except requests.exceptions.RequestException as e:
print(f"下载 {url} 时出错: {e}")
for i in range(1, 35):
if i == 21:
continue # 跳过第21个说话者
video1 = f"s{i}/video/s{i}.mpg_6000.part{i}.tar"
video2 = f"s{i}/video/s{i}.mpg_6000.part2.tar"
txt_label = f"s{i}/align/s{i}.tar"
# 下载的文件路径
file_paths = [BASE_URL + video1, BASE_URL + video2, BASE_URL + txt_label]
# 保存文件的路径
save_paths = [SAVE_DIR + video1, SAVE_DIR + video2, SAVE_DIR + txt_label]
# 开始批量下载
for file_path, save_path in zip(file_paths, save_paths):
# 创建保存文件的目录(如果不存在)
os.makedirs(os.path.dirname(save_path), exist_ok=True)
# 下载文件
download_file(file_path, save_path)
print(f"{i}号文件下载完成!")