jcmc's picture
Upload speechbrain IC model
9b333dd
raw
history blame
2.81 kB
import os
import logging
from speechbrain.dataio.dataio import read_audio
try:
import pandas as pd
except ImportError:
err_msg = (
"The optional dependency pandas must be installed to run this recipe.\n"
)
err_msg += "Install using `pip install pandas`.\n"
raise ImportError(err_msg)
logger = logging.getLogger(__name__)
def prepare_FSC(data_folder, save_folder, skip_prep=False):
"""
This function prepares the Fluent Speech Commands dataset.
data_folder : path to dataset.
save_folder: folder where the manifest files will be stored.
skip_prep: If True, skip data preparation
"""
if skip_prep:
return
splits = [
"train",
"valid",
"test",
]
ID_start = 0 # needed to have a unique ID for each audio
for split in splits:
new_filename = os.path.join(save_folder, split) + ".csv"
if os.path.exists(new_filename):
continue
logger.info("Preparing %s..." % new_filename)
ID = []
duration = []
wav = []
wav_format = []
wav_opts = []
spk_id = []
spk_id_format = []
spk_id_opts = []
semantics = []
semantics_format = []
semantics_opts = []
transcript = []
transcript_format = []
transcript_opts = []
df = pd.read_csv(os.path.join(data_folder, "data", split) + "_data.csv")
for i in range(len(df)):
ID.append(ID_start + i)
signal = read_audio(os.path.join(data_folder, df.path[i]))
duration.append(signal.shape[0] / 16000)
wav.append(os.path.join(data_folder, df.path[i]))
wav_format.append("wav")
wav_opts.append(None)
spk_id.append(df.speakerId[i])
spk_id_format.append("string")
spk_id_opts.append(None)
transcript_ = df.transcription[i]
transcript.append(transcript_)
transcript_format.append("string")
transcript_opts.append(None)
semantics_ = (
'{"action:" "'
+ df.action[i]
+ '"| "object": "'
+ df.object[i]
+ '"| "location": "'
+ df.location[i]
+ '"}'
)
semantics.append(semantics_)
semantics_format.append("string")
semantics_opts.append(None)
new_df = pd.DataFrame(
{
"ID": ID,
"duration": duration,
"wav": wav,
"spk_id": spk_id,
"semantics": semantics,
"transcript": transcript,
}
)
new_df.to_csv(new_filename, index=False)
ID_start += len(df)