欢迎光临散文网 会员登陆 & 注册

数学实现信号分析[コード・エテスウェイ]: 蛇尝试转门把手

2019-07-25 17:36 作者:nyasyamorina  | 我要投稿

***歌名太长了, 标题放不下全部的名字***

「コード・エテスウェイ (Class::ETHES_WEI=>extends.COMMUNI_SAT .)」

今天来说一下后续需要的编程的东西

最基础的蛇编程随便说说就完事了, 网上真的有太多的教程了

新建记事本, 然后重命名为py后缀的文件就是一个非常简单的蛇项目了, 然后就把默认打开方式改为上期说到的编辑器就好, 在编辑器里就可以写程序了, 

在程序里代码是从上往下运行的, print可以把括号内的东西打印到屏幕上

当遇到   if    elif    else     for    while   这些就按照相应的顺序运行

还有就是defclass, class我基本不会用, 此处忽略,    def是可以定义一个函数, 定义了函数后, 可以在后续调用这个函数, 调用时就会按照平常的情况运行函数内的代码

py最基本的格式就说到这里了, 如果还有不懂的可以参考下面的教程

https://www.runoob.com/python3/python3-tutorial.html

Numpy

蛇里面的列表list非常好用, 没有固定的长度, 可以用append()增加元素, 但是在很多列表套进列表的话, 对元素的操作不够自由, 于是仿照c和matlab的数组就开发出了numpy (以下简称np)

np太多细节了, 以后说到的时候再补充吧, 我现在都还没完全了解np

https://www.runoob.com/numpy/numpy-tutorial.html

matplotlib

matplotlib拥有十分简洁的画图方法, 用法是:      首先用plot等画图函数画好图像, 然后用loglog等挑战画幅, 然后用show展示图像,  注: 展示图像时程序是完全停止运行的, 直到关闭图像

https://morvanzhou.github.io/tutorials/data-manipulation/plt/


接下来就说一些音频相关的东西

在电脑中, 是不存在连续的事物的, 每个东西都是分立的

就以上面matplotlib的图片为例子, 假如蓝色的线条是现实的音波, 那么音波的变化是连续的,   但是电脑的麦克风记录下来的却是红色的这条线, 每隔一点段时间记录一次音波强度, 就得到了红色这条线了

我们称"不连续"为"离散",

以音频为例, 记录了一堆音波强度之后, 按照顺序排列好, 然后记下数据之间的时间间隔是多少, 就可以进行播放了,  也就是说在电脑里时间是不重要的, 重要的是数据的排列顺序, 既然如此, 在"离散"的情况下, 频率对应的意义就不是"次/秒"了, 而是"在这个数据块中出现的频率"(类似于概率)

人耳最高可以听到20kHz的声音, 但是音频的采样频率不能是20kHz

因为如果采样频率和震动频率一致的话, 那么采样出来的结果就是处处相同, 这就完全看不出震动的效果了,  所以常用的音频采样频率有44.1kHz和48kHz, 甚至还有81kHz

既然我们要分析音频, 那么首先要得到音波的数据

掏出最常见的音频文件mp3, 然后扔掉

mp3是一种经过压缩的文件格式, 先不说是有损的储存方式, 要把里面的音频数据拿出来也要经过特别的解码,  所以我们需要wav无损音频格式

大家可以上网找到各种在线mp3装wav的网站, 但是这种方法不仅很复杂, 还很耗时间, 所以我们需要理由万能的蛇

首先要安装pydub:     pip install pydub            然后就是安装FFmpeg

https://zh.wikihow.com/%E5%9C%A8Windows%E4%B8%8A%E5%AE%89%E8%A3%85FFmpeg%E7%A8%8B%E5%BA%8F

然后使用这个代码就可以把mp3转化为wav了


然后我们有了wav文件, 用以下函数就可以得到音波数据了

wave就是音波数据, rate就是采样频率

得到的wave数组包含多声道, 在常见双声道的文件中, wave[0]是左声道, wave[1]是右声道

在得到了wave和rate之后就可以"看到"音波了

得到的图像就是本篇的封面了

讲到非常仓促, 因为并不打算在编程上花太多篇幅 (我甚至原本打算这篇和上一篇一起讲的= =)

不过总算是把必要的东西都说了一遍, 下一篇可以正式进入DFT了

我觉得已经有很多人放弃了, 嘛, 不过专栏还是会继续更新的, 如果没什么人看的话, 质量可能会大幅度下降而已(就像这篇一样)

数学实现信号分析[コード・エテスウェイ]: 蛇尝试转门把手的评论 (共 条)

分享到微博请遵守国家法律