John2J/SFVS / mmaudio /data /eval /audiocaps.py
John2J's picture
download
raw
1.05 kB
import logging
import os
from collections import defaultdict
from pathlib import Path
from typing import Union
import pandas as pd
import torch
from torch.utils.data.dataset import Dataset
log = logging.getLogger()
class AudioCapsData(Dataset):
def __init__(self, audio_path: Union[str, Path], csv_path: Union[str, Path]):
df = pd.read_csv(csv_path).to_dict(orient='records')
audio_files = sorted(os.listdir(audio_path))
audio_files = set(
[Path(f).stem for f in audio_files if f.endswith('.wav') or f.endswith('.flac')])
self.data = []
for row in df:
self.data.append({
'name': row['name'],
'caption': row['caption'],
})
self.audio_path = Path(audio_path)
self.csv_path = Path(csv_path)
log.info(f'Found {len(self.data)} matching audio files in {self.audio_path}')
def __getitem__(self, idx: int) -> torch.Tensor:
return self.data[idx]
def __len__(self):
return len(self.data)

Xet Storage Details

Size:
1.05 kB
·
Xet hash:
a56ce49db39ded830daeb35258b38f65f0c13eb25ed3bb1a04606c7ce939e4e8

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.