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()