data/librispeech/utils.py (37 lines of code) (raw):
"""
Copyright (c) Facebook, Inc. and its affiliates.
All rights reserved.
This source code is licensed under the MIT-style license found in the
LICENSE file in the root directory of this source tree.
"""
from __future__ import absolute_import, division, print_function, unicode_literals
import os
import sox
def find_transcript_files(dir):
files = []
for dirpath, _, filenames in os.walk(dir):
for filename in filenames:
if filename.endswith(".trans.txt"):
files.append(os.path.join(dirpath, filename))
return files
def parse_speakers_gender(spk_file):
ret = {}
with open(spk_file, "r") as f:
for line in f:
if line.startswith(";"):
continue
sample_id, gen, _ = line.split("|", 2)
ret[sample_id.strip()] = gen.strip()
return ret
def transcript_to_list(file):
audio_path = os.path.dirname(file)
ret = []
with open(file, "r") as f:
for line in f:
file_id, trans = line.strip().split(" ", 1)
audio_file = os.path.abspath(os.path.join(audio_path, file_id + ".flac"))
duration = sox.file_info.duration(audio_file) * 1000 # miliseconds
ret.append([file_id, audio_file, str(duration), trans.lower()])
return ret
def read_list(src, files):
ret = []
for file in files:
with open(os.path.join(src, file + ".lst"), "r") as f:
for line in f:
_, _, _, trans = line.strip().split(" ", 3)
ret.append(trans)
return ret