5.7 KiB
5.7 KiB
猫咪翻译器优化版使用指南
简介
猫咪翻译器优化版是在原有猫咪翻译器V2基础上,根据米兰大学研究团队的最佳实践进行全面优化的系统。本系统集成了时序调制特征、统计静音检测、混合特征提取和DAG-HMM分类方法,显著提高了猫叫声检测和意图分类的准确率。
系统优化亮点
- 时序调制特征提取:基于米兰大学研究,实现了捕捉猫叫声时序调制特征的提取方法
- 统计模型静音检测:优化了静音检测算法,提高了猫叫声分割的准确性
- 混合特征提取器:结合MFCC、YAMNet嵌入和时序调制特征,创建更全面的声学特征表示
- DAG-HMM与优化特征集成:将最佳分类方法与优化特征结合,实现最高准确率
- 调整梅尔滤波器数量:从64调整到23,与米兰大学研究一致,更适合猫叫声分析
安装依赖
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. 分析音频文件
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. 实时麦克风分析
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. 添加训练样本
# 添加猫叫声样本
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. 训练猫叫声检测器
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. 训练意图分类器
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. 系统验证
# 验证意图分类器
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格式:
[
{"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}
]
特征类型选择指南
-
时序调制特征 (temporal_modulation):
- 优势:最适合猫叫声分析,捕捉时序模式
- 推荐用于:意图分类,尤其是区分不同情感状态
-
MFCC特征 (mfcc):
- 优势:计算效率高,适合资源受限设备
- 推荐用于:简单场景和快速原型开发
-
YAMNet嵌入 (yamnet):
- 优势:通用声音识别能力强
- 推荐用于:复杂环境中的猫叫声检测
-
混合特征 (hybrid):
- 优势:结合所有特征的优点,最全面
- 推荐用于:追求最高准确率,不考虑计算资源
模型类型选择指南
-
SVM:
- 优势:小样本(10-30)效果好,训练快,模型小
- 推荐用于:初始阶段,样本数量有限时
-
随机森林(RF):
- 优势:中等样本(30-100)效果好,特征重要性分析
- 推荐用于:需要了解关键声学特征时
-
神经网络(NN):
- 优势:大样本(100+)效果最佳,持续学习能力强
- 推荐用于:长期使用,有大量样本时
-
DAG-HMM:
- 优势:最适合猫叫声时序分析,准确率最高
- 推荐用于:意图分类,尤其是与时序调制特征结合
性能优化建议
- 每个类别收集至少10个高质量样本
- 使用统计静音检测进行精确分段
- 对于意图分类,优先使用时序调制特征+DAG-HMM组合
- 对于猫叫声检测,在样本数量<30时使用SVM,>100时考虑神经网络
- 定期使用系统验证工具评估性能并调整参数
故障排除
-
未检测到猫叫声:
- 降低检测阈值(--threshold 0.3)
- 确保录音质量良好,背景噪音较小
- 添加更多当前环境下的猫叫声样本
-
意图分类不准确:
- 为特定意图添加更多样本
- 尝试不同特征类型,特别是temporal_modulation
- 调整DAG-HMM参数(状态数和混合成分数)
-
系统运行缓慢:
- 使用计算效率更高的特征类型(如mfcc)
- 减少音频分段重叠
- 降低采样率(但不低于16kHz)