工具学习——使用OpenSmile提取音频特征

文章目录

    • OpenSmile介绍
    • 下载和安装
    • 提取特征
      • 格式转换
      • 特征提取
        • 尝试一
        • 正常使用手段
        • 常见的特征
    • 使用Gnuplot可视化特征
      • 安装
      • 使用
    • 总结

OpenSmile介绍

  • openSMILE(open-source Speech and Music Interpretation by Large-space Extraction)是一个开源工具包,用于语音和音乐信号的音频特征提取和分类。openSMILE广泛应用于情感计算的自动情感识别。openSMILE完全免费用于研究目的。

下载和安装

  • 在下述网页下载opensmile的安装包,链接
  • 然后进入“/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/”
    在这里插入图片描述
  • 输入如下指令
bash build.sh
  • 运行结果如下
    在这里插入图片描述
  • 将这个二进制执行文件在环境路径中添加。
export PATH="/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/build/progsrc/smilextract:$PATH"

在这里插入图片描述

  • 使用如下指令进行设置测试,输出如下
SMILExtract -h

在这里插入图片描述

提取特征

格式转换

  • 我需要处理的是mp3文件,而opensmile仅仅支持处理wav文件,所以这里需要将wav文件转为mp3文件
  • 这里需要调用ffmpeg进行格式转换,对应的脚本如下
#!/bin/bash# 定义搜索和转换的根目录
SEARCH_DIR="/home/public/gl/Dataset/ADDReSS-M/"# 使用 find 命令查找所有的 .mp3 文件
# 然后使用 while 循环和 read 命令逐一处理它们
find "$SEARCH_DIR" -type f -name "*.mp3" | while IFS= read -r mp3file; do# 使用参数替换来生成新的 .wav 文件名wavfile="${mp3file%.mp3}.wav"# 检查MP3文件是否存在if [ ! -f "$mp3file" ]; thenecho "The file $mp3file does not exist, skipping."continuefi# 调用 ffmpeg 进行转换ffmpeg -i "$mp3file" "$wavfile" < /dev/null && echo "Converted $mp3file to $wavfile"# 如果不需要保留原MP3文件,取消下面一行的注释# rm "$mp3file"
doneecho "All MP3 files have been converted to WAV format."
  • 输出效果如下

在这里插入图片描述

特征提取

尝试一
  • 这里直接运行了下述脚本,遍历所有的wav文件,并将特征进行保存,脚本代码如下
#!/bin/bash# openSMILE的配置文件路径
SMILE_CONFIG="/home/public/gl/MultiDetection/alzheimers-dementia-master/opensmile-master/config/is09-13/IS13_ComParE.conf"
# 原始数据集的根目录
SOURCE_DIR="/home/public/gl/Dataset/ADDReSS-M/"
# 特征文件保存的根目录
FEATURE_DIR="./ADDReSS-M_features"# 创建特征文件的保存目录
mkdir -p "$FEATURE_DIR"# 递归地查找所有的WAV文件
find "$SOURCE_DIR" -type f -name "*.wav" | while read -r wavfile; do# 计算相对路径relative_path="${wavfile#$SOURCE_DIR}"# 获取不带扩展名的文件名base_name="$(basename "$relative_path" .wav)"# 获取不带文件名的目录路径dir_path="$(dirname "$relative_path")"# 在特征文件目录中创建相同的目录结构mkdir -p "$FEATURE_DIR/$dir_path"# 设置输出文件的完整路径output_file="$FEATURE_DIR/${dir_path}/${base_name}.csv"# 使用openSMILE处理WAV文件SMILExtract -C "$SMILE_CONFIG" -I "$wavfile" -O "$output_file"echo "Features extracted for $wavfile and saved to $output_file"
doneecho "Feature extraction complete for all WAV files."
  • 输出结果如下
    在这里插入图片描述
  • 比较害怕及格diable对结果有什么影响,这里仔细地搜索相关资料进行学习
    • 这个东西是用来设置输出文件样式的,如果我只需要csv的数据并不需要使用
      在这里插入图片描述
正常使用手段
  • 需要指定提取音频特征的配置文件、输入文件和输出文件,具体使用样例如下
SMILExtract -C config/demo/demo1_energy.conf(配置文件) -I example-audio/opensmile.wav(输入文件) -O opensmile.energy.csv(输出文件)
  • 运行结果如下
    • 仅仅收到了MSG,运行成功
    • 收到ERROR表示提取失败

在这里插入图片描述

创建自己的配置文件

  • 我们将使用此函数生成我们的第一个配置文件,该文件将能够读取波形文件、计算帧能量并将输出保存到 CSV 文件
  • 具体指令如下
SMILExtract -cfgFileTemplate -cfgFileDescriptions -configDflt cWaveSource,cFramer,cEnergy,cCsvSink -l 1 2> myconfig/demo1_descriptions.conf

在这里插入图片描述

配置文件分析

  • 第一部分是基本的配置
    在这里插入图片描述
  • 第二部分是当前配置文件所对应的不同的组件信息
    • 可以在这里修改不同组件的参数,比如说每一帧的长度等 在这里插入图片描述
常见的特征
  • Chroma features for key and chord recognition
    用于键和和弦识别的色度功能

  • MFCC for speech recognition
    用于语音识别的 MFCC

  • PLP for speech recognition
    用于语音识别的 PLP

  • Prosody (Pitch and loudness)
    韵律(音高和响度)

  • The INTERSPEECH 2009 Emotion Challenge feature set
    INTERSPEECH 2009 情感挑战赛功能集

  • The INTERSPEECH 2010 Paralinguistic Challenge feature set
    INTERSPEECH 2010 副语言挑战赛功能集

  • The INTERSPEECH 2011 Speaker State Challenge feature set
    INTERSPEECH 2011 Speaker State Challenge 功能集

  • The INTERSPEECH 2012 Speaker Trait Challenge feature set
    INTERSPEECH 2012 Speaker Trait Challenge 功能集

  • The INTERSPEECH 2013 ComParE feature set
    INTERSPEECH 2013 ComParE 功能集

  • The MediaEval 2012 TUM feature set for violent scenes detection.
    用于暴力场景检测的 MediaEval 2012 TUM 功能集。

  • Three reference sets of features for emotion recognition (older sets, obsoleted by the new INTERSPEECH challenge sets)
    用于情感识别的三个参考功能集(较旧的功能集,已被新的 INTERSPEECH 挑战集淘汰)

  • Audio-visual features based on INTERSPEECH 2010 Paralinguistic Challenge audio features.
    基于INTERSPEECH 2010副语言挑战赛音频特征的视听特征。

  • 这里不同特征需要自己去了解,相关说明文档链接\

使用Gnuplot可视化特征

安装

  • 为了使用 gnuplot 可视化特征轮廓,您必须安装 gnuplot 4.6 或更高版本。在 Linux 上,gnuplot 既可以通过发行版的包管理器安装(在 Ubuntu 上:), sudo apt-get install gnuplot-nox 也可以从源代码编译(http://www.gnuplot.info)。对于 Windows,gnuplot 二进制文件可从项目网页获得。

使用

  • 这里需要写对应的plt脚本,然后调用gnuplot进行执行。具体就给了三个样例,分别是色度、频谱图还有响度曲线等,具体看官网就行。如果要自己画图,还是需要自己写的。
    在这里插入图片描述

总结

  • 关于音频特征,使用opensmile进行提取,还是挺快的,而且使用cpu就行,不需要使用gpu,下面就是尝试不同的音频特征就行。

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

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

相关文章

直流电机驱动(马达)

文章目录 一、介绍直流电机介绍电机驱动电路大功率器件直接驱动H桥驱动集成电路线路图 PWM介绍产生PWM的方法 二、实例1.呼吸灯案例2.直流电机调速 一、介绍直流电机 介绍 电机驱动电路 点击的负载较大&#xff0c;直接接在单片机I/O口上无法驱动&#xff0c;所以需要驱动电路…

Vite学习指南

那本课程都适合哪些人群呢&#xff1f; 想要学习前端工程化&#xff0c;在新项目中投入使用 Vite 构建工具的朋友 Webpack 转战到 Vite 的小伙伴 前端架构师们&#xff0c;可以充实自己的工具箱 当然如果你没有项目相关开发经验&#xff0c;也可以从本课程中受益&#xff0…

支付宝开通GPT4.0,最新经验分享

ChatGPT是由OpenAI开发的一种生成式对话模型&#xff0c;具有生成对话响应的能力。它是以GPT&#xff08;Generative Pre-trained Transformer&#xff09;为基础进行训练的&#xff0c;GPT是一种基于Transformer架构的预训练语言模型&#xff0c;被广泛用于各种自然语言处理任…

vue 样式隔离原理

日常写单文件组件时&#xff0c;会在style添加scoped属性&#xff0c;如<style scoped>&#xff0c;目的是为了隔离组件与组件之间的样式&#xff0c;如下面的例子&#xff1a; <template><p class"foo">这是foo</p><p class"bar&q…

C#从网址上读取json数据

需求&#xff1a;从客户给的网址中读取json格式的数据。 找了好多资料&#xff0c;都不太好使&#xff0c;看到了一篇很有帮助的文章。以下大部分内容和这篇找到的文章近似。太不容易了&#xff0c;同时也感谢这篇文章的作者心所欲。 https://www.cnblogs.com/zoujinhua/p/10…

数字图像处理(实践篇)三十四 OpenCV-Python绘制椭圆

目录 一 涉及的函数 二 实践 一 涉及的函数 cv2.ellipse(img,center,axes,angle,start_angle,end_angle,color,thickness) 参数: ①<

Future模式先给您提货单

Future模式是一种设计模式&#xff0c;用于在处理耗时操作时提高程序的响应性。 角色介绍: Main类: 负责向Host发出请求并获取数据的类。 Host类: 负责向请求返回FutureData的实例的类&#xff0c;起到调度的作用。 Data接口: 表示访问数据的方法的接口&#xff0c;由FutureD…

openGauss学习笔记-209 openGauss 数据库运维-常见故障定位案例-共享内存泄露问题

文章目录 openGauss学习笔记-209 openGauss 数据库运维-常见故障定位案例-共享内存泄露问题209.1 共享内存泄露问题209.1.1 问题现象209.1.2 原因分析209.1.3 处理方法 openGauss学习笔记-209 openGauss 数据库运维-常见故障定位案例-共享内存泄露问题 209.1 共享内存泄露问题…

算法沉淀——滑动窗口(leetcode真题剖析)

算法沉淀——滑动窗口 01.长度最小的子数组02.无重复字符的最长子串03.最大连续1的个数 III04.将 x 减到 0 的最小操作数05.水果成篮06.找到字符串中所有字母异位词07.串联所有单词的子串08.最小覆盖子串 滑动窗口算法是一种用于解决数组或列表中子数组或子序列问题的有效技巧。…

重装Windows系统出现Windows无法安装到这个磁盘,选中的磁盘采用GPT分区

文章目录 1.问题描述2.问题解决 1.问题描述 重装Windows系统时&#xff0c;出现Windows无法安装到这个磁盘&#xff0c;选中的磁盘采用GPT分区这个提示 2.问题解决 1.shiftF10&#xff0c;打开命令行 2.输入&#xff1a;diskpart (打开分区工具) 3.输入&#xff1a;list di…

elementplus Dialog 对话框设置距离页面顶部的距离

默认为 15vh&#xff0c;当弹窗过于高的时候&#xff0c;这个距离其实是不合适的 <el-dialogv-model"dialogVisible"title"Tips"width"30%":before-close"handleClose"top"6vh"><span>This is a message</s…

IDEA搭建JDK源码学习环境(可添加注释、修改、debug)

工程详见&#xff1a;https://github.com/wenpanwenpan/study-source-jdk1.8.0_281 1、找到src.zip和javafx-src.zip 找到你想要调试的JDK&#xff0c;笔者本地电脑上装了两个版本的JDK&#xff0c;这里以jdk1.8.0_281为例将JDK目录下的javafx-src.zip和src.zip两个压缩包进行…

详解SpringCloud微服务技术栈:ElasticSearch实践2——RestClient查询并处理文档

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;ElasticSearch搜索结果处理&#xff08;排序、分页、高亮&#xff09; &#x1f4da;订…

VMware 虚拟机环境下的ubuntu 上安装mysql,并能远程访问数据库

需求&#xff1a;为了实现在linux上模拟服务器跑代码&#xff0c;并存储在mysql上&#xff0c;通过远程可视化mysql数据库软件查看linux上mysql数据库数据的实时动态。 1. 虚拟机和ubuntu的安装 这里我选择的是VMware workstation-v14, ubuntu-18.04.1。至于体流程网上很多&a…

vite项目配置本地开发使用https访问,3分钟搞定

在开发过程中&#xff0c;有时候需要用到一些音视频接口等需要https才能拿到权限&#xff0c;为方便开发过程中调试&#xff0c;这里就介绍几种vite项目快速开启https访问的方式。vite配置项说明文档&#xff1a;开发服务器选项 | Vite 官方中文文档 第一种&#xff1a;使用插件…

SpringBoot引入 liteflow 规则引擎,yyds!

1前言 在日常的开发过程中&#xff0c;经常会遇到一些串行或者并行的业务流程问题&#xff0c;而业务之间不必存在相关性。 在这样的场景下&#xff0c;使用策略和模板模式的结合可以很好的解决这个问题&#xff0c;但是使用编码的方式会使得文件太多,在业务的部分环节可以这…

python基础3

7.5 range range 可以生成数字供 for 循环遍历 , 它可以传递三个参数&#xff0c;分别表示 起始、结束和步长。 8. 数据类型高级 8.1 字符串高级 字符串的常见操作包括&#xff1a; 获取长度 :len len 函数可以获取字符串的长度。 查找内容 :find 查找指定内容在字符…

java—AWT

AWT 课程&#xff1a;1、GUI编程简介_哔哩哔哩_bilibili 一.介绍 包含了很多类和接口&#xff01;GUI&#xff01;元素&#xff1a;窗口、按钮、文本框java.awt 二.窗口 1.构造 2.方法 // 实例化frame类Frame frame new Frame("这个一个框");// 设置可见性frame.…

Metaphor(EXA) 基于大语言模型的搜索引擎

文章目录 关于 Metaphor使用示例 关于 Metaphor Metaphor是基于大语言模型的搜索引擎&#xff0c;允许用户使用完整的句子和自然语言搜索&#xff0c;还可以模拟人们在互联网上分享和谈论链接的方式进行查询内容。 Metaphor同时还能与LLMs结合使用&#xff0c;允许LLMs连接互联…

编曲学习:和声音程 调式体系 唱名法 调式调性

34届和声音程 调式体系 唱名法 调式调性https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65af994be4b064a8cb1c3a5f?course_idcourse_2XLKtQnQx9GrQHac7OPmHD9tqbv 34届独立音乐人编曲训练营https://app8epdhy0u9502.pc.xiaoe-tech.com/p/t_pc/course_pc_detail/camp_p…