File size: 1,295 Bytes
ae8b600 07e0a28 ae8b600 cc826a1 ae8b600 07e0a28 ae8b600 07e0a28 ae8b600 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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()
|