语音抑郁症研究框架

1、数据集

MODMA 抑郁症语音数据集:http://modma.lzu.edu.cn

DAIC-WOZ 抑郁症语音数据集:https://dcapswoz.ict.usc.edu

AViD-Corpus抑郁症语音数据集:http://avec2013-db.sspnet.eu

2、特征提取工具

openSMILE:https://www.audeering.com/research/opensmile/

Covarep:https://github.com/covarep/covarep

DisVoice:Python语言开发,https://github.com/jcvasquezc/DisVoice/

一些常用提取音频特征的工具包:

名称地址适配语言
Aubiohttps://aubio.orgc/python
Essentiahttps://essentia.upf.educ++/python
Librosahttps://librosa.orgpython
Madmomhttp://madmom.readthedocs.orgpython
pyAudioAnalysishttps://github.com/tyiannak/pyAudioAnalysispython
Vamp-pluginshttps://www.vamp-plugins.orgc++/python
Yaafehttp://yaafe.sourceforge.netpython/matlab
spafehttps://github.com/SuperKogito/spafepython

以下是转载行者AI的总结文章,入门很好。

音频特征提取方法和工具汇总 - 知乎

1. 音频特征的类别

认识音频特征不同类别不在于对某一个特征精准分类而是加深理解特征的物理意义,一般对于音频特征我们可以从以下维度区分:

(1)特征是由模型从信号中直接提取还是基于模型的输出得到的统计,如均值、方差等;

(2)特征表示的是瞬态还是全局上的值,瞬态一般以帧为单位而全局则覆盖更长的时间维度;

(3)特征的抽象程度,底层特征抽象程度最低也是最易从原始音频信号中提取,它可以进一步被处理为高一级的中间特征代表乐谱中常见的音乐元素,如音高、音符的起始时间等;高层特征最为抽象大多用于音乐的曲风和情绪任务;

(4)根据特征提取过程的差异可以分为:从原始信号中直接提取的特征(如过零率)、将信号转换为频率得到的特征(如谱心质)、需经过特定的模型得到的特征(如旋律)、受人耳听觉认知启发改变量化特征尺度得到的特征(如MFCCs)。

我们以“特征提取过程的差异”为主要分类基准,列出各类下比较常见的特征:

fccfc78a81f86ab20e73dc2079fe40fb.png

同时我们也发现部分特征并非完全属于其中一个类别。例如MFCC,因为提取MFCC会将信号从时域转换至频域然后根据模仿人类听觉响应的MEL尺度过滤器得到的,因此它既属于频域特征又属于感知特征。

2. 音频信号处理

音频数字信号是一系列数字代表时域中连续变化的样本,也就是常常说的“波形图”。要对数字信号进行分析操作需对信号进行采样和量化。

采样是指连续时间的离散化的过程,其中均匀采样是指每隔相等时间间隔采样一次,每秒需要采集的声音样本个数叫做采样频率,音频文件中常常见到的44.1kHz、11kHz就是指的采样(频)率。

量化将连续波形转变为离散化的数字,先将整个幅度划分为有限个量化阶距的集合,幅度的划分可以是等间距或不等间距的。把落入某个阶距内的样本值赋予相同的量化值。音频文件中的位深代表的就是量化值,16bit位深代表的就是将幅值量化为2^16。

奈奎斯特定律指出如果采样频率大于等于信号中最高频率分量的2倍,一个信号可以从他的采样值精确地重构,实际上采样频率明显大于奈奎斯特频率。

3. 常用变换

3.1 短时傅里叶变换

短时傅里叶变换(Short Time Fourier Transform, STFT)适用于分析缓慢时变信号的频谱分析,在音频和图像分析处理中已经得到广泛应用。其方法是先将信号分帧,再将各帧进行傅里叶变换。每一帧语音信号可以被认为是从各个不同的平稳信号波形中截取出来的,各帧语音的短时频谱就是各个平稳信号波形频谱的近似。

由于语音信号是短时平稳的,因此可以对信号进行分帧处理,计算某一帧的傅里叶变换,这样得到的就是短时傅里叶变换。

傅里叶变换(FFT)可以将信号从时域转变为频域,而逆傅里叶变换(IFFT)则可以将频域转换为时域信号;傅里叶变换将信号从时域转变为频域是音频信号处理最常用的方式。STFT得到的频谱图在音频信号中又叫做声谱图或语谱图。

preview

3.2 离散余弦变换

离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位。

3.3 离散小波变换

离散小波变换(Discrete Wavelet Transform)在数值分析和时频分析中很有用,离散小波变换是对基本小波的尺度和平移进行离散化。

3.4 梅尔频谱和梅尔倒谱

声谱图往往是很大的一张图,为了得到合适大小的声音特征,往往把它通过梅尔标度滤波器组(mel-scale filter banks),变换为梅尔频谱。

人耳的音高感觉大致与声音的基频对数呈线性关系。在梅尔标度下,如果两段语音的梅尔频率相差两倍,则人耳可以感知到的音调大概也相差两倍。 当频率较小时,mel随Hz变化较快;当频率很大时,mel的上升很缓慢,曲线的斜率很小。这说明了人耳对低频音调的感知较灵敏,在高频时人耳是很迟钝的,梅尔标度滤波器组启发于此。

梅尔标度滤波器由多个三角滤波器组成滤波器组,低频处滤波器密集,门限值大,高频处滤波器稀疏,门限值低。恰好对应了频率越高人耳越迟钝这一客观规律。上图所示的滤波器形式叫做等面积梅尔滤波器(Mel-filter bank with same bank area),在人声领域(语音识别,说话人辨认)等领域应用广泛,但是如果用到非人声领域,就会丢掉很多高频信息。这时我们更喜欢的或许是等高梅尔滤波器(Mel-filter bank with same bank height)。

librosa中MEL频谱实现:

import numpy as npdef melspectrogram(y=None, sr=22050, S=None, n_fft=2048, hop_length=512,power=2.0, **kwargs):S, n_fft = _spectrogram(y=y, S=S, n_fft=n_fft, hop_length=hop_length, power=power)# Build a Mel filtermel_basis = filters.mel(sr, n_fft, **kwargs)return np.dot(mel_basis, S)

而梅尔倒谱在梅尔频谱上做倒谱分析(取对数,做DCT变换)就得到了梅尔倒谱。

# -- Mel spectrogram and MFCCs -- #def mfcc(y=None, sr=22050, S=None, n_mfcc=20, **kwargs):if S is None:S = power_to_db(melspectrogram(y=y, sr=sr, **kwargs))return scipy.fftpack.dct(S, axis=0, type=dct_type, norm=norm)[:n_mfcc]

3.5 恒Q变换

在音乐中,所有的音都是由若干八度的12平均律共同组成的,这十二平均律对应着钢琴中一个八度上的十二个半音。这些半音临近之间频率比为21/12。显然,同一音级的两个八度音,高八度音是低八度音频率的两倍。因此在音乐当中,声音都是以指数分布的,但我们的傅立叶变换得到的音频谱都是线性分布的,两者的频率点是不能一一对应的,这会指使某些音阶频率的估计值产生误差。所以现代对音乐声音的分析,一般都采用一种具有相同指数分布规律的时频变换算法:恒Q变换(Constant Q transform)。

CQT指中心频率按指数规律分布,滤波带宽不同、但中心频率与带宽比为常量Q的滤波器组。它与傅立叶变换不同的是,它频谱的横轴频率不是线性的,而是基于log2为底的,并且可以根据谱线频率的不同该改变滤波窗长度,以获得更好的性能。由于CQT与音阶频率的分布相同,所以通过计算音乐信号的CQT谱,可以直接得到音乐信号在各音符频率处的振幅值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63500.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文看懂 AIGC 的版权问题

伴随着 AIGC 技术的强势出圈,大家在惊叹 AI 技术强大的同时,也有越来越多的人开始讨论关于由此带来的版权问题:我们通过 AI 生成的图像属于平台还是个人?目前 AI 作品版权在法律上是如何界定的?又该如何避免引起 AI 版…

集体罢工!超200位Stack Overflow版主怒控ChatGPT将引发「垃圾内容」洪水

视学算法报道 编辑:编辑部 【导读】大反转来了?Stack Overflow「ChatGPT禁令」突然松动,而版主们不得不联名罢工表示抗议,血泪控诉LLM生成的垃圾内容将充斥整个社区。截至发稿前,公开信上已有227位用户签名。&#x…

大模型论文阅读神器来了!5秒翻译67页论文,直接截图提问,网页可试玩

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 就在昨晚,网易有道“子曰”教育大模型正式发布。 这个大模型“不整虚的”,发布即可用——所有人都能玩那种,例如有道翻译桌面端,就已经全部上线了大模型的AI Box功能。 这其中比较有意思的…

2023最新ChatGPT商业运营版网站源码+支持ChatGPT4.0+GPT联网+支持ai绘画(Midjourney)+支持Mind思维导图生成

本系统使用Nestjs和Vue3框架技术,持续集成AI能力到本系统! 支持GPT3模型、GPT4模型Midjourney专业绘画(全自定义调参)、Midjourney以图生图、Dall-E2绘画Mind思维导图生成应用工作台(Prompt)AI绘画广场自定…

GPT提示词系统学习-第二课-使用GPT帮你“填表格”

开篇 前面我们说到了GPT的提示词使用的好不好对你可以得到精准的答案是至关重要的。今天我们来看看,GPT中如何使用提示词来帮助我们填一个表格。 参照样本让GPT制作可填表格 请阅读以下销售邮件。删除任何可用于识别个人身份的信息 (PII),并用相应的占位符替换它。 例如,…

2001-2020年沪深A股上市公司管理者短视主义指标数据

2001-2020年沪深A股上市公司管理者短视主义指标数据 1、时间:2001-2020年 2、包括所有沪深A股所有上市公司 3、指标包括: 证券代码:以上海证券交易所和深圳证券交易所公布的证券代码为准。 证券简称:以上海证券交易所和深圳证…

【毕业设计】大数据股票分析与预测系统 - python LSTM

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果3.2.1 项目运行展示3.2.2 开发环境3.2.3 数据获取 4 最后 0 前言 🔥 Hi&#xff0…

pytorch_LSTM预测股票行情

7.8 用LSTM预测股票行情 7.8.1 导入数据 # Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程 import tushare as ts cons ts.get_apis()#获取沪深指数(000300)的信息,包括交易日期(…

如何评估券商分析师预测股票涨跌的准确性?

上篇我们已经讲过如何从新浪财经上获取券商分析师的评级数据, 那么我们接下来就可以来分析哪些分析师推的股票比较靠谱哪些分析推荐的股票比较拉跨?(注:后来有对分析师收益率排名,如有同名分析师看到,纯属…

python应用(3)svm模型预测股票涨跌

最近接了一个私活,指导学妹完成毕业设计。核心思想就是利用SVM模型来预测股票涨跌,并完成策略构建,自动化选择最优秀的股票进行资产配置。 在做这个项目的过程中,我体会到想成为一个合格的数据分析或者数据挖掘工程师不仅技术要过…

利用随机森林预测股票大盘涨跌

本文仅从实战角度去观察,利用机器学习算法中,随机森林模型预测股票市场指数涨跌的准确率。 适合入门玩家 首先,我们导入所需要的模块 import numpy as np import pandas as pd import talib as ta #金融数据计算 import datetime,pickle …

随机森林——股票涨跌预测模型搭建

多因子模型搭建 1.引入之后需要用到的库 import tushare as ts # 股票基本数据相关库 import numpy as np # 科学计算相关库 import pandas as pd # 科学计算相关库 import talib # 股票衍生变量数据相关库 import matplotlib.pyplot as plt # 引入绘图相关库 from sk…

案例分析:股票涨跌预测

目标和背景 采用逻辑回归方法,使用过去 5 天的收益率 X 来预测未来一天的涨跌 Y, 并依据涨跌概率大小来构建多空投资组合。 解决方案和程序 拟合模型:将其中 450 天数据作为训练样本,拟合一个逻辑回归模型,得 到参数估…

股票预测pythonlstm_LSTM预测股票涨跌--结合技术分析视角(一)

LSTM处理股票数据的一般流程: image.png 2.在先工作的基本思路: (1).为利用沪深300前100天的收盘价预测下一天的收盘价。从结果来看,LSTM对未来20天的预测基本上是对过去100天收盘价变化的趋势的总括,因此最终的预测结果以及回测结果都不是很理想。 之后尝试增加了feature…

基于长短期记忆网络(LSTM)对股票价格的涨跌幅度进行预测

完整代码:https://download.csdn.net/download/qq_38735017/87536579 为对股票价格的涨跌幅度进行预测,本文使用了基于长短期记忆网络(LSTM)的方法。根据股票涨跌幅问题, 通过对股票信息作多值量化分类,将股票预测转化成一个多维函…

R语言逻辑回归Logistic回归分析预测股票涨跌

最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出。 视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠心病风险实例 ,时长06:48 本文回…

预测股票涨跌看什么指标,如何预测明天股票走势

通达信精准预测股价主图指标公式 是不是可以去了未来 如何用公式将当日股票上涨幅度在M-N之间的股票当天及前几天的行情统计出来。 70 如何知道或者预测一个股票次日的开盘价? 。 在短线操作中,对目标个股次日的买入卖出价的测算是很重要的&#xff…

基于支持向量机SVM的沪深300股票预测股票涨跌方向

结果参考:https://www.bilibili.com/video/BV1nY411z7Kk/?spm_id_from=333.999.0.0 附完整代码+数据

以预测股票涨跌案例入门基于SVM的机器学习

SVM是Support Vector Machine的缩写,中文叫支持向量机,通过它可以对样本数据进行分类。以股票为例,SVM能根据若干特征样本数据,把待预测的目标结果划分成“涨”和”跌”两种,从而实现预测股票涨跌的效果。 1 通过简单…