def cl_main(): # parse args arg_parser = argparse.ArgumentParser( description="Google Speech v%s.%s" % (__version__, __doc__), formatter_class=argparse.ArgumentDefaultsHelpFormatter) arg_parser.add_argument("speech", help="Text to play") arg_parser.add_argument("-l", "--lang", choices=SUPPORTED_LANGUAGES, default="en", dest="lang", help="Language") arg_parser.add_argument("-e", "--sox-effects", default=(), nargs="+", dest="sox_effects", help="SoX effect command to pass to SoX's play") arg_parser.add_argument("-v", "--verbosity", choices=("warning", "normal", "debug"), default="normal", dest="verbosity", help="Level of logging output") arg_parser.add_argument( "-o", "--output", default=None, dest="output", help="Outputs audio data to this file instead of playing it") args = arg_parser.parse_args() # setup logger logging_level = { "warning": logging.WARNING, "normal": logging.INFO, "debug": logging.DEBUG } logging.getLogger().setLevel(logging_level[args.verbosity]) logging.getLogger("requests").setLevel(logging.ERROR) logging.getLogger("urllib3").setLevel(logging.ERROR) if logging_level[args.verbosity] == logging.DEBUG: fmt = "%(asctime)s %(threadName)s: %(message)s" else: fmt = "%(message)s" logging_formatter = colored_logging.ColoredFormatter(fmt=fmt) logging_handler = logging.StreamHandler() logging_handler.setFormatter(logging_formatter) logging.getLogger().addHandler(logging_handler) if (args.output is not None) and args.sox_effects: logging.getLogger().debug( "Effects are not supported when saving to a file") exit(1) # do the job if args.output: Speech(args.speech, args.lang).save(args.output) else: Speech(args.speech, args.lang).play(args.sox_effects)
def cl_main(): # parse args arg_parser = argparse.ArgumentParser( description="Google Speech v%s.%s" % (__version__, __doc__), formatter_class=argparse.ArgumentDefaultsHelpFormatter) arg_parser.add_argument("speech", help="Text to play") arg_parser.add_argument("-l", "--lang", choices=SUPPORTED_LANGUAGES, default="en", dest="lang", help="Language") arg_parser.add_argument("-e", "--sox-effects", default=None, nargs="+", dest="sox_effects", help="SoX effect command to pass to SoX's play") arg_parser.add_argument("-v", "--verbosity", choices=("warning", "normal", "debug"), default="normal", dest="verbosity", help="Level of logging output") args = arg_parser.parse_args() # setup logger logging_level = { "warning": logging.WARNING, "normal": logging.INFO, "debug": logging.DEBUG } logging.getLogger().setLevel(logging_level[args.verbosity]) logging.getLogger("requests").setLevel(logging.ERROR) logging.getLogger("urllib3").setLevel(logging.ERROR) if logging_level[args.verbosity] == logging.DEBUG: fmt = "%(asctime)s %(threadName)s: %(message)s" else: fmt = "%(message)s" logging_formatter = colored_logging.ColoredFormatter(fmt=fmt) logging_handler = logging.StreamHandler() logging_handler.setFormatter(logging_formatter) logging.getLogger().addHandler(logging_handler) # main main(args.speech, args.lang, args.sox_effects)