一、前言
该文章仅作为个人学习使用
二、正文
项目源代码:Python 迷你项目 - 使用 librosa 进行语音情感识别 - DataFlair (data-flair.training)
数据集:
Python 迷你项目
语音情感识别,有史以来最好的python小项目。最好的例子可以在呼叫中心看到。如果您注意到,呼叫中心员工从不以相同的方式说话,他们与客户推销/交谈的方式会随着客户而变化。现在,这也发生在普通人身上,但这与呼叫中心有什么关系?这是你的答案,员工从言语中识别客户的情绪,这样他们就可以改善他们的服务并转化更多的人。通过这种方式,他们正在使用语音情感识别。那么,让我们详细讨论这个项目。
语音情感识别是一个简单的 Python 迷你项目,您将使用 DataFlair 进行练习。之前,我向您解释与此迷你 python 项目相关的术语,请确保您将 Python 项目的完整列表添加为书签。
什么是语音情感识别?
言语情绪识别,缩写为SER,是试图从言语中识别人类情绪和情感状态的行为。这利用了这样一个事实,即声音通常通过语气和音调反映潜在的情感。这也是狗和马等动物用来理解人类情感的现象。
SER 很难,因为情绪是主观的,注释音频具有挑战性。
什么是天秤座?
librosa 是一个用于分析音频和音乐的 Python 库。它具有更扁平的封装布局、标准化的接口和名称、向后兼容性、模块化功能和可读代码。此外,在这个 Python 迷你项目中,我们演示了如何使用 pip 安装它(以及其他一些包)。
什么是 JupyterLab?
JupyterLab 是 Project Jupyter 的开源、基于 Web 的 UI,它具有 Jupyter Notebook 的所有基本功能,如笔记本、终端、文本编辑器、文件浏览器、丰富的输出等。但是,它还提供了对第三方扩展的改进支持。
若要在 JupyterLab 中运行代码,首先需要使用命令提示符运行它:
C:\Users\DataFlair>jupyter 实验室
这将在浏览器中为您打开一个新会话。创建一个新的控制台,然后开始键入代码。JupyterLab 可以一次执行多行代码;按 Enter 键不会执行您的代码,您需要按 Shift+Enter 键才能执行相同的代码。
言语情感识别 – 目标
使用 librosa 和 sklearn 库以及 RAVDESS 数据集构建一个模型来识别语音中的情感。
语音情感识别 – 关于 Python 迷你项目
在这个 Python 迷你项目中,我们将使用 librosa、soundfile 和 sklearn 等库来构建使用 MLPClassifier 的模型。这将能够识别声音文件中的情感。我们将加载数据,从中提取特征,然后将数据集拆分为训练集和测试集。然后,我们将初始化 MLPClassifier 并训练模型。最后,我们将计算模型的准确性。
数据集
对于这个 Python 迷你项目,我们将使用 RAVDESS 数据集;这是 Ryerson Audio-Visual Database of Emotional Speech and Song 数据集,可免费下载。该数据集有 7356 个文件,由 247 个人对情感有效性、强度和真实性进行了 10 次评分。整个数据集是来自 24 个参与者的 24.8GB,但我们降低了所有文件的采样率,您可以在此处下载。
先决条件
您需要使用 pip 安装以下库:
pip install librosa soundfile numpy sklearn pyaudio
如果您在使用 pip 安装 librosa 时遇到问题,可以尝试使用 conda。
语音情感识别 python 项目的步骤
1. 进行必要的进口:
导入 Librosa导入声音文件导入操作系统、glob、泡菜导入 numpy 作为 np来自 Sklearn。model_selection导入train_test_split来自 Sklearn。neural_network导入 MLPClassifier来自 Sklearn。指标导入accuracy_score
截图:
2. 定义一个功能extract_feature,以从声音文件中提取 mfcc、chroma 和 mel 特征。此函数采用 4 个参数 - 文件名和三个功能的三个布尔参数:
- MFCC的:Mel 频率倒谱系数,表示声音的短期功率谱
- 色度:涉及 12 种不同的音高等级
- 梅尔:梅尔频谱图频率