liumaolin
Fix help text for `--disable-echo-cancellation` to clarify the default behavior is not disabled
d846f85
"""
命令行参数处理模块
提供命令行参数解析和配置功能
"""
import argparse
from voice_dialogue.config.speaker_config import update_argument_parser_speaker_choices
def create_argument_parser():
"""创建命令行参数解析器"""
# 动态获取可用说话人列表
available_speakers = update_argument_parser_speaker_choices()
parser = argparse.ArgumentParser(
description="VoiceDialogue - 语音对话系统",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=f"""
示例用法:
# 启动命令行模式(默认)
python main.py
# 启动命令行模式并指定参数
python main.py --mode cli --language zh --speaker 沈逸
# 启动API服务器
python main.py --mode api
# 启动API服务器并指定端口
python main.py --mode api --port 9000
# 启动API服务器并启用热重载(开发模式)
python main.py --mode api --port 8000 --reload
支持的说话人:
{', '.join(available_speakers)}
"""
)
# 运行模式选择
parser.add_argument(
'--mode', '-m',
choices=['cli', 'api'],
default='cli',
help='运行模式: cli=命令行模式, api=API服务器模式 (默认: cli)'
)
parser.add_argument(
'--debug',
action='store_true',
default=False,
help='启动debug模式'
)
# 命令行模式参数
cli_group = parser.add_argument_group('命令行模式参数')
cli_group.add_argument(
'--language', '-l',
choices=['zh', 'en'],
default='zh',
help='用户语言: zh=中文, en=英文 (默认: zh)'
)
cli_group.add_argument(
'--speaker', '-s',
choices=available_speakers,
default='沈逸' if '沈逸' in available_speakers else (available_speakers[0] if available_speakers else '沈逸'),
help='TTS说话人 (默认: 沈逸)'
)
cli_group.add_argument(
'--disable-echo-cancellation',
action='store_true',
default=False,
help='禁用回声消除功能 (默认: 不禁用)'
)
# API服务器模式参数
api_group = parser.add_argument_group('API服务器模式参数')
api_group.add_argument(
'--host',
default='0.0.0.0',
help='服务器主机地址 (默认: 0.0.0.0)'
)
api_group.add_argument(
'--port', '-p',
type=int,
default=8000,
help='服务器端口 (默认: 8000)'
)
api_group.add_argument(
'--reload',
action='store_true',
help='启用热重载(开发模式)'
)
return parser