Speech | 提取语音(数据集)的语音特征合集

article/2025/10/29 8:30:28

本文主要讲解了提取数据集的一些主要工具,以及如何使用这些工具,包含安装以及运行命令。 

提取语音(数据集)的语音特征工具(Extract audio features toolkits)

openSMILE
COVAREP
ESPNet
YAAFE

1.openSMILE

Linux 上安装。环境:Ubuntu 20.04.(docker 容器)

opensmile安装方法一及使用

# 安装 
pip install opensmile#安装版本2.4.2#单个wav文件使用# opensmile v 2.4.2
import opensmilepath  = '/workspace/dataset/mer1/audio/KETI_MULTIMODAL_0000000012_00.wav'smile = opensmile.Smile(feature_set=opensmile.FeatureSet.eGeMAPSv02,feature_level=opensmile.FeatureLevel.Functionals,
)y = smile.process_file(path)
print(y.shape)
print(y)

opensmile.FeatureSet.后的特征可查看

 目前有的(不是很全)

Name#features
ComParE_201665 / 65 / 6373
GeMAPSv01a5 / 13 / 62
GeMAPSv01b5 / 13 / 62
eGeMAPSv01a10 / 13 / 88

eGeMAPSv01b

10 / 13 / 88

FeatureSet — Documentation (audeering.github.io) 

结果(这里eGenMAPSv02是1×88维的)

 

opensmile安装方法2及使用

git clone https://github.com/audeering/opensmile
cd opensmile
sh build.sh

 将 smilextract 路径 加入系统目录

加入系统目录

source /etc/profile

 版本不同,可能路径不同,找自己电脑的smilextract路径。我的是:

export PATH="/workspace/tts/opensmile/build/progsrc/smilextract:$PATH"

 (快捷键Esc+:+wq)保存并退出,然后执行:

source /etc/profile

 查看版本信息

SMILExtract -h

 成功则会显示版本等相关信息~

调用命令行运行opensmile

SMILExtract -C(配置文件) -I(后面加输入的音频文件) -O(后面加输出的路径)

(单个音频)实例:

SMILExtract -C ./config/is09-13/IS09_emotion.conf -I /workspace/dataset/emoko/audio/000-001.wav -O /workspace/dataset/emoko/opensmile-file/1.txt

 需要根据自身的需求,更换下面命令中的conf文件名(配置文件)即可,注意音频文件必须是无损的wav格式。

 输出文件1.txt如下

最后一行为具体的特征数据:

用python批量调用命令行

    如果有很多个音频需要去提取特征,那么一个个用dos界面敲命令会非常麻烦。用python批量调用命令行源代码如下:(俩种方法只选一个)

opensmile-feature01.py

方法一
import ospath = '/workspace/dataset/emoko' 
for root,dir,files in os.walk(path):for i in files:os.system('SMILExtract -C /workspace/tts/opensmile/config/is09-13/IS09_emotion.conf -I ' + path + '/audio/' + i + ' -O ' + '/emoko' + i[:-4] + '.csv')方法二
import os
audio_path = '/workspace/dataset/emoko/audio'  # .wav file  path
output_path='/workspace/dataset/emoko/opensmile-pro'   # feature file path
audio_list=os.listdir(audio_path)   
features_list=[]
for audio in audio_list:    # 遍历指定文件夹下的所有文件if audio[-4:]=='.wav':this_path_input=os.path.join(audio_path, audio)  # 打开一个具体的文件,audio_path+audiothis_path_output=os.path.join(output_path,audio[:-4]+'.csv') # .txt/.csv# 进入opensmile中要执行的文件的目录下;执行文件 -C 配置文件 -I 语音文件 -O 输出到指定文件os.system( 'SMILExtract -C /workspace/tts/opensmile/config/is09-13/IS09_emotion.conf -I ' + this_path_input + ' -O ' + this_path_output)
print('over~')

*注意方法二中:这里需要三个路径

①.wav文件文件夹路径

②前面处理语音文件提取的csv文件或txt文件存放的文件路径

③opensmile的情感特征配置文件

运行这个py文件时,要在opensmile文件夹下运行。

提取的文件可保存为.txt/.csv文件

输出(每一个.wav文件对应的特征文件,且与wav文件名字相同)

提取文件后,对csv文件进行处理,提取数据特征向量部分

批量处理生成特征的文本文件,提取组合出可以用来学习处理的矩阵文件。代码如下

opensmile-pro-csv02.py

import os
audio_path = '/workspace/dataset/emoko/audio'  # .wav file  path
output_path='/workspace/dataset/emoko/opensmile-pro'   # feature file path
audio_list=os.listdir(audio_path)   
features_list=[]
for audio in audio_list:    # 遍历指定文件夹下的所有文件if audio[-4:]=='.wav':this_path_input=os.path.join(audio_path, audio)  # 打开一个具体的文件,audio_path+audiothis_path_output=os.path.join(output_path,audio[:-4]+'.csv') # .txt/.csv# 进入opensmile中要执行的文件的目录下;执行文件 -C 配置文件 -I 语音文件 -O 输出到指定文件os.system( 'SMILExtract -C /workspace/tts/opensmile/config/is09-13/IS09_emotion.conf -I ' + this_path_input + ' -O ' + this_path_output)
print('over~')

*注意:这里需要三个路径

①.wav文件文件夹路径

②前面处理语音文件提取的csv文件或txt文件存放的文件路径

③opensmile的情感特征配置文件

运行这个py文件时,要在opensmile文件夹下运行。

可以通过如下Python代码进行特征解析:

def feature_file_reader(feature_fp):"""读取生成的ARFF格式csv特征文件中特征值:param feature_fp: csv特征文件路径:return: np.array"""with open(feature_fp) as f:last_line = f.readlines()[-1]  # ARFF格式csv文件最后一行包含特征数据features = last_line.split(",")features = np.array(features[1:-1], dtype="float64")  # 第2~倒数第二个为特征数据return features

保存为一个npy文件

import os
import numpy as np
txt_path='输出文件夹路径'
txt_list=os.listdir(txt_path)
features_list=[]
for txt in txt_list:if txt[-4:]=='.txt':this_path=os.path.join(txt_path,txt)f=open(this_path)last_line=f.readlines()[-1]f.close()features=last_line.split(',')features=features[1:-1]features_list.append(features)
features_array=np.array(features_list)
np.save('保存文件的路径/opensmile_features.npy',features_array)

创建自己的配置文件

可参考audio - How to create custom config files in OpenSMILE - Stack Overflow

 openSMILE 3.0 - audEERING 

opensmile 参数详解

01.运行命令参数

更多可查看Reference section — openSMILE Documentation

首先是处理数据时

'lldsink','lldhtksink','lldarffsink','csvsink','htksink',cArffSink ,'arffsink'具体可查看opensmile/standard_data_output.conf.inc at master · naxingyu/opensmile · GitHub

opensmile自带的配置文件:

config/对于音乐信息检索和语音处理领域的常见任务,我们在目录中为以下常用功能集提供了一些示例配置文件 。这些还包含 2009-2013 年 INTERSPEECH 影响和副语言学挑战的基线声学特征集:

  • 用于键和弦识别的色度特征

  • 用于语音识别的 MFCC

  • 用于语音识别的 PLP

  • 韵律(音调和响度)

  • INTERSPEECH 2009 情感挑战赛功能集

  • INTERSPEECH 2010 副语言挑战赛功能集

  • INTERSPEECH 2011 演讲者状态挑战功能集

  • INTERSPEECH 2012 演讲者特质挑战赛功能集

  • INTERSPEECH 2013 ComParE 功能集

  • 用于暴力场景检测的 MediaEval 2012 TUM 功能集。

  • 用于情感识别的三个参考特征集(旧集,被新的 INTERSPEECH 挑战集淘汰)

  • 基于 INTERSPEECH 2010 副语言挑战音频功能的视听功能。

ESPnet

Linux(Ubuntu20.04)安装

apt-get install cmake
apt-get install sox
apt-get install flacgit clone https://github.com/espnet/espnet
cd espnet/tools#python环境下
bash setup_python.sh $(command -v python3)make#根据make后出来的值复制 TH_VERSION 和 CUDA_VERSION 版本make TH_VERSION=1.13.1 CUDA_VERSION=11.4

其他请参考Installation — ESPnet 202304 documentation

检查安装

 bash -c ". ./activate_python.sh; . ./extra_path.sh; python3 check_install.py"

【PS1】bash: SMILExtract: command not found

https://fxburk.medium.com/machine-classification-of-emotional-speech-with-emodb-and-python-25a67753210e

apt install automake
apt install autoconf
apt install libtool
apt install m4
apt install gcc
apt  update

 尝试1

./SMILExtract -h

出现bash: ./SMILExtract: No such file or directory

  尝试2

strace ./SMILExtract

出现strace: Can't stat './SMILExtract': No such file or directory

参考文献

[1]opensmile/INSTALL at master · naxingyu/opensmile · GitHub


http://chatgpt.dhexx.cn/article/pAfNyIkC.shtml

相关文章

简单的语音数据集制作方案

众所周知,深度学习现阶段还是以数据为驱动,然后我们需要simsiam等的自监督算法来自动标注数据集以及特征,但是初始阶段还是回到我们的音频数据本身。 我们提取音频特征有数种方式,首先是可以直接进行音频波形的提取: …

数据集 | 基于语音(Speech)/多模态(Multimodal)的情绪识别数据集,格式及下载

本文主要介绍了一些常用的语音🗣识别数据集,文件格式以及下载地址: 目录 1.IEMOCAP Emotion Speech Database(English) 2.Emo-DB Database(German) 文件命名 对象 3.Ryerson Audio-Visual Database of Emotional Speech and Song (Engli…

历史最全开放语音/音频数据集整理分享

本资源整理了40多个语音和音频处理相关的开源数据集,分享给有需要的朋友。 资源整理自网络,源地址:https://github.com/jim-schwoebel/voice_datasets 有两种主要类型的音频数据集:语音数据集和音频事件/音乐数据集。 语音数据集…

语音识别数据集-TIMIT数据集-中文超详细解析

TIMIT数据集 前言 该文章会详细介绍TIMIT数据集的文件组成、内部文件格式以及如何使用TIMIT数据集。同时还会介绍TIMIT是如何组织数据以及划分训练集与测试集的,可以为今后自己构建数据集提供一种思路。 关键词:TIMIT数据集、语音识别、音素、人工音频…

语音增强数据集总结【持续更新】

语音增强数据集总结 语音增强的第一步一般是准备数据,包含带噪语音和纯净语音。一般这些数据都是人工合成的,以纯净语音和噪声数据为基础即可合出带噪语音信号。以下介绍一些语音增强领域常用的数据集。 纯净语音 Common Voice(2019首次发布&#xff…

DuDuTalk语音工牌:语音数据分析在销售场景的应用价值

在现今这个数字时代,企业需要更高效、更有效地沟通和合作。语音数据的收集和分析能够增加销售团队和客户之间的联系,同时提高销售闭合率。因此,了解和利用销售沟通语音数据的价值,是现代企业所必须的。 销售沟通语音数据指的是在…

VoxCeleb1 语音数据集下载

前言 VoxCeleb1 是广泛使用的 说话人识别、验证 数据集。由于是从 YouTube 视频中提取,有比较丰富的噪声。(有空补介绍)由于我只使用音频数据,这里只介绍音频数据相关的下载流程。 如果可以使用谷歌表单和翻译软件应该就可以顺利…

语音识别之语音数据预处理

Email:ht0909mail.ustc.edu.cn 原创内容,转载请标明 数据集 1.清华大学THCHS30中文语音数据集 data_thchs30.tgz http://cn-mirror.openslr.org/resources/18/data_thchs30.tgz test-noise.tgz http://cn-mirror.openslr.org/resources/18/test-noi…

中文语音识别数据集总结

目录 OpenSLR国内镜像1.Free ST Chinese Mandarin Corpus2.Primewords Chinese Corpus Set 13.爱数智慧中文手机录音音频语料库(Mandarin Chinese Read Speech )4.THCHS305.ST-CMDS6.MAGICDATA Mandarin Chinese Read Speech Corpus7.AISHELL7.1 AISHELL…

语音数据集整理

语音数据集整理 目录 1.Mozilla Common Voice. 2 2.翻译和口语音频的大型数据库Tatoeba. 2 3.VOiCES Dataset 3 4. LibriSpeech. 4 5.2000 HUB5 English:... 4 6.VoxForge:... 4 7.人类语音的大规模视听数据集 (VoxCeleb)…

语音数据集

最大的语音数据下载网站: openslr.org vox-celeb说话人识别数据集:无法下载 OpenSpeaker之声纹数据整理 - 知乎本文是OpenSpeaker系列的第二篇文章,全系列可参考这篇文章或者文末的专栏: 蘑菇炖提莫:OpenSpeaker&…

Ubuntu 16.04网络配置

A lazy youth, a lousy age. 1.用root账号进行登录。Files–>Computer–>etc–>network–>interfaces 2.使用以下命令可查看网卡编号、IP地址、子网掩码。 ifconfig3.使用以下命令可查看网关号。 route4.最后,在interfaces中填写配置信息。 2021.10…

Ubuntu20配置网络 ssh

Ubuntu20配置网络 ssh Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml确定要配置的地址配置VMnet8地址设置虚拟网络地址配置ubuntu地址 Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml 确定要配置的地址 VMnet8: 192.168.12…

Ubuntu 14.04 网络配置

VMware中网络设置有三种,分别是:NAT、桥接和Host-only。本文仅说明NAT连接,配好后可让虚拟机上网,操作简单图文并茂。 1、首先打开虚拟机的设置 2、设置成NAT模式 3、打开虚拟网络编辑器 4、打开权限 5、设置虚拟网络编辑器为…

Ubuntu如何配置桥接网络

1、Ubuntu的网络配置分类 Ubuntu的主要三种网络配置 (1)桥接模式:Ubuntu和主机各有一个IP地址。(重点) (2)NAT模式:Ubuntu和主机共享IP地址。 (3)主机模式…

VMware虚拟机Ubuntu连接网络设置

VMware虚拟机Ubuntu连接网络设置 前言 学校发了新电脑不想装双系统,装了VMware虚拟机,但是在联网是遇到了困难。在网上找了方法连接成功。现在做一下记录。 方法 一般虚拟机联网方法有两种:NAT 和 桥接。 参考 知乎:Vmware虚拟…

【Ubuntu】配置ubuntu网络

配置ubuntu网络 一、三种虚拟网络介绍二、 配置ubuntu系统使用桥接模式连接外网三、通过NAT模式让ubuntu系统连接外网四、常见问题1.解决ubuntu系统没有网络图标一、三种虚拟网络介绍 VMnet0 : 桥接模式,选中桥接模式之后,可以将VMnet0桥接到对应的物理网卡之上, 默认选中自…

Ubuntu桥接网络配置

一、虚拟机设置 点击虚拟机最上面的“虚拟机”选项,在打开的下拉菜单中选择最下面的“设置”选项,弹出“虚拟机设置”对话框: 在当前“硬件”选项卡,选择“网络适配器”,在右侧的网络连接中选择“桥接模式”&#xf…

Ubuntu网络配置、开发板与电脑

一、Ubuntu网络配置 1、概念 桥接:Ubuntu会单独由路由器分配ip地址,不和Windows共享ip NAT:Ubuntu跟主机共享ip 注意:某些同学Ubuntu一直无法配置联网或者ping不通局域网,有可能是你的虚拟网卡被删了,重新安…

virtualbox下ubuntu虚拟机配置网络

一、目标: 1.在ubuntu虚拟机内可以联通外网 2.可以通过本机ssh连接上ubuntu虚拟机 二、Virtualbox配置 1.勾选 “系统->网络” 2.配置双网卡 网卡1配置为Nat,网卡2配置为Host-Only 三、ubuntu虚拟机内部设置 vi /etc/netplan/00-installer-confi…