python手记(12)

# -*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np
# 打开WAV文档
f = wave.open(r"f:\test.wav", "rb")
# 读取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 读取波形数据
str_data = f.readframes(nframes)
f.close()
#将波形数据转换为数组
wave_data = np.fromstring(str_data, dtype=np.short)
wave_data.shape = -1, 2
wave_data = wave_data.T
time = np.arange(0, nframes) * (1.0 / framerate)
# 绘制波形
pl.subplot(211)
pl.plot(time, wave_data[0])
pl.subplot(212)
pl.plot(time, wave_data[1], c="g")
pl.xlabel("time (seconds)")
pl.show()

读取声音波形

本博客所有内容是原创,未经书面许可,严禁任何形式的转

http://blog.csdn.net/u010255642


python手记(12)_第1张图片

减少音量

# -*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np
# 打开WAV文档
print "open wav files...."
f1 = wave.open(r"f:\speak.wav", "rb")
f2 = wave.open(r"f:\11.wav", "wb")
# 读取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
print "read wav data...."
params = f1.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 读取波形数据
str_data = f1.readframes(nframes)
#将波形数据转换为数组,并更改,减少音量

print "update wav data...."
wave_data = np.fromstring(str_data, dtype=np.short)
wave_data =wave_data/100
str_data=wave_data.tostring()
#写波形数据参数
print "save new wav files...."
f2.setnchannels(nchannels)
f2.setframerate(framerate)
f2.setsampwidth(sampwidth)
f2.writeframes(str_data)
print "close  wav files...."
f2.close()
f1.close()


将音量控制在某个范围内

# -*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np

def wavechange(x,dwmax,dwmin):
    if x!=0:
        if abs(x)>dwmax:
            x=x/abs(x)*dwmax
        elif abs(x)




    
    

音频采样 AD

数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的,实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速率对声波进 行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了,把每一秒钟所采样的数目称为采样 频率或采率,单位为HZ(赫兹)。采样频率越高所能描述的声波频率就越高。采样率决定声音频率的范围(相当于音调),可以用数字波形表示。以波形表示的频 率范围通常被称为带宽。要正确理解音频采样可以分为采样的位数和采样的频率。 


采样位数 采样精度

采样位数可以理解为采集卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来 表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采集卡的位是指采集卡在采集和 播放声音文件时所使用数字声音信号的二进制位数。采集卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方--256,16 位则代表2的16次方--64K。比较一下,一段相同的音乐信息,16位声卡能把它分为64K个精度单位进行处理,而8位声卡只能处理256个精度单位, 造成了较大的信号损失,最终的采样效果自然是无法相提并论的。 


音频采样频率 Fs

数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的,实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速率对声波进 行采样,每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。将一串的样本连接起来,就可以描述一段声波了,把每一秒钟所采样的数目称为采样 频率或采率,单位为HZ(赫兹)。采样频率越高所能描述的声波频率就越高。 采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。在当今的主流采集卡上,采样频率一般共分为 22.05KHz、44.1KHz、48KHz三个等级,22.05 KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限,48KHz则更加精确一些。对于高于48KHz的采样频率人耳已无法辨别出 来了,所以在电脑上没有多少使用价值


WAV音频格式文件大小、播放时间换算

采样率一般是44.1K,16bit采样精度,存储成WAV格式大小 = 44.1KHz(采样率) X 16bit(采样精度) X 2(双声道) X  播放时间


WAV格式是没有压缩无损的,MP3格式是按1:12压缩保存的,所以MP3格式大小等于上式的1/12。


声音与波形
 

在接触波形声音API之前,具备一些预备知识很重要,这些知识包括物理学、听觉以及声音进出计算机的程序。声音就是振动。当声音改变了鼓膜上空气的压力时,我们就感觉到了声音。麦克风可以感应这些振动,并且将它们转换为电流。同样,电流再经过放大器和扩音器,就又变成了声音。传统上,声音以模拟方式储存(例如录音磁带和唱片),这些振动储存在磁气脉冲或者轮廓凹槽中。当声音转换为电流时,就可以用随时间振动的波形来表示。振动最自然的形式可以用正弦波表示。
振动物体离开平衡位置的最大距离叫振动的振幅。振幅在数值上等于最大位移的大小。 振幅是标量,单位用米或厘米表示。振幅描述了物体振动幅度的大小和振动的强弱。

振幅A

振动物体离开 平衡位置的最大距离叫振动的振幅。振幅在数值上等于最大位移的大小。 振幅是 标量,单位用米或 厘米表示。振幅描述了物体振动幅度的大小和振动的强弱。
简谐运动的振幅只与初动能和弹簧有关,与 速度频率等无关。

周期T

物体完成一次全振动经过的时间为一个 周期T,其单位为 周期是表示 质点振动快慢的 物理量,周期越长, 振动越慢。

频率f

一秒钟内振动质点完成的全振动的次数叫振动的 频率,其单位为赫(Hz) 。频率也是表示质点振动快慢的物理量,频率越大,振动越快。周期和频率的关系或 其单位关系为1Hz=1S^(-1) 固有频率固有周期简谐运动的振动频率(周期)是由振动物体本身的性质决定的,所以又叫 固有频率(固有周期)。

全振动

振动质点经过一次全振动后其振动状态又恢复到原来的状态。
强调:“恢复到原来状态”指与原来的 位置速度位移加速度等大小和方向都相同的状态。故振动物体一次 全振动所经过的路程为4A 

正弦波有两个参数-振幅(也就是一个周期中的最大振幅)和频率。人们知道振幅就是音量, 频率 就是音调。一般来说人耳可感受的正弦波的范围是从20Hz(每秒周期)的低频声音到20,000Hz的高频声,但随着 年龄 的增长,对高频声音的感受能力会逐年退化。人感受频率的能力与频率是对数关系而不是线性关系。也就是说,我们感受20Hz40Hz的频率变化与感受40Hz80Hz的频率变化是一样的。在 音乐 中,这种加倍的频率定义为八度音阶。因此,人耳可感觉到大约10个八度音阶的声音。钢琴的范围是从27.5Hz4186Hz之间,略小于7个八度音阶。虽然正弦波代表了振动的大多数自然形式,但纯 正弦波 很少在现实生活中单独出现,而且,纯正弦波并不动听。大多数声音都很复杂。

     任何周期的波形(即,一个循环波形)可以分解成多个正弦波,这些正弦波的频率都是整倍数。这就是所谓的Fourier级数,它以法国 数学家 物理学家 JeanBaptisteJosephFourier1768-1830)的名字命名。周期的频率是基础。级数中其它正弦波的频率是基础频率的2倍、3倍、4倍。这些频率的声音称为泛音。基础频率也称作一级谐波。第一泛音是二级谐波,以此类推。正弦波谐波的相对强度给每个 周期 的波形唯一的声音。这就是音质,它使得喇叭吹出喇叭声, 钢琴 弹出钢琴声。  

    空气中的各种声音,不管它们具有何种形式,都是由于物体的振动所引起的:敲鼓时听到了鼓声,同时能摸到鼓面的振动;人能讲话是由于喉咙声带的振动;汽笛声、喷气飞机的轰鸣声,是因为排气时气体振动而产生的。总之,物体的振动是产生声音的根源,发出声音的物体称为声源。声源发出的声音必须通过中间媒质才能传播出去,人们最熟悉的传声媒质就是空气,除了气体外,液体和固体也都能传播声音。振动在媒质中传播的速度叫声速,在任一种媒质中的声速取决于该媒质的弹性和密度,因此,声音在不同媒质中传播的速度是不同的:在液体和固体中的传播速度一般要比在空气中快得多,例如在水中声速为 1450m/s ,而在铜中则为 5000m/s 。声音在空气中的传播速度还随空气温度的升高而增加。 

  向前推进着的空气振动称为声波,有声波传播的空间叫声场。当声振动在空气中传播时空气质点并不被带走,它只是在原来位置附近来回振动,所以声音的传播是指振动的传递。如果物体振动的幅度随时间的变化如正弦曲线那样,那么这种振动称为简谐振动,物体作简谐振动时周围的空气质点也作简揩振动。物体离开静止位置的距离称位移χ,最大的位移叫振幅α,简谐振动位移与时间的关系表示为χ=αsin(2πft+φ),其中f为频率,(2πft+φ ) 叫简谐振动的位相角,它是决定物体运动状态的重要物理量,振幅α的大小决定了声音的强弱。 



人们一度认为电子合成乐器仅仅需要将声音分解成谐波并且与多个正弦波重组即可。不过,事实证明现实世界中的声音并不是这么简单。代表现实世界中声音的波形都没有严格的周期。乐器之间谐波的相对强度是不同的,并且谐波也随着每个音符的演奏时间改变。特别是乐器演奏音符的开始位置-我们称作起奏(attack)-相当复杂,但这个位置又对我们感受音质至关重要。由于近年来数字储存能力的提高,我们可以将声音直接以数字形式储存而不用复杂的重组。

波形声音 编码调制

脉冲编码调制(PulseCodeModulation

计算机处理的是数值,因此要使声音进入计算机,就必须设计一种能将声音与数字信号相互转换的机制。不压缩数据就完成此功能的最常用方法称作脉冲编码调制(PCMpulsecodemodulation)。PCM可用在光盘、数字式录音磁带以及Windows中。脉冲编码调制其实只是一种概念上很简单的处理步骤的奇怪代名词而已。

利用脉冲编码调制,波形可以按固定的周期频率取样,其频率通常是每秒几万次。对于每个样本都测量其波形的振幅。完成将振幅转换成数字信号工作的硬件是模拟数字转换器(ADCanalog-to-digitalconverter)。类似地,通过数字模拟转换器(DACdigital-to-analogconverter)可将数字信号转换回波形电子信号。但这样转换得到的波形与输入的并不完全相同。合成的波形具有由高频组成的尖锐边缘。因此,播放硬件通常在数字模拟转换器后还包括一个低通滤波器。此滤波器滤掉高频,并使合成后的波形更平滑。在输入端,低通滤波器位于ADC前面。

脉冲编码调制有两个参数:取样频率,即每秒内测量波形振幅的次数;样本大小,即用于储存振幅级的位数。与您想象的一样:取样频率越高,样本大小越大,原始声音的复制品才更好。不过,存在一个提高取样频率和样本大小的极点,超过这个极点也就超过了人类分辨声音的极限。另外,如果取样频率和样本大小过低,将导致不能精确地复制音乐以及其它声音。


声音的振幅和频率

  前言,我们必须弄清所有有关声音的资料,因为需要包含物理系统、所有的基本原素、以及如何配合的基本知识.当你进入家庭录音室这一伟大的世界时,为了用设备工作,并把握新发现的音乐制作嗜好,我们需要的所有术语和理论就围绕著这些基本规则、名称/术语和原理,当然是因为音响制作和音响电子,例如合成参数、取样等术语遵守这些相同的名称、法律和术语.

  一、什么是声音?

  声音只是压力波通过空气的运动.压力波振动内耳的小骨头,这些振动被转化为微小的电子脑波,它就是我们觉察到的声音.内耳采用的原理与麦克风捕获声波或扬声器的发音一样,它是移动的机械部分与气压波之间的关系.自然,在声波音调低、移动缓慢并足够大时,我们实际上可以“感觉”到气压波振动身体.因此我们用混合的身体部分觉察到声音. 返回声源?

  先从声源开始.用鼓槌捶击军鼓,鼓槌捶击在鼓头的穹形鼓皮上,鼓皮振动,振动的鼓皮然后就推动空气,产生从鼓头和鼓体发出并散开的压力波.因此,“压力波”从声源向外发出并散开.为了证明这一点,向公园内的池塘或家中的水槽内抛入一个石头,看看落入水中的物体产生的水波是如何从被干扰的波源散开幕.另外注意,如果抛入水槽或象碗一样的封闭容器中,波纹/振动是如何碰到边缘、然后从壁上反弹回的.观察封闭容器内的波纹/水波,就给了你一些声音是如何在个封闭的屋子里移动,从墙壁上反弹回的概念.另外注意,石头/石块越大,产生波纹的间距就远远比小物体的要大.

  二、声音特性

  (一)“振幅”:这就是音量,声音有多大,声波就有多大.

  (二)“频率”:音调有多高或多低.例如,低音端的声音或更高的声音,如细弦声.

  频率是每秒经过一给一定点的声波数量,它的测量单位为赫兹,是以一个名叫海里奇R.赫兹的音响奇人命名的.此人设置了一张桌子,演示频率是如何与每秒的周期相关的.

  1千赫或1000赫表示每秒经过一给定点的声波有1000个周期,1兆赫就是每秒钟有1,000,000个周期,等等.

  单个正弦波周期

  “周期”表示一个波周期从0dB/静音至全部打开又返回的一个全周期.上面所示为正弦波的一个单周期.中线为0dB,即静音.波高为音量,从左至右为时间.“波长”为从左至右的峰—峰距离.

  与用于广播或电视信号等,还有其它的一样,频率进一步分为VHF(甚高频)和UHF(超高频).人在年轻时可以听到约20Hz20,000Hz(20KHz)的频率范围,这是消费类CD的额定频率范围.人的听力从12岁以后开始下降,经常性处于声压级极大的情况下会导致我们听力的灵敏度下降更快或完全毁坏.

  因此,声音具有音量/振幅和频率/音调,另外还有基于时间的声音结构.声音达到最大音量有多快,可持续多长时间以及声音消失直到听不到时需多长时间.所使用的最基本术语有:

  (一)“上升”:声波从静音达到最大振幅或音量所需的时间.

  (二)“衰变”:声波达到最大振幅/音量后消失为静音所需的时间.

  声音的“音量-时间”形状特性叫做“振幅包络”.

  简单包络:“ 上升”达到最大音量并不是立即完成的.声音然后缓缓地衰变.

  将上述振幅/音量包络用正弦波表示的结果

  声波的包络:在实际生活中,声音是混杂的,含有以不同振幅包络层叠的许多频率

Adobe Audition(前Cool Edit Pro) 是美国Adobe Systems 公司 (前Syntrillium Software Corporation) 开发的一款功能强大、效果出色的多轨录音

和音频处理软件。可展开一些对声音的研究


你可能感兴趣的:(软件与计算,python手记)