universal-fast-dubbing / backend /verify_modules.py
cytopa99's picture
Upload 47 files
68e5689 verified
Raw History Blame Contribute Delete
6.83 kB
"""
核心模块验证脚本
验证所有核心处理模块是否正常工作。
"""
import sys
sys.path.insert(0, '.')
def verify_error_response():
"""验证 ErrorResponse 模块"""
from modules import (
ErrorCode, ErrorType, ErrorResponse, ErrorFactory, create_error_response
)
print("ErrorResponse 功能检查:")
# 测试创建错误响应
error = ErrorResponse(
error_code=ErrorCode.GROQ_RATE_LIMIT,
error_type=ErrorType.RETRYABLE,
message="测试错误消息",
retry_available=True
)
print(f" - ErrorCode枚举: {len(ErrorCode)} 个错误代码")
print(f" - ErrorType枚举: {len(ErrorType)} 个错误类型")
print(f" - to_dict方法: {hasattr(error, 'to_dict')}")
print(f" - to_user_message方法: {hasattr(error, 'to_user_message')}")
# 测试工厂方法
rate_limit_error = ErrorFactory.create_groq_rate_limit_error(retry_after=30)
print(f" - ErrorFactory工厂方法: 正常工作")
# 测试便捷函数
quick_error = create_error_response(
ErrorCode.TIMEOUT_ERROR,
"超时测试"
)
print(f" - create_error_response函数: 正常工作")
print(" ✓ ErrorResponse 验证通过")
return True
def verify_logging_config():
"""验证 logging_config 模块"""
from modules import (
LogLevel, Component, StructuredLogRecord, ComponentLogger,
setup_logging, get_component_logger, log_performance
)
print("\nLoggingConfig 功能检查:")
# 测试组件枚举
print(f" - Component枚举: {len(Component)} 个组件")
# 测试结构化日志记录
record = StructuredLogRecord(
timestamp="2024-01-01T00:00:00",
level="INFO",
component="Test",
message="测试消息"
)
json_output = record.to_json()
print(f" - StructuredLogRecord: 正常工作")
# 测试组件日志记录器
logger = get_component_logger(Component.GROQ_CLIENT)
print(f" - ComponentLogger: 正常工作")
print(f" - log_performance装饰器: {callable(log_performance)}")
print(" ✓ LoggingConfig 验证通过")
return True
def verify_groq_client():
"""验证 GroqClient 模块"""
from modules import GroqClient, GroqConfig, RetryStats
config = GroqConfig(api_key='test_key')
client = GroqClient(config)
print("\nGroqClient 功能检查:")
print(f" - ASR模型: {client.asr_model}")
print(f" - LLM模型: {client.llm_model}")
print(f" - transcribe方法: {hasattr(client, 'transcribe')}")
print(f" - translate方法: {hasattr(client, 'translate')}")
print(f" - get_retry_stats方法: {hasattr(client, 'get_retry_stats')}")
print(f" - RetryStats类: 正常工作")
print(" ✓ GroqClient 验证通过")
return True
def verify_tts_generator():
"""验证 TTSGenerator 模块"""
from modules import TTSGenerator, TTSConfig
generator = TTSGenerator()
voices = generator.get_available_voices()
print("\nTTSGenerator 功能检查:")
print(f" - 可用语音: {list(voices.keys())}")
print(f" - generate_single方法: {hasattr(generator, 'generate_single')}")
print(f" - generate方法: {hasattr(generator, 'generate')}")
print(" ✓ TTSGenerator 验证通过")
return True
def verify_smart_segmenter():
"""验证 SmartSegmenter 模块"""
from modules import SmartSegmenter, SegmenterConfig
segmenter = SmartSegmenter()
print("\nSmartSegmenter 功能检查:")
print(f" - 最大片段时长: {segmenter.config.max_segment_duration}s")
print(f" - 最小片段时长: {segmenter.config.min_segment_duration}s")
print(f" - 静音阈值: {segmenter.config.silence_threshold_db}dB")
print(f" - segment_audio方法: {hasattr(segmenter, 'segment_audio')}")
print(f" - should_segment方法: {hasattr(segmenter, 'should_segment')}")
print(" ✓ SmartSegmenter 验证通过")
return True
def verify_audio_sync_engine():
"""验证 AudioSyncEngine 模块"""
from modules import AudioSyncEngine, SyncConfig
engine = AudioSyncEngine()
print("\nAudioSyncEngine 功能检查:")
print(f" - 最大变速比例: {engine.config.max_speed_ratio}x")
print(f" - 同步容差: {engine.config.sync_tolerance}s")
print(f" - align方法: {hasattr(engine, 'align')}")
print(f" - align_segment方法: {hasattr(engine, 'align_segment')}")
print(f" - check_sync_drift方法: {hasattr(engine, 'check_sync_drift')}")
print(" ✓ AudioSyncEngine 验证通过")
return True
def main():
"""主验证函数"""
print("=" * 50)
print("Universal Fast Dubbing - 核心模块验证")
print("=" * 50)
results = []
try:
results.append(("ErrorResponse", verify_error_response()))
except Exception as e:
print(f"ErrorResponse 验证失败: {e}")
results.append(("ErrorResponse", False))
try:
results.append(("LoggingConfig", verify_logging_config()))
except Exception as e:
print(f"LoggingConfig 验证失败: {e}")
results.append(("LoggingConfig", False))
try:
results.append(("GroqClient", verify_groq_client()))
except Exception as e:
print(f"GroqClient 验证失败: {e}")
results.append(("GroqClient", False))
try:
results.append(("TTSGenerator", verify_tts_generator()))
except Exception as e:
print(f"TTSGenerator 验证失败: {e}")
results.append(("TTSGenerator", False))
try:
results.append(("SmartSegmenter", verify_smart_segmenter()))
except Exception as e:
print(f"SmartSegmenter 验证失败: {e}")
results.append(("SmartSegmenter", False))
try:
results.append(("AudioSyncEngine", verify_audio_sync_engine()))
except Exception as e:
print(f"AudioSyncEngine 验证失败: {e}")
results.append(("AudioSyncEngine", False))
print("\n" + "=" * 50)
print("验证结果汇总:")
print("=" * 50)
all_passed = True
for name, passed in results:
status = "✓ 通过" if passed else "✗ 失败"
print(f" {name}: {status}")
if not passed:
all_passed = False
print("=" * 50)
if all_passed:
print("所有核心模块验证通过!")
else:
print("部分模块验证失败,请检查!")
return all_passed
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)