Exemplo n.º 1
0
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)