--- __init__-old.py 2019-01-27 11:18:19.560918050 +0700 +++ __init__.py 2019-01-24 09:27:17.057865917 +0700 @@ -262,6 +262,14 @@ return 0 +def percentage(currentval, maxval): + return 100 * currentval / float(maxval) + + +def output_progress(listener_progress, str_task, progress_percent): + if listener_progress != None: + listener_progress(str_task,progress_percent) + def generate_subtitles( source_path, @@ -271,6 +279,7 @@ dst_language=DEFAULT_DST_LANGUAGE, subtitle_file_format=DEFAULT_SUBTITLE_FORMAT, api_key=None, + listener_progress=None, ): audio_filename, audio_rate = extract_audio(source_path) @@ -284,21 +293,28 @@ transcripts = [] if regions: try: - widgets = ["Converting speech regions to FLAC files: ", Percentage(), ' ', Bar(), ' ', + str_task_1 = "Converting speech regions to FLAC files: " + widgets = [str_task_1, Percentage(), ' ', Bar(), ' ', ETA()] - pbar = ProgressBar(widgets=widgets, maxval=len(regions)).start() + len_regions = len(regions) + pbar = ProgressBar(widgets=widgets, maxval=len_regions).start() extracted_regions = [] for i, extracted_region in enumerate(pool.imap(converter, regions)): extracted_regions.append(extracted_region) pbar.update(i) + progress_percent= percentage(i, len_regions) + output_progress(listener_progress,str_task_1,progress_percent) pbar.finish() - widgets = ["Performing speech recognition: ", Percentage(), ' ', Bar(), ' ', ETA()] + str_task_2 = "Performing speech recognition: " + widgets = [str_task_2, Percentage(), ' ', Bar(), ' ', ETA()] pbar = ProgressBar(widgets=widgets, maxval=len(regions)).start() for i, transcript in enumerate(pool.imap(recognizer, extracted_regions)): transcripts.append(transcript) pbar.update(i) + progress_percent= percentage(i, len_regions) + output_progress(listener_progress,str_task_2,progress_percent) pbar.finish() if not is_same_language(src_language, dst_language): @@ -349,4 +365,5 @@ if __name__ == '__main__': + multiprocessing.freeze_support() sys.exit(main())