feat: first commit

This commit is contained in:
2025-10-08 20:39:09 +08:00
commit 80f0e7f8d7
82 changed files with 12216 additions and 0 deletions

164
optimized_user_guide.md Normal file
View File

@@ -0,0 +1,164 @@
# 猫咪翻译器优化版使用指南
## 简介
猫咪翻译器优化版是在原有猫咪翻译器V2基础上根据米兰大学研究团队的最佳实践进行全面优化的系统。本系统集成了时序调制特征、统计静音检测、混合特征提取和DAG-HMM分类方法显著提高了猫叫声检测和意图分类的准确率。
## 系统优化亮点
1. **时序调制特征提取**:基于米兰大学研究,实现了捕捉猫叫声时序调制特征的提取方法
2. **统计模型静音检测**:优化了静音检测算法,提高了猫叫声分割的准确性
3. **混合特征提取器**结合MFCC、YAMNet嵌入和时序调制特征创建更全面的声学特征表示
4. **DAG-HMM与优化特征集成**:将最佳分类方法与优化特征结合,实现最高准确率
5. **调整梅尔滤波器数量**从64调整到23与米兰大学研究一致更适合猫叫声分析
## 安装依赖
```bash
pip install numpy==1.24.3 librosa==0.10.1 scikit-learn==1.3.0 tensorflow==2.12.0 pyaudio==0.2.13 matplotlib==3.7.2 hmmlearn==0.3.0 sounddevice==0.4.6
```
## 使用方法
### 1. 分析音频文件
```bash
python optimized_main.py analyze path/to/audio.wav --detector models/optimized_cat_detector_svm.pkl --intent-model models/optimized_dag_hmm_temporal_modulation.pkl --feature-type temporal_modulation
```
参数说明:
- `--detector`: 猫叫声检测器模型路径
- `--intent-model`: 意图分类器模型路径
- `--feature-type`: 特征类型,可选 'temporal_modulation'(推荐), 'mfcc', 'yamnet', 'hybrid'
- `--threshold`: 猫叫声检测阈值默认0.5
### 2. 实时麦克风分析
```bash
python optimized_main.py live --detector models/optimized_cat_detector_svm.pkl --intent-model models/optimized_dag_hmm_temporal_modulation.pkl --duration 3.0 --interval 1.0
```
参数说明:
- `--duration`: 每次录音持续时间(秒)
- `--interval`: 分析间隔时间(秒)
- `--device`: 录音设备ID可选
### 3. 添加训练样本
```bash
# 添加猫叫声样本
python optimized_main.py add-sample path/to/cat_sound.wav "快乐" --is-cat-sound --cat "我的猫咪"
# 添加非猫叫声样本
python optimized_main.py add-sample path/to/non_cat_sound.wav "环境噪音"
```
### 4. 训练猫叫声检测器
```bash
python optimized_main.py train-detector --cat-samples samples/cat_sounds --non-cat-samples samples/non_cat_sounds --model-type svm --output models/my_cat_detector.pkl
```
参数说明:
- `--model-type`: 模型类型,可选 'svm'(推荐), 'rf', 'nn'
### 5. 训练意图分类器
```bash
python optimized_main.py train-intent --samples intent_samples --feature-type temporal_modulation --output models/my_intent_classifier.pkl
```
样本目录结构:
```
intent_samples/
├── 快乐_满足/
│ ├── sample1.wav
│ ├── sample2.wav
├── 愤怒/
│ ├── sample1.wav
│ ├── sample2.wav
...
```
### 6. 系统验证
```bash
# 验证意图分类器
python optimized_system_validator.py --test-files test_data/manifest.json --validate-intent --intent-feature-type temporal_modulation --plot
# 验证猫叫声检测器
python optimized_system_validator.py --test-files test_data/manifest.json --validate-detector --detector-model-type svm --plot
# 同时验证两者
python optimized_system_validator.py --test-files test_data/manifest.json --validate-intent --validate-detector --plot
```
测试文件JSON格式
```json
[
{"path": "path/to/audio1.wav", "intent": "快乐", "is_cat_sound": true},
{"path": "path/to/audio2.wav", "intent": "愤怒", "is_cat_sound": true},
{"path": "path/to/audio3.wav", "is_cat_sound": false}
]
```
## 特征类型选择指南
1. **时序调制特征 (temporal_modulation)**
- 优势:最适合猫叫声分析,捕捉时序模式
- 推荐用于:意图分类,尤其是区分不同情感状态
2. **MFCC特征 (mfcc)**
- 优势:计算效率高,适合资源受限设备
- 推荐用于:简单场景和快速原型开发
3. **YAMNet嵌入 (yamnet)**
- 优势:通用声音识别能力强
- 推荐用于:复杂环境中的猫叫声检测
4. **混合特征 (hybrid)**
- 优势:结合所有特征的优点,最全面
- 推荐用于:追求最高准确率,不考虑计算资源
## 模型类型选择指南
1. **SVM**
- 优势:小样本(10-30)效果好,训练快,模型小
- 推荐用于:初始阶段,样本数量有限时
2. **随机森林(RF)**
- 优势:中等样本(30-100)效果好,特征重要性分析
- 推荐用于:需要了解关键声学特征时
3. **神经网络(NN)**
- 优势:大样本(100+)效果最佳,持续学习能力强
- 推荐用于:长期使用,有大量样本时
4. **DAG-HMM**
- 优势:最适合猫叫声时序分析,准确率最高
- 推荐用于:意图分类,尤其是与时序调制特征结合
## 性能优化建议
1. 每个类别收集至少10个高质量样本
2. 使用统计静音检测进行精确分段
3. 对于意图分类,优先使用时序调制特征+DAG-HMM组合
4. 对于猫叫声检测,在样本数量<30时使用SVM>100时考虑神经网络
5. 定期使用系统验证工具评估性能并调整参数
## 故障排除
1. **未检测到猫叫声**
- 降低检测阈值(--threshold 0.3
- 确保录音质量良好,背景噪音较小
- 添加更多当前环境下的猫叫声样本
2. **意图分类不准确**
- 为特定意图添加更多样本
- 尝试不同特征类型特别是temporal_modulation
- 调整DAG-HMM参数状态数和混合成分数
3. **系统运行缓慢**
- 使用计算效率更高的特征类型如mfcc
- 减少音频分段重叠
- 降低采样率但不低于16kHz