声音的可视化处理

声音的可视化处理

下一步需要做声音信号的处理,今天就把声音的可视化的程序代码做一下.
主要完成声音的波形显示(时域信号)和声音的频谱显示(频域信号)
虽然涉及傅里叶变换等复杂的处理,采用matplot工具可以轻而易举的实现这些以前需要大神才能完成的代码.

Screen Shot 2018-01-06 at 5.56.57 PM.png
# 声音可视化代码, 使用pywave模块,读取声音文件,一组将声音文件一波形显示,另一组显示为声音频谱 
%matplotlib inline
import wave
import struct
import numpy as np
import matplotlib.pyplot as plt

# 读取wav文件
filename = 'data/1.wav'
wavefile = wave.open(filename, 'r')  # open for writing

# 读取wav文件的四种信息的函数。期中numframes表示一共读取了几个frames。
nchannels = wavefile.getnchannels()
sample_width = wavefile.getsampwidth()
framerate = wavefile.getframerate()
numframes = wavefile.getnframes()

print("channel", nchannels)
print("sample_width", sample_width)
print("framerate", framerate)
print("numframes", numframes)
channel 1
sample_width 2
framerate 16000
numframes 22720
# 建一个y的数列,用来保存后面读的每个frame的amplitude。
y = np.zeros(numframes)

# for循环,readframe(1)每次读一个frame,取其前两位,是左声道的信息。右声道就是后两位啦。
# unpack是struct里的一个函数,用法详见http://docs.python.org/library/struct.html。简单说来就是把#packed的string转换成原来的数据,无论是什么样的数据都返回一个tuple。这里返回的是长度为一的一个
# tuple,所以我们取它的第零位。
for i in range(numframes):
    val = wavefile.readframes(1)
    left = val[0:2]
    # right = val[2:4]
    v = struct.unpack('h', left)[0]
    y[i] = v
# framerate就是声音的采用率,文件初读取的值。
Fs = framerate
time = np.arange(0, numframes) * (1.0 / framerate)
# 显示时域图(波形图)
plt.subplot(211)
plt.plot(time, y)
# 显示频域图(频谱图)
plt.subplot(212)
plt.specgram(y, NFFT=1024, Fs=Fs, noverlap=900)
plt.show()


output_4_0.png

小结

针对具体的频域和时域的理论我们先不谈,这个过分复杂,我们只看一下结果,对比频域我们能够看到更多的分布的细节和特征,便于以后做声音的分析和识别.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • reference 《spoken language processing》 1 语音基础 名词解释 pitch ...
    艺术叔阅读 16,588评论 2 49
  • 一、傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚...
    constant007阅读 4,401评论 1 10
  • 1 数字音频基础知识# 1.1 声波### 声音始于空气中的振动,这些振动一起推动邻近的空气分子,而轻微增加空气压...
    朱细细阅读 17,789评论 0 25
  • 想看懂频响曲线?想知道音箱功放如何正确搭配?想知道听感和数据有什么关系?这篇文章将会带你入门音响系统知识。 前言:...
    58d73e4a1801阅读 24,999评论 1 41
  • “谁有音乐鉴赏的书啊!” 半夜十二点,书院里又回荡起了翛然的声音。 “我有我有!”隔壁的女孩跑了出来,显然这内里只...
    元気伟佳阅读 344评论 0 0