- Create modules/omnivoice/ with VoiceAPI, VoiceProfiles, CLI - Add config manager integration with local model support - Add app/komAI.py entry point - Add tests/test_omnivoice.py - Clone OmniVoice to external/ for development - Add omnivoice config to global.yaml
91 lines
2.0 KiB
Python
91 lines
2.0 KiB
Python
import sys
|
|
import argparse
|
|
|
|
import src.utils.config_manager as config
|
|
import src.utils.log_manager as log
|
|
|
|
from modules.omnivoice import register_config, register_logging
|
|
|
|
|
|
def init():
|
|
cfg = config.config
|
|
|
|
try:
|
|
register_config()
|
|
except Exception as e:
|
|
print(f"Failed to register omnivoice config: {e}")
|
|
|
|
cfg.load()
|
|
|
|
log.register_global_params()
|
|
log.register(module="app", log_console=True, log_file="app.log")
|
|
log.setup()
|
|
|
|
logger = log.get_logger("app")
|
|
logger.print("komAI initialized")
|
|
|
|
try:
|
|
register_logging()
|
|
except Exception as e:
|
|
logger.print(f"Failed to register omnivoice logging: {e}", level="warning")
|
|
|
|
return logger
|
|
|
|
|
|
def init_cli():
|
|
import src.utils.config_manager as config
|
|
|
|
cfg = config.config
|
|
|
|
try:
|
|
from modules.omnivoice import register_config
|
|
|
|
register_config()
|
|
except Exception as e:
|
|
print(f"Failed to register omnivoice config: {e}")
|
|
|
|
cfg.load()
|
|
|
|
|
|
def run_cli(args=None):
|
|
from modules.omnivoice.cli import main as cli_main
|
|
|
|
return cli_main(args)
|
|
|
|
|
|
def main(argv=None):
|
|
argv = argv or sys.argv[1:]
|
|
|
|
parser = argparse.ArgumentParser(prog="komAI")
|
|
subparsers = parser.add_subparsers()
|
|
|
|
p_voice = subparsers.add_parser("voice", help="OmniVoice TTS")
|
|
p_voice.add_argument("command", help="clone|design|auto")
|
|
p_voice.add_argument("args", nargs=argparse.REMAINDER)
|
|
|
|
p_shell = subparsers.add_parser("shell", help="Interactive shell")
|
|
|
|
args = parser.parse_args(argv)
|
|
|
|
if hasattr(args, "command") and args.command:
|
|
cmd_args = [args.command] + args.args
|
|
return run_cli(cmd_args)
|
|
|
|
if args.command == "shell" or (not argv):
|
|
init()
|
|
print("komAI shell. Use Ctrl+C to exit.")
|
|
try:
|
|
import code
|
|
|
|
code.interact(local=locals())
|
|
except KeyboardInterrupt:
|
|
pass
|
|
return 0
|
|
|
|
parser.print_help()
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|