# 语音控制插件

## 简介

语音控制插件为EG引擎提供完整的语音识别和语音合成功能，支持自然语言处理、命令映射、音频设备管理等。该插件能够识别用户的语音指令并执行相应的操作，同时可以通过语音合成提供反馈。

## 功能特性

### 1. 语音识别
- 实时语音识别功能
- 唤醒词检测（如"小艾"）
- 连续语音识别支持
- 音频级别检测和静音检测
- 多语言支持（中文、英文等）

### 2. 语音合成
- 文字转语音功能
- 多种语音选择（男声、女声、童声等）
- 语速、音量、音调调节
- SSML标记语言支持
- 实时音频播放

### 3. 命令处理
- 语音命令映射系统
- 模糊匹配和精确匹配
- 上下文感知命令处理
- 命令链支持
- 命令确认机制

### 4. 自然语言处理
- 意图识别
- 实体提取
- 情感分析
- 上下文管理
- 多语言支持

### 5. 音频管理
- 音频输入/输出设备管理
- 音频流控制
- 回声消除
- 噪声抑制
- 自动增益控制

### 6. 事件系统
- 事件队列管理
- 异步事件处理
- 事件过滤和去重
- 事件监听器系统

### 7. 配置管理
- 完整的配置管理系统
- 配置文件读写
- 配置备份和恢复
- 配置验证
- 实时配置更新

### 8. 编辑器支持
- 可视化配置界面
- 实时监控面板
- 语音测试工具
- 性能统计显示
- 综合测试功能

## 目录结构

```
voice_control/
├── plugin.py                 # 插件主文件
├── core/
│   └── voice_manager.py     # 语音管理器
├── recognition/
│   └── speech_recognizer.py # 语音识别器
├── synthesis/
│   └── speech_synthesizer.py# 语音合成器
├── commands/
│   └── command_processor.py # 命令处理器
├── audio/
│   └── audio_manager.py     # 音频管理器
├── events/
│   └── event_handler.py     # 事件处理器
├── nlp/
│   └── nlp_processor.py     # 自然语言处理器
├── config/
│   └── config_manager.py    # 配置管理器
├── editor/
│   └── voice_editor.py      # 语音编辑器
├── utils/
│   └── voice_utils.py       # 工具类
└── README.md               # 说明文档
```

## 核心模块

### 语音管理器 (VoiceManager)
负责管理语音识别和合成的核心功能，协调各子模块工作。

### 语音识别器 (SpeechRecognizer)
实现语音识别功能，处理音频输入和语音转文字。

### 语音合成器 (SpeechSynthesizer)
实现文字转语音功能，处理语音输出和音频播放。

### 命令处理器 (CommandProcessor)
处理识别到的语音命令，执行相应的操作。

### 音频管理器 (AudioManager)
管理音频输入输出设备，控制音频流。

### 事件处理器 (VoiceEventHandler)
处理语音控制相关的事件，提供事件队列和异步处理。

### 自然语言处理器 (NLPProcessor)
提供自然语言处理功能，包括意图识别和实体提取。

### 配置管理器 (VoiceConfigManager)
管理插件配置，提供配置读写和验证功能。

### 语音编辑器 (VoiceEditor)
提供可视化界面用于配置和测试语音控制功能。

### 工具类 (VoiceUtils)
提供实用工具函数，包括性能监控、日志记录、数据转换等。

## 使用示例

```python
# 初始化插件
plugin = VoiceControlPlugin(engine)
plugin.initialize()
plugin.enable()

# 开始语音识别
plugin.voice_manager.start_listening()

# 语音合成
plugin.voice_manager.speak_text("你好，欢迎使用语音控制系统")

# 处理命令
plugin.command_processor.process_command("前进", 0.95)

# 更新配置
plugin.config_manager.set_config("general", "language", "zh-CN")
```

## API参考

详细的API文档请参考各模块的源代码注释。

## 配置说明

插件配置文件位于 `config/voice_config.json`，支持以下配置项：

- 通用设置：启用状态、语言、唤醒词等
- 识别设置：语言、采样率、灵敏度等
- 合成设置：语音、语速、音量等
- 命令设置：模糊匹配、上下文超时等
- 音频设置：设备、回声消除、噪声抑制等
- NLP设置：语言、意图识别阈值等
- 事件设置：队列大小、事件过滤等

## 支持的设备

- 系统默认麦克风和扬声器
- USB音频设备
- 蓝牙音频设备
- 专业音频接口

## 性能优化

- 多线程处理避免阻塞主线程
- 智能音频级别检测减少CPU占用
- 缓存机制提高处理速度
- 异步事件处理提高响应性

## 扩展开发

插件采用模块化设计，易于扩展新功能：

1. 添加新的命令类型
2. 支持新的语言和方言
3. 扩展自然语言处理能力
4. 添加新的音频处理效果

## 许可证

本插件遵循EG引擎许可证协议。

## 支持与反馈

如有问题或建议，请联系开发团队或提交GitHub issue。