【Python百日进阶-Web开发-音频】Day702 - librosa安装及模块一览表

文章目录

  • 一、Librosa简介与安装
    • 1.1 Librosa是什么
    • 1.2 Librosa官网
  • 二、Librosa安装
    • 2.1 安装Librosa
  • 三、安装ffmpeg
    • 3.1 ffmpeg官网下载
    • 3.2 ffmpeg安装
      • 3.2.1 解压
      • 3.2.2 添加环境变量
      • 3.2.3 测试ffmpeg是否安装成功
  • 四、Librosa 库模块一览
    • 4.1 库函数结构
    • 4.2 Audio processing(音频处理)
    • 4.3 Spectral representations(谱表示)
    • 4.4 Magnitude scaling(幅度标度)
    • 4.5 Time and frequency conversion(时间和频率转换)
    • 4.6 Pitch and tuning(音调和调谐)
    • 4.7 Deprecated (moved)(不推荐(移动))
    • 4.8 Display(显示)
    • 4.9 Feature extraction(特征提取)
    • 4.10 Rhythm features(节奏特征)
    • 4.11 Feature manipulation(特征操作)
    • 4.12 Spectrogram decomposition(谱图分解)
    • 4.13 Output(输出)
    • 4.14 Utilities(实用功能)
    • 4.15 Matching(匹配)
    • 4.16 Miscellaneous
    • 4.17 Input Validation(输入验证)
    • 4.18 File operations(文件操作)

一、Librosa简介与安装

1.1 Librosa是什么

librosa是一个非常强大的python语音信号处理的第三方库,它提供了创建音乐信息检索系统所必需的构造块。

1.2 Librosa官网

https://librosa.org/doc/latest/index.html

二、Librosa安装

2.1 安装Librosa

pip install librosa -i  https://pypi.douban.com/simple

会自动安装一些依赖库

Successfully built audioread resampy
Installing collected packages: urllib3, pyparsing, pycparser, llvmlite, idna, charset-normalizer, threadpoolctl, s
cipy, requests, packaging, numba, joblib, cffi, appdirs, soundfile, scikit-learn, resampy, pooch, decorator, audioread, librosa
Successfully installed appdirs-1.4.4 audioread-2.1.9 cffi-1.15.0 charset-normalizer-2.0.12 decorator-5.1.1 idna-3.
3 joblib-1.1.0 librosa-0.9.1 llvmlite-0.38.0 numba-0.55.1 packaging-21.3 pooch-1.6.0 pycparser-2.21 pyparsing-3.0.
8 requests-2.27.1 resampy-0.2.2 scikit-learn-1.0.2 scipy-1.7.3 soundfile-0.10.3.post1 threadpoolctl-3.1.0 urllib3-1.26.9

三、安装ffmpeg

为了audioread增强音频解码能力,您可以安装许多音频解码器附带的ffmpeg 。请注意,Linux 和 OSX 上的 conda 用户将默认安装它;Windows 用户必须单独安装 ffmpeg。

3.1 ffmpeg官网下载

https://www.ffmpeg.org/
在这里插入图片描述
https://www.ffmpeg.org/download.html
在这里插入图片描述
https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-2022-04-28-git-ec07b15477-full_build.7z
在这里插入图片描述

3.2 ffmpeg安装

3.2.1 解压

下载的压缩包解压到C:\Program Files
在这里插入图片描述
找到ffmpeg.exe的完整路径:C:\Program Files\ffmpeg-2022-04-28\bin

3.2.2 添加环境变量

系统 - 关于 - 高级系统设置 - 环境变量 - 系统变量 - path - 编辑 - 新建:C:\Program Files\ffmpeg-2022-04-28\bin
在这里插入图片描述

3.2.3 测试ffmpeg是否安装成功

打开cmd / winodws powershell / windows termianl输入

ffmpeg -version

显示版本信息即为安装成功

在这里插入图片描述

四、Librosa 库模块一览

4.1 库函数结构

源文件功能介绍
librosa.beat用于估计节拍和检测节拍事件
librosa.core核心功能包括从磁盘加载音频、计算各种谱图表示以及各种常用的音乐分析工具。为了方便起见,这个子模块中的所有功能都可以直接从顶层 librosa.* 名称空间访问。
librosa.decompose利用 scikit-learn 中实现的矩阵分解方法实现谐波冲击源分离 (HPSS) 和通用谱图分解功能。
librosa.display使用 matplotlib 的可视化。
librosa.effects时域音频处理,如音高移动和时间拉伸。这个子模块还为分解子模块提供时域包装器。
librosa.feature特征提取和操作。这包括低层次特征提取,如彩色公音、伪常量 q (对数频率) 变换、Mel 光谱图、MFCC 和调优估计。此外,还提供了特性操作方法,如 delta 特性、内存嵌入和事件同步特性对齐。
librosa.filters过滤库生成 (chroma、伪 CQT、CQT 等)。这些主要是 librosa 的其他部分使用的内部函数。
librosa.onset起跳检测和起跳强度计算。
librosa.output文本和波形文件输出。
librosa.segment用于结构分割的函数,如递归矩阵构造、时滞表示和顺序约束聚类。
librosa.sequence用于顺序建模的函数。各种形式的维特比解码,以及用于构造转换矩阵的辅助函数。
librosa.util辅助实用程序 (规范化、填充、居中等)。

4.2 Audio processing(音频处理)

函数功能
load()从文件加载音频数据,貌似没有格式限制,而且可以通过参数设置是否保留双声道,采样率,重采样类型。
to_mono()把音频数据降至单声道。
resample()重采样,也可以称之为降采样。
get_duration()计算音频时间序列、特征矩阵或文件名的持续时间 (以秒为单位)。从文件路径读取时间长度更快一些。
autocorrelate()计算自相关。
zero_crossings()找到过零点的位置。
clicks()在信号指定的位置放置 click 信号。可以通过参数设置 click 信号的频率等属性。
tone()生成一个 tone 信号,即一个简单的正弦波。
chirp()生成一个 chirp 信号。

4.3 Spectral representations(谱表示)

函数功能
stft()短时傅里叶变换。默认参数:sr=22050, n_fft=2048, hob_length=512
istft()短时傅里叶逆变换。
ifgram()计算得到的瞬时频率 (作为采样率的比例) 作为复谱相位的时间导数。
cqt()常数 Q 变换。
icqt()常数 Q 逆变换。
hybrid_cqt()计算音频信号的混合常量 - q 变换。
pseudo_cqt()计算音频信号的伪常量 - q 变换。
iirt()使用 IIR 滤波器的时频表示。
fmt()快速梅林变换 (FMT)
interp_harmonics()计算谐波处的能量。
salience()谐波突出功能。
phase_vocoder()阶段声码器。给定一个 STFT 矩阵 D,将速度提高一个因子。
magphase()计算复数图谱的幅度值和相位值。

4.4 Magnitude scaling(幅度标度)

函数功能
amplitude_to_db()将振幅谱图转换为 db _scale 谱图。|
db_to_amplitude()将 db 谱图转为普通振幅谱图。|
power_to_db()功率谱转换。|
db_to_power()功率谱转换。|
perceptual_weighting()功率谱图的感知加权。|
A_weighting()计算一组频率的 a 加权。|
pcen()该函数通过自动增益控制对时频表示 S 进行归一化,然后进行非线性压缩。|

4.5 Time and frequency conversion(时间和频率转换)

函数功能
frames_to_sample()将帧索引转换为音频样本索引。
frames_to_time()将帧数转换为时间 (秒)。
samples_to_frames()将样本索引转换为 STFT 帧。
samples_to_time()将 STFT 帧转换为样本索引。
time_to_frames()将时间戳转换为 STFT 帧。
time_to_samples()将时间戳(以秒为单位)转换为样本索引。
hz_to_note()将一个或多个频率(以 Hz 为单位)转换为最近的音符名称。
hz_to_midi()获取给定频率的 MIDI 音符编号。
midi_to_hz()获取 将一个或多个 MIDI 数转换为音符串。MIDI 音符的频率(Hz)
midi_to_note()将一个或多个 MIDI 数转换为音符串。
note_to_hz()将一个或多个音符名称转换为频率(Hz)
note_to_midi()将一个或多个拼写音符转换为 MIDI 数字。
hz_to_mel()将 Hz 转换为 Mels。
hz_to_octs()将频率(Hz)转换为(分数)倍频程数。
mel_to_hz()将 mel 频率转换为频率
octs_to_hz()将八度数转换为频率。
fft_frequencies()np.fft.fftfreq 的替代实现。
cqt_frequencies()计算 Constant-Q 箱的中心频率。
mel_frequencies()计算调整到梅尔音阶的声学频率阵列。
tempo_frequencies()计算对应于起始自相关或临时图矩阵的频率(以每分钟节拍数为单位)。
samples_like()返回一组样本索引以匹配特征矩阵中的时间轴。
times_like()返回一组时间值以匹配特征矩阵中的时间轴。

4.6 Pitch and tuning(音调和调谐)

函数功能
estimate_tuning()估计音频序列的音调或者频谱输入。
pitch_tuning()给定一个集合,估计其调谐偏移 (一个 bin 的分数) 相对于 A440 = 440.0Hz。
piptrack()阈值抛物线插值 STFT 上的节距跟踪。

4.7 Deprecated (moved)(不推荐(移动))

函数功能
dtw()动态时间扭曲。
fill_off_diagonal()将一个矩阵的所有细胞设置为给定的值,如果它们位于约束区域之外。

4.8 Display(显示)

通过 librosa.display.* 访问函数。

函数功能
specshow()Display a spectrogram/chromagram/cqt/etc.
waveplot()绘制波形的振幅包络。
camp()从给定的数据中获取默认的颜色映射。
TimeFormatter()时间轴的刻度格式化程序。
NoteFormatter()Notes 的刻度格式。
LogHzFormatter()用于对数频率的制表程序。
ChromaFormatter()色度轴的格式化程序。
TonnetzFormatter()tonnetz 轴的格式化程序。

4.9 Feature extraction(特征提取)

通过 librosa.feature.* 访问函数。
Spectral features(光谱特征)

函数功能
chroma_stft()从 stft 的结果计算色谱图。
chroma_cqt常数 Q 色谱图。
chroma_cens()色谱能量归一化。
melspectrogram()计算梅尔频谱。
mfcc()梅尔倒频谱系数。
rms()谱的均方根。
spectral_centroid()谱中心
spectral_bandwidth()谱带宽。
spectral_contrast()谱对比度。
spectral_flatness()频谱平坦度。
spectral_rolloff()滚降频率。
poly_feature()求一个 n 阶多项式与谱图列的拟合系数。
tonnetz()计算色调质心特征 (tonnetz)。
zero_crossing_rate()过零率。

4.10 Rhythm features(节奏特征)

函数功能
tempogram()计算模板图:起始强度包络线的局部自相关。

4.11 Feature manipulation(特征操作)

函数功能
delta()计算增量特性:对输入数据沿选定轴的导数进行局部估计。计算了三角函数的萨维茨基 - 戈莱滤波。
stack_memory()短期历史嵌入:将数据向量或矩阵与自身的延迟副本垂直连接。

4.12 Spectrogram decomposition(谱图分解)

通过 librosa.decompose.* 访问。

函数功能
decompose()分解一个特征矩阵。
hpss()Median-filtering harmonic percussive source separation (HPSS).
nn_filter()Filtering by nearest-neighbors.

4.13 Output(输出)

通过 librosa.ouput.* 来访问。

函数功能
annotation()保存 3 列格式的注释。
time_csv()按 CSV 格式保存时间步骤。这可以用来存储打击跟踪器或分割算法的输出。
write_wav()保存为 wav 文件格式。

4.14 Utilities(实用功能)

通过 librosa.util.* 来访问。
Array operations(数组操作)

函数功能
frame()将时间序列分割成重叠的帧。
pad_center()将数组居中。
fix_length()将数组数据的长度固定为精确的大小。
fix_frames固定一个帧的最大值和最小值。
index_to_slice()从索引数组生成切片数组。
softmask()鲁棒地计算软掩码操作。
sync()边界之间多维数组的同步聚合。
axis_sort()对数组的行或列进行排序。
normalize()沿着选定的轴对数组进行标准化。
roll_sparse()系数矩阵滚动。
sparsify_rows()返回一个近似于输入 x 的行稀疏矩阵。
buf_to_float()将整数缓冲区转换为浮点值。
tiny()计算与输入数据类型对应的极小值。就是比如输入数据是 int8 类型,则返回 int8 类型可以表示的最小的数。

4.15 Matching(匹配)

函数功能
match_intervals()将一组时间间隔与另一组时间间隔匹配。
match_events()将一组事件与另一组事件匹配。

4.16 Miscellaneous

函数功能
localmax()在数组 x 中找到局部最大值。
peak_pick()使用灵活的启发式算法选择信号中的峰值。

4.17 Input Validation(输入验证)

函数功能
valid_audio()验证变量是否包含有效的单声道音频数据。
valid_int()确保输入值是整型的。
valid_intervals()确保数组是时间间隔的有效表示。

4.18 File operations(文件操作)

函数功能
example_audio_file()获取包含音频示例文件的路径。
find_files()获取目录或目录子树中已排序的 (音频) 文件列表。

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

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

相关文章

C++相关概念和易错语法(21)(虚函数、协变、析构函数的重写)

多态的核心是虚函数&#xff0c;本文从虚函数出发&#xff0c;根据原理慢慢推进得到结论&#xff0c;进而理解多态 1.虚函数 先看一下下面的代码&#xff0c;想想什么导致了这个结果 #include <iostream> using namespace std;class A { public:virtual void test(){co…

x264 编码过程中视频相关数据流转分析

介绍 x264编码器的编码过程是一个复杂且多阶段的流程,涉及多个步骤,每个步骤都对视频数据进行特定的处理。以下是x264编码过程的一般数据流和关键步骤的分析: 输入帧处理: 输入原始视频帧到编码器。帧可能首先被转换到内部颜色空间(如YUV420P)。分析与预处理: 进行宏块级…

元服务体验-服务发现

服务发现&#xff0c;无论线上或线下的方式都可以发现元服务。 线上&#xff1a;基于用户意图。从精准意图的搜索、用户事件触发的推荐到主动探索等场景。用户可以在设备的负一屏、全局搜索、应用市场、桌面等场景发现元服务。 线下&#xff1a;用户在 HarmonyOS Connect标签…

华为HCIP Datacom H12-821 卷39

1.填空题 请2001 :0DB8:0000:C030:0000: 000: 09A0:CDEF地址进行压缩。() (若答案中存在字母&#xff0c;请采用大写格式) 参考答案&#xff1a;2001 :DB8:0:C030: :9A0:CDEF 解析&#xff1a; IPv6地址的表示方法 IPv6地址总长度为128比特&#xff0c;通常分为8组&#xff0c…

LeetCode 20.有效的括号 C写法

LeetCode 20.有效的括号 C写法 思路&#x1f9d0;&#xff1a; ​ 这题最优思路是用栈来进行匹配&#xff0c;如果是左括号就入栈&#xff0c;如果是右括号那么左括号就出栈去匹配&#xff0c;匹配成功就继续入栈或者出栈&#xff0c;匹配失败则字符串无效。不过C语言没有STL…

win10远程ubuntu服务器桌面且显示图像窗口工具及配置说明

仅需一个MobaXterm_Personal工具就可以实现 网上的教程比较多&#xff0c;实现起来比较复杂&#xff0c;这个是经过自己的钻研找到的方法&#xff08;请勿转载和抄袭&#xff09; 报错&#xff1a;cannot connect to X server :0.0 操作1&#xff1a;export DISPLAY自己windo…

python 语法学习(总结类) day 3

一、数据类型 1 整数类型 int 2 浮点数类型 float 3 复数类型 二、字符串类型 1 字符串类型 2 字节串类型&#xff08;很少用到&#xff09; 三、组合类型 1 集合类型&#xff1a;一维数组的集合 2 元组…

PHP基础认知

PHP&#xff08;Hypertext Preprocessor&#xff0c;即“超文本预处理器”&#xff09;是一种广泛使用的开源通用脚本语言&#xff0c;特别适合用于Web开发。其基础语法涵盖了多个方面&#xff0c;包括标记与注释、数据类型、变量、运算符、控制结构等。以下是PHP基础语法的详细…

【网络安全】资产记录工具 Hacker Asset Logger 安装使用详细教程

原创文章,不得转载。 文章目录 工具介绍安装地址使用方式工具介绍 在对某一应用程序的多个页面、对多个相关联的应用程序进行渗透测试的过程中,多个请求包的参数、功能之间可能存在一定的联系。 例如,在A页面触发的请求包中,通过UID可获取CustomerID;在B页面触发的请求包…

SSE、Webworker 、webSocket、Http、Socket 服务器推送技术

Http协议 受浏览器的同源策略限制 HTTP 协议是一种无状态的、无连接&#xff08;短暂连接&#xff0c;客户端发送请求&#xff0c;服务器响应后即断开连接&#xff09;的、单向的应用层协议。 它采用了请求/响应模型。通信请求只能由客户端发起&#xff0c;服务端对请求做出应…

浅谈网络安全防守:从被动应对到主动管理的转变

浅谈网络安全防守&#xff1a;从被动应对到主动管理的转变 背景&#xff1a; 在当今的数字时代&#xff0c;网络安全已成为企业生存和发展的重要基石。然而&#xff0c;当企业的网络安全体系面临着诸如资产不清、互联网应用管理混乱、边界防火墙策略失效、长期未修复的漏洞、…

IP地址与物理地址:网络通信的基础详解

在学习网络通信时&#xff0c;理解IP地址与物理地址&#xff08;也称为硬件地址&#xff09;的区别至关重要。这篇文章将为你解答这些基本概念&#xff0c;并帮助你更好地掌握网络通信的基础。 什么是IP地址和物理地址&#xff1f; IP地址是网络层的逻辑地址&#xff0c;用于标…

leetcode算法题(反转链表)

思路1&#xff1a; 创建新的链表&#xff0c;遍历原链表&#xff0c;将原链表的节点进行头插到新链表中。 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* next NULL;struct ListNode* new_head NULL;if (head NULL ||head->next NULL) // 空…

Java8 根据List实体中一个字段去重取最大值,并且根据该字段进行排序

1、前言 某个功能要求需要对一个list对象里数据按照股票分组&#xff0c;并且取分组涨跌幅最大的&#xff0c;返回一个新的list对象&#xff0c;并且按照涨跌幅字段进行排序&#xff0c;这么一连串的要求&#xff0c;如果按照传统的写法&#xff0c;我们需要写一大坨的代码&am…

AWS云计算实战:电商平台发卡机器人开发指南

在当今数字化时代&#xff0c;电商平台的自动化运营变得尤为重要。本文将深入探讨如何利用AWS云计算平台开发一款高效的发卡机器人&#xff0c;旨在提高电商平台的自动化水平和用户体验。 关键词 AWS云计算, 电商平台, 发卡机器人 1. 引言 随着电商行业的蓬勃发展&#xff…

Python 获取今天(当天)、昨天(前一天)、前天(昨天的前一天)的开始时间、结束时间

描述&#xff1a;我这里是封装成DatetimeHelper工具类来调用 1.今天(当天)开始时间、结束时间 from datetime import datetime, timedeltaclass DatetimeHelper:# 获取今天(当天)的开始时间、结束时间(datetime类型)staticmethoddef getTodayStartEnd():# 获取当前的日期now …

编织微服务网络:在Eureka中打造分布式服务网格

编织微服务网络&#xff1a;在Eureka中打造分布式服务网格 在微服务架构的复杂网络中&#xff0c;服务间的通信和管理变得愈加复杂。服务网格&#xff08;Service Mesh&#xff09;作为一种微服务间通信的基础设施层&#xff0c;负责处理服务发现、负载均衡、故障恢复等任务。…

在 electron+vite+vue3+express 项目中使用better-sqlite3

文章目录 一、安装 electron-rebuild 和 better-sqlite3二、使用 electron-rebuild 重建 Node.js 模块三、better-sqlite3 的基本使用四、打包五、参考资料 一、安装 electron-rebuild 和 better-sqlite3 yarn add -D electron-rebuild yarn add better-sqlite3Electron 内置的…

Hive 常见问题

Hive 内部表和外部表的区别 外部表在创建时需要加关键字 external&#xff1b;创建内部表时&#xff0c;会将数据移动到数据仓库指定的路径&#xff1b;创建外部表时&#xff0c;不会移动数据&#xff0c;只会记录数据所在的路径&#xff1b;删除内部表时&#xff0c;会删除元…

解决onlyoffice无法重命名的问题

当前的问题&#xff1a; 返回的是 error&#xff1a;1&#xff0c;根据官方文档的解释&#xff0c;这个是文档的key是错误的。 参考官方文档&#xff1a;https://api.onlyoffice.com/zh/editors/command 解决思路&#xff1a;看有没有什么事件&#xff0c;能够携带文档的key…