| import logging | |
| from .asr_drivers import get_asr_registry | |
| logger = logging.getLogger(__name__) | |
| class AudioTranscriptionPlugin: | |
| def __init__(self): | |
| self.name = "audio" | |
| self.version = "1.0.0" | |
| self.enabled = False | |
| def on_enable(self): | |
| self.enabled = True | |
| logger.info(f"音频转录插件 {self.version} 已启用") | |
| def on_disable(self): | |
| self.enabled = False | |
| logger.info(f"音频转录插件 {self.version} 已禁用") | |
| def get_status(self) -> dict: | |
| # 基于 driver registry 上报真实状态(默认 provider 及其可用性) | |
| registry = get_asr_registry() | |
| default_name = registry.get_default_provider() | |
| default_driver = registry.get_driver(default_name) | |
| availability = default_driver.check_availability() if default_driver else "unknown" | |
| return { | |
| "name": self.name, | |
| "version": self.version, | |
| "enabled": self.enabled, | |
| "default_provider": default_name, | |
| "model": default_driver.model_id if default_driver else None, | |
| "available": availability.value if hasattr(availability, "value") else availability, | |
| "providers": registry.list_providers(), | |
| } | |
| plugin = AudioTranscriptionPlugin() | |