def build_models(input_folder):
# Initialize the variable to store all the models
speech_models = []
# Parse the input directory
for dirname in os.listdir(input_folder):
# Get the name of the subfolder
subfolder = os.path.join(input_folder, dirname)
if not os.path.isdir(subfolder):
continue
# Extract the label
label = subfolder[subfolder.rfind('/') + 1:]
# Initialize the variables
X = np.array([])
# Create a list of files to be used for training
# We will leave one file per folder for testing
training_files = [x for x in os.listdir(subfolder) if x.endswith('.wav')][:-1]
# Iterate through the training files and build the models
for filename in training_files:
# Extract the current filepath
filepath = os.path.join(subfolder, filename)
# Read the audio signal from the input file
sampling_freq, signal = wavfile.read(filepath)
# Extract the MFCC features
with warnings.catch_warnings():
warnings.simplefilter('ignore')
features_mfcc = mfcc(signal, sampling_freq)
# Append to the variable X
if len(X) == 0:
X = features_mfcc
else:
X = np.append(X, features_mfcc, axis=0)
# Create the HMM model
model = ModelHMM()
# Train the HMM
model.train(X)
# Save the model for the current word
speech_models.append((model, label))
# Reset the variable
model = None
return speech_models
# Define a function to run tests on input files
speech_recognizer.py 文件源码
python
阅读 16
收藏 0
点赞 0
评论 0
评论列表
文章目录