Python语音基础操作--12.3基于支持向量机SVM的语音情感识别

2023-12-19 01:18

本文主要是介绍Python语音基础操作--12.3基于支持向量机SVM的语音情感识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《语音信号处理试验教程》(梁瑞宇等)的代码主要是Matlab实现的,现在Python比较热门,所以把这个项目大部分内容写成了Python实现,大部分是手动写的。使用CSDN博客查看帮助文件:

Python语音基础操作–2.1语音录制,播放,读取
Python语音基础操作–2.2语音编辑
Python语音基础操作–2.3声强与响度
Python语音基础操作–2.4语音信号生成
Python语音基础操作–3.1语音分帧与加窗
Python语音基础操作–3.2短时时域分析
Python语音基础操作–3.3短时频域分析
Python语音基础操作–3.4倒谱分析与MFCC系数
Python语音基础操作–4.1语音端点检测
Python语音基础操作–4.2基音周期检测
Python语音基础操作–4.3共振峰估计
Python语音基础操作–5.1自适应滤波
Python语音基础操作–5.2谱减法
Python语音基础操作–5.4小波分解
Python语音基础操作–6.1PCM编码
Python语音基础操作–6.2LPC编码
Python语音基础操作–6.3ADPCM编码
Python语音基础操作–7.1帧合并
Python语音基础操作–7.2LPC的语音合成
Python语音基础操作–10.1基于动态时间规整(DTW)的孤立字语音识别试验
Python语音基础操作–10.2隐马尔科夫模型的孤立字识别
Python语音基础操作–11.1矢量量化(VQ)的说话人情感识别
Python语音基础操作–11.2基于GMM的说话人识别模型
Python语音基础操作–12.1基于KNN的情感识别
Python语音基础操作–12.2基于神经网络的情感识别
Python语音基础操作–12.3基于支持向量机SVM的语音情感识别
Python语音基础操作–12.4基于LDA,PCA的语音情感识别

代码可在Github上下载:busyyang/python_sound_open

20 个世纪90 年代Vapnik等人提出了支持向量机(SVM) 算法,它是一种基于统计理论的学习方法,其日的是为了改善神经网络学习方法的不足。目前SVM已经广泛应用于数据挖掘、模式识别等领域。支持向量机在机器学习领域有着重要的地位,其集最大间隔的超平面、凸二次规划问题、核分析方法等多种技术于一身,具有广阔的发展和应用前景。支持向量机从当初被提出,经过Dual、Smith等人的逐步完善,Vapnik在《统计学习理论》的论著中论证了SVM算法优于归纳推理给出的误差率的界。大量研究表明SVM 算法是一种非常有效的学习方法,它能够在高维特征空间得到优化的泛化界的超平面,能够使用核技术从而避免局部最小,通过间隔和限制支持向量的个数控制容量来防止过拟合。目前,SVM技术已经应用于各个领域,理论与实践都得到了充分的发展,在人脸识别,目标识别,文本识别等都有SVM 技术的成功应用。

SVM算法是统计学习理论的一种实现方式。最基本思路就是要找到使测试样本的分类错误率达到最低的最佳超平面,也就是要找到一个分割平面,使得训练集中的训练样本距离该平面的距离尽量的远,该分割平面两侧的空白区域(margin)最大。超平面为:
w x + b = 0 wx+b=0 wx+b=0

两侧的支持向量有:
w x 1 + b = 1 w x 2 + b = − 1 \begin{array}{ll} wx_1+b=1\\wx_2+b=-1 \end{array} wx1+b=1wx2+b=1

支持向量到平面的集合间隔为:
d ∗ = w x + b ∣ ∣ w ∣ ∣ = 1 ∣ ∣ w ∣ ∣ d^*=\frac{wx+b}{||w||}=\frac{1}{||w||} d=wwx+b=w1

为了让 d ∗ d^* d最大,也就是 ∣ ∣ w ∣ ∣ ||w|| w最小,那么构造一个目标函数为: min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 \min\frac{1}{2}||w||^2 min21w2

条件是任何一个点到超平面的距离不小于1(线性可分数据上): y i ( w x i + b ) − 1 ⩾ 0 y_i(wx_i+b)-1\geqslant 0 yi(wxi+b)10

转化为Lagrange算法:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i ( w x i + b ) − 1 ) (目标函数) L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^n\alpha_i(y_i(wx_i+b)-1) \tag{目标函数} L(w,b,α)=21w2i=1nαi(yi(wxi+b)1)

这篇关于Python语音基础操作--12.3基于支持向量机SVM的语音情感识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510433

相关文章

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

Python实现pdf电子发票信息提取到excel表格

《Python实现pdf电子发票信息提取到excel表格》这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录应用场景详细代码步骤总结优化应用场景电子发票信息提取系统主要应用于以下场景:企业财务部门:需

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1