拓冰建站拓冰建站
首页 / 资讯中心 / 正文

语音情感识别自定义数据集:手把手教你扩充专属语音情感样本

语音情感识别自定义数据集手把手教你扩充专属语音情感样本【免费下载链接】emotion-recognition-using-speechBuilding and training Speech Emotion Recognizer that predicts human emotions using Python, Sci-kit learn and Keras项目地址: https://gitcode.com/gh_mirrors/em/emotion-recognition-using-speechemotion-recognition-using-speech是一个基于 Python、Sci-kit learn 与 Keras 构建的语音情感识别Speech Emotion Recognition开源项目它能够从人声片段中自动识别出愤怒、开心、悲伤、中性等人类情绪。很多新手在跑通官方示例后都会遇到同一个痛点内置数据集不够用、模型不认识我的声音。本文就手把手带你为这个语音情感识别项目扩充自定义数据集用你自己的录音训练专属情感模型。为什么需要扩充语音情感识别自定义数据集公开数据集如 RAVDESS、TESS、EMO-DB虽然质量高但都是专业演员在安静环境下的录音。实际应用场景中 麦克风音质、距离、环境噪声差异大️ 不同口音、语速、音色会影响特征分布 少数情绪类别样本不足模型容易偏科好在项目原生支持data/train-custom训练和data/test-custom测试两个自定义目录你只需把录音放进去即可与内置数据集一起参与训练。扩充语音情感样本前的准备工作第一步获取项目与安装依赖git clone https://gitcode.com/gh_mirrors/em/emotion-recognition-using-speech cd emotion-recognition-using-speech pip3 install -r requirements.txt核心依赖包括tensorflow、librosa、scikit-learn、soundfile等同时请确保系统已安装ffmpeg音频格式转换工具必须加入 PATH。第二步准备你的录音文件录音没有严格格式限制但强烈建议单句完整语音时长 1~5 秒为宜环境尽量安静情绪表达要清晰同一情绪可多录几份样本越丰富越好自定义数据集音频格式转换最快方法项目对音频有两个硬性要求16000Hz 采样率 单声道。好在项目提供了现成脚本 convert_wavs.py其核心方法convert_audio()内部调用 ffmpeg 一键完成转换。# 批量转换整个文件夹 python convert_wavs.py 你的录音文件夹 data/train-custom -r # 转换单个文件 python convert_wavs.py my_voice.wav data/train-custom/my_voice_happy.wav转换后请务必检查文件是否出现在data/train-custom目录中。自定义数据集文件命名规则最容易踩坑的地方项目通过文件名后缀自动识别情绪标签这是整个流程的命门格式为任意名称_情绪英文名.wav例如20240616_125714_happy.wav→ happymy_voice_neutral.wav→ neutralzaki1_angry.wav→ angry项目共支持 9 种情绪标签定义在 utils.py 的AVAILABLE_EMOTIONS中neutral、calm、happy、sad、angry、fear、disgust、pspleasant surprise 惊喜、boredom。⚠️注意文件名若不含_情绪名后缀脚本会直接忽略该文件情绪名拼写错误也会导致样本无法被读取。自动生成自定义数据集描述文件特征提取依赖 CSV 描述文件记录每个音频的路径与标签。项目提供了 create_csv.py 中的write_custom_csv()函数它会自动扫描data/train-custom/*_happy.wav这类文件并生成train_custom.csv与test_custom.csv。当你实例化 emotion_recognition.py 中的EmotionRecognizer类时CSV 会被自动生成无需手动干预from emotion_recognition import EmotionRecognizer from sklearn.svm import SVC rec EmotionRecognizer(modelSVC(), emotions[sad, neutral, happy], balanceTrue, verbose0) rec.train() print(Test score:, rec.test_score())训练你的专属语音情感识别模型完成上述步骤后模型训练会自动融合三路数据源TESSRAVDESS、EMO-DB 与你的自定义数据集。若只想用自定义数据训练可关闭其他数据源rec EmotionRecognizer(emotions[sad, neutral, happy], tess_ravdessFalse, emodbFalse, custom_dbTrue, balanceFalse, verbose1)训练完成后用你自己的录音测试效果print(Prediction:, rec.predict(data/test-custom/zaki1_happy.wav))若音频格式不符predict()会自动调用 ffmpeg 转换非常省心。扩充语音情感样本的进阶技巧平衡样本数量balanceTrue会自动将各类别样本对齐到最少类别数量避免类别不均衡但也会丢弃多余样本建议每类录音数量尽量接近。实时测试语音运行python test.py可打开麦克风说话停顿后模型自动输出识别情绪用-e参数可指定情绪集合。特征工程默认提取 MFCC、Chroma、MEL 三种特征见 data_extractor.py特征提取结果会缓存到features/目录的 .npy 文件中新增样本后删除旧缓存可强制重新提取。总结为 emotion-recognition-using-speech 扩充语音情感识别自定义数据集只需四步录音 → ffmpeg 转 16000Hz 单声道 → 按名字_情绪.wav命名 → 放入 train-custom/test-custom 目录。之后项目会自动生成 CSV 描述文件并参与训练。从零到拥有认识你声音的情感模型就是这么快快来录制你的第一批专属语音情感样本吧【免费下载链接】emotion-recognition-using-speechBuilding and training Speech Emotion Recognizer that predicts human emotions using Python, Sci-kit learn and Keras项目地址: https://gitcode.com/gh_mirrors/em/emotion-recognition-using-speech创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门