|
import soundfile as sf |
|
import os |
|
|
|
os.makedirs("dataset", exist_ok=True) |
|
archive_path = "test" |
|
wav_dir = os.path.join(archive_path, "wav") |
|
segments_file = os.path.join(archive_path, "text.all") |
|
with open(segments_file, "r", encoding="utf-8") as f: |
|
for _id, line in enumerate(f): |
|
segment = line.split(" ")[0] |
|
text = " ".join(line.split(" ")[1:]) |
|
wav_name, _, time = segment.split("_") |
|
time = time.replace("seg-", "") |
|
start, stop = time.split(":") |
|
start = int(int(start) / 100 * 16_000) |
|
stop = int(int(stop) / 100 * 16_000) |
|
wav_path = os.path.join(wav_dir, wav_name + ".wav") |
|
sound, _ = sf.read(wav_path, start=start, stop=stop) |
|
sf.write(f"dataset/{segment}.wav", sound, 16_000) |
|
open(f"dataset/{segment}.txt", "w").write(text) |
|
|