#!/usr/bin/env python3
"""
Chinese Speech Recognition Configuration
Optimized settings for Chinese language processing
"""

# Whisper Model Configuration for Chinese
CHINESE_WHISPER_CONFIG = {
    # Model preferences in order (best to fallback)
    "model_priority": [
        ("large-v3", "最佳质量 - 中文优化"),
        ("large-v3-turbo", "超快速度 - 速度优化的中文识别"),
        ("large-v2", "高质量 - 良好中文支持"),
        ("medium", "平衡 - 良好中文性能"),
        ("small", "快速 - 不错的中文支持"),
        ("base", "最快 - 基本中文支持")
    ],

    # Transcription parameters optimized for Chinese
    "transcription_params": {
        "beam_size": 5,
        "best_of": 5,
        "language": "zh",  # Force Chinese
        "task": "transcribe",
        "condition_on_previous_text": False,
        "compression_ratio_threshold": 2.4,
        "log_prob_threshold": -1.0,
        "no_speech_threshold": 0.6,
        "initial_prompt": "以下是普通话语音转录，包含日常对话、技术讨论和各种中文内容：",
        "vad_filter": True,
        "vad_parameters": {
            "min_silence_duration_ms": 500,
            "speech_pad_ms": 400
        }
    },

    # Audio preprocessing for Chinese speech
    "audio_config": {
        "sample_rate": 16000,
        "channels": 1,
        "bit_depth": 16,
        "normalize_audio": True,
        "noise_reduction": True
    },

    # Chinese language specific settings
    "chinese_settings": {
        "detect_language": False,  # Force Chinese, don't auto-detect
        "enable_word_timestamps": True,
        "punctuation_model": "zh",
        "temperature": 0.0,  # More deterministic for Chinese
        "repetition_penalty": 1.1
    },

    # Performance settings
    "performance": {
        "use_gpu": True,
        "gpu_compute_type": "float16",
        "cpu_compute_type": "int8",
        "max_concurrent_requests": 3
    }
}

# Chinese test phrases for validation
CHINESE_TEST_PHRASES = [
    "你好，这是中文语音识别测试。",
    "今天天气怎么样？",
    "我正在测试语音转文字功能。",
    "中国的科技发展非常迅速。",
    "人工智能改变了我们的生活方式。",
    "深度学习在语音识别中发挥重要作用。",
    "实时语音转录技术日益成熟。",
    "这个系统支持连续语音输入。"
]

# Regional dialect support
CHINESE_DIALECTS = {
    "mandarin": {
        "language_code": "zh",
        "description": "普通话 (Standard Mandarin)",
        "initial_prompt": "以下是标准普通话语音转录："
    },
    "zh-cn": {
        "language_code": "zh",
        "description": "中国大陆普通话",
        "initial_prompt": "以下是中国大陆普通话语音转录："
    },
    "zh-tw": {
        "language_code": "zh",
        "description": "台湾国语",
        "initial_prompt": "以下是台湾國語語音轉錄："
    }
}

def get_chinese_config(dialect="mandarin"):
    """Get optimized configuration for Chinese speech recognition"""
    config = CHINESE_WHISPER_CONFIG.copy()

    if dialect in CHINESE_DIALECTS:
        dialect_config = CHINESE_DIALECTS[dialect]
        config["transcription_params"]["initial_prompt"] = dialect_config["initial_prompt"]
        config["transcription_params"]["language"] = dialect_config["language_code"]

    return config

def get_model_info(model_name):
    """Get information about a specific model"""
    for name, description in CHINESE_WHISPER_CONFIG["model_priority"]:
        if name == model_name:
            return description
    return "Unknown model"