Skip to content

Commit

Permalink
Fix logging bug
Browse files Browse the repository at this point in the history
  • Loading branch information
mmcauliffe committed Mar 5, 2021
1 parent d1e7e98 commit 7218e97
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 31 deletions.
6 changes: 3 additions & 3 deletions montreal_forced_aligner/command_line/align.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ def align_corpus(args, unknown_args=None):
args.corpus_directory = os.path.dirname(args.corpus_directory)
corpus_name = os.path.basename(args.corpus_directory)
data_directory = os.path.join(temp_dir, corpus_name)
logger = setup_logger(command, data_directory)
if args.config_path:
align_config = align_yaml_to_config(args.config_path)
else:
Expand All @@ -37,8 +36,9 @@ def align_corpus(args, unknown_args=None):
align_config.update_from_args(unknown_args)
conf_path = os.path.join(data_directory, 'config.yml')
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
conf = yaml.load(f, Loader=yaml.SafeLoader)
Expand Down Expand Up @@ -80,7 +80,7 @@ def align_corpus(args, unknown_args=None):
speaker_characters=args.speaker_characters,
num_jobs=args.num_jobs, logger=logger, use_mp=align_config.use_mp)
if corpus.issues_check:
logger.warning('WARNING: Some issues parsing the corpus were detected. '
logger.warning('Some issues parsing the corpus were detected. '
'Please run the validator to get more information.')
logger.info(corpus.speaker_utterance_info())
dictionary = Dictionary(args.dictionary_path, data_directory, word_set=corpus.word_set, logger=logger)
Expand Down
4 changes: 2 additions & 2 deletions montreal_forced_aligner/command_line/classify_speakers.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ def classify_speakers(args):
corpus_name = os.path.basename(args.corpus_directory)
data_directory = os.path.join(temp_dir, corpus_name)
conf_path = os.path.join(data_directory, 'config.yml')
logger = setup_logger(command, data_directory)
if args.config_path:
classification_config = classification_yaml_to_config(args.config_path)
else:
classification_config = load_basic_classification()
classification_config.use_mp = not args.disable_mp
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
conf = yaml.load(f, Loader=yaml.SafeLoader)
Expand Down
4 changes: 2 additions & 2 deletions montreal_forced_aligner/command_line/create_segments.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@ def create_segments(args, unknown_args=None):
corpus_name = os.path.basename(args.corpus_directory)
data_directory = os.path.join(temp_dir, corpus_name)
conf_path = os.path.join(data_directory, 'config.yml')
logger = setup_logger(command, data_directory)
if args.config_path:
segmentation_config = segmentation_yaml_to_config(args.config_path)
else:
segmentation_config = load_basic_segmentation()
if unknown_args:
segmentation_config.update_from_args(unknown_args)
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
conf = yaml.load(f, Loader=yaml.SafeLoader)
Expand Down
8 changes: 4 additions & 4 deletions montreal_forced_aligner/command_line/train_and_align.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,19 @@ def align_corpus(args, unknown_args=None):
args.corpus_directory = os.path.dirname(args.corpus_directory)
corpus_name = os.path.basename(args.corpus_directory)
data_directory = os.path.join(temp_dir, corpus_name)
logger = setup_logger(command, data_directory)
if args.config_path:
train_config, align_config = train_yaml_to_config(args.config_path)
else:
train_config, align_config = load_basic_train()
if unknown_args:
align_config.update_from_args(unknown_args)
conf_path = os.path.join(data_directory, 'config.yml')
if args.debug:
logger.warning('Running in DEBUG mode, may have impact on performance and disk usage.')
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
if args.debug:
logger.warning('Running in DEBUG mode, may have impact on performance and disk usage.')
if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
conf = yaml.load(f, Loader=yaml.SafeLoader)
Expand Down
49 changes: 36 additions & 13 deletions montreal_forced_aligner/command_line/train_dictionary.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@
from montreal_forced_aligner.config import TEMP_DIR, align_yaml_to_config, load_basic_align
from montreal_forced_aligner.utils import get_available_acoustic_languages, get_pretrained_acoustic_path, \
get_available_dict_languages, get_dictionary_path
from montreal_forced_aligner.helper import setup_logger
from montreal_forced_aligner.exceptions import ArgumentError


def train_dictionary(args):
command = 'train_dictionary'
all_begin = time.time()
if not args.temp_directory:
temp_dir = TEMP_DIR
Expand All @@ -31,47 +33,68 @@ def train_dictionary(args):
align_config = align_yaml_to_config(args.config_path)
else:
align_config = load_basic_align()
if getattr(args, 'clean', False) and os.path.exists(data_directory):
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
conf = yaml.load(f, Loader=yaml.SafeLoader)
else:
conf = {'dirty': False,
'begin': time.time(),
'version': __version__,
'type': 'align',
'type': command,
'corpus_directory': args.corpus_directory,
'dictionary_path': args.dictionary_path}
if conf['dirty'] or conf['type'] != 'align' \
'dictionary_path': args.dictionary_path,
'acoustic_model_path': args.acoustic_model_path
}
if conf['dirty'] or conf['type'] != command \
or conf['corpus_directory'] != args.corpus_directory \
or conf['version'] != __version__ \
or conf['dictionary_path'] != args.dictionary_path:
shutil.rmtree(data_directory, ignore_errors=True)
logger.warning(
'WARNING: Using old temp directory, this might not be ideal for you, use the --clean flag to ensure no '
'weird behavior for previous versions of the temporary directory.')
if conf['dirty']:
logger.debug('Previous run ended in an error (maybe ctrl-c?)')
if conf['type'] != command:
logger.debug('Previous run was a different subcommand than {} (was {})'.format(command, conf['type']))
if conf['corpus_directory'] != args.corpus_directory:
logger.debug('Previous run used source directory '
'path {} (new run: {})'.format(conf['corpus_directory'], args.corpus_directory))
if conf['version'] != __version__:
logger.debug('Previous run was on {} version (new run: {})'.format(conf['version'], __version__))
if conf['dictionary_path'] != args.dictionary_path:
logger.debug('Previous run used dictionary path {} '
'(new run: {})'.format(conf['dictionary_path'], args.dictionary_path))
if conf['acoustic_model_path'] != args.acoustic_model_path:
logger.debug('Previous run used acoustic model path {} '
'(new run: {})'.format(conf['acoustic_model_path'], args.acoustic_model_path))

os.makedirs(data_directory, exist_ok=True)
try:
corpus = AlignableCorpus(args.corpus_directory, data_directory,
speaker_characters=args.speaker_characters,
num_jobs=args.num_jobs, use_mp=align_config.use_mp)
num_jobs=args.num_jobs, use_mp=align_config.use_mp, logger=logger)
if corpus.issues_check:
print('WARNING: Some issues parsing the corpus were detected. '
logger.warning('WARNING: Some issues parsing the corpus were detected. '
'Please run the validator to get more information.')
print(corpus.speaker_utterance_info())
logger.info(corpus.speaker_utterance_info())
acoustic_model = AcousticModel(args.acoustic_model_path)
dictionary = Dictionary(args.dictionary_path, data_directory, word_set=corpus.word_set)
dictionary = Dictionary(args.dictionary_path, data_directory, word_set=corpus.word_set, logger=logger)
acoustic_model.validate(dictionary)

begin = time.time()
a = PretrainedAligner(corpus, dictionary, acoustic_model, align_config,
temp_directory=data_directory,
debug=getattr(args, 'debug', False))
if args.debug:
print('Setup pretrained aligner in {} seconds'.format(time.time() - begin))
debug=getattr(args, 'debug', False), logger=logger)
logger.debug('Setup pretrained aligner in {} seconds'.format(time.time() - begin))
a.verbose = args.verbose

begin = time.time()
a.align()
if args.debug:
print('Performed alignment in {} seconds'.format(time.time() - begin))
logger.debug('Performed alignment in {} seconds'.format(time.time() - begin))

a.generate_pronunciations(args.output_directory)
print('Done! Everything took {} seconds'.format(time.time() - all_begin))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ def train_ivector(args):
args.corpus_directory = os.path.dirname(args.corpus_directory)
corpus_name = os.path.basename(args.corpus_directory)
data_directory = os.path.join(temp_dir, corpus_name)
logger = setup_logger(command, data_directory)
if args.config_path:
train_config, align_config = train_yaml_to_config(args.config_path)
else:
train_config, align_config = load_basic_train_ivector()
conf_path = os.path.join(data_directory, 'config.yml')
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)

if os.path.exists(conf_path):
with open(conf_path, 'r') as f:
Expand Down
4 changes: 2 additions & 2 deletions montreal_forced_aligner/command_line/transcribe.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ def transcribe_corpus(args):
else:
transcribe_config = load_basic_transcribe()
data_directory = os.path.join(temp_dir, corpus_name)
logger = setup_logger(command, data_directory)
if getattr(args, 'clean', False) and os.path.exists(data_directory):
logger.info('Cleaning old directory!')
print('Cleaning old directory!')
shutil.rmtree(data_directory, ignore_errors=True)
logger = setup_logger(command, data_directory)
os.makedirs(data_directory, exist_ok=True)
os.makedirs(args.output_directory, exist_ok=True)
os.makedirs(data_directory, exist_ok=True)
Expand Down
2 changes: 1 addition & 1 deletion montreal_forced_aligner/features/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def add_job_specific_config(self, job_name, config):
self.job_specific_configuration[job_name] = config

def mfcc_options(self, job_name):
options = {'use_energy': self.use_energy}
options = {'use_energy': self.use_energy, 'frame_shift': self.frame_shift}
options.update(self.job_specific_configuration[job_name])
return options

Expand Down
4 changes: 2 additions & 2 deletions tests/test_commandline_download.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ def test_get_available_languages():
model_type = 'dictionary'
langs = list_available_languages(model_type)
assert 'english' in langs
assert 'fr' in langs
assert 'de' in langs
assert 'french_prosodylab' in langs
assert 'german_prosodylab' in langs


def test_download():
Expand Down

0 comments on commit 7218e97

Please sign in to comment.