speech_handler.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. '''
  2. Author: zhaoyong 77912776@qq.com
  3. Date: 2025-08-23 14:34:11
  4. LastEditTime: 2025-08-27 15:06:43
  5. LastEditors: zhaoyong 77912776@qq.com
  6. FilePath: \robot_ai\handlers\speech_handler.py
  7. Description: 头部注释配置模板
  8. '''
  9. """
  10. 语音识别处理模块 - 工厂类
  11. """
  12. from utils.logger import logger
  13. from utils.load_config import load_config
  14. from handlers.baidu.speech_handler import BaiduSpeechHandler
  15. from handlers.xunfei.speech_handler import XunfeiSpeechHandler
  16. class SpeechHandlerFactory:
  17. """语音识别处理器工厂类"""
  18. @staticmethod
  19. def create_handler():
  20. """
  21. 根据配置创建相应的语音识别处理器
  22. Returns:
  23. BaiduSpeechHandler or XunfeiSpeechHandler: 语音识别处理器实例
  24. """
  25. try:
  26. # 加载配置
  27. config = load_config()
  28. speech_config = config.get('speech_recognition', {})
  29. service_type = speech_config.get('service', 'xunfei_aiui')
  30. logger.info(f"创建语音识别处理器,服务类型: {service_type}")
  31. if service_type == 'baidu_realtime':
  32. return BaiduSpeechHandler()
  33. elif service_type == 'xunfei_aiui':
  34. return XunfeiSpeechHandler()
  35. else:
  36. logger.error(f"不支持的语音识别服务类型: {service_type}")
  37. raise ValueError(f"不支持的语音识别服务类型: {service_type}")
  38. except Exception as e:
  39. logger.error(f"创建语音识别处理器失败: {e}")
  40. raise
  41. # 为了保持向后兼容,保留原有的SpeechHandler类名
  42. class SpeechHandler:
  43. """语音识别处理类 - 兼容性包装器"""
  44. def __init__(self):
  45. self.handler = SpeechHandlerFactory.create_handler()
  46. def __getattr__(self, name):
  47. """代理所有方法调用到实际的处理器"""
  48. return getattr(self.handler, name)