python波形显示amobbs

python波形显示(在python中打开波形文件︰未知的格式︰49.究竟怎么了)

1.在python 中打开波形文件 ︰ 未知的格式 ︰ 49.究竟怎么了

投票

2

回答

1K

查看

我尝试打开波形文件与 wave模块,但是老是同样的错误我试着不管。 包含错误的行是以下 ︰

wav = wave.open(f)

这是错误消息 ︰

Traceback (most recent call last):

File "annotate.py", line 47, in

play(file)

File "annotate.py", line 33, in play

wav = wave.open(f)

File "C:\Program Files (x86)\Python\lib\wave.py", line 498, in open

return Wave_read(f)

File "C:\Program Files (x86)\Python\lib\wave.py", line 163, in __init__

self.initfp(f)

File "C:\Program Files (x86)\Python\lib\wave.py", line 143, in initfp

self._read_fmt_chunk(chunk)

File "C:\Program Files (x86)\Python\lib\wave.py", line 269, in _read_fmt_chunk

raise Error('unknown format: %r' % (wFormatTag,))

wave.Error: unknown format: 49

字符串 f是路径。WAV 文件,它工作在任何我的媒体播放器播放时。 我当然导入 wave的模块。 我试过 f,作为一个相对和绝对路径。 我试着用"wav"取代"WAV"。

错误什么导致的?

投票

Python 的波模块工作与特定类型的 WAV: PCM (WAVE_FORMAT_PCM: 0x0001)。

在您的情况下,您使用 WAV 类型 WAVE_FORMAT_GSM610[0x0031 = hex(49)].

你可以使用像大胆或者一些程序转换的编解码器,WAV 文件的类型更改为 lib。

2.如何使用python实现wave音频文件回放

修改采样点数和起始位置进行不同位置和长度的音频波形分析

N=44100

start=0 #开始采样位置

df = framerate/(N-1) # 分辨率

freq = [df*n for n in range(0,N)] #N个元素

wave_data2=wave_data[0][start:start+N]

c=numpy.fft.fft(wave_data2)*2/N

#常规显示采样频率一半的频谱

d=int(len(c)/2)

#仅显示频率在4000以下的频谱

while freq[d]>4000:

d-=10

pylab.plot(freq[:d-1],abs(c[:d-1]),'r')

pylab.show()

3.如何用python实现音乐的频谱显示

用pymedia可以很容易的实现:

import pymedia.audio.acodec as acodec

sName='YOUR FILENAME'

dec= acodec.Decoder( str.split( sName, '.' )[ -1 ].lower() )

f= open( sName, 'rb' )

s= f.read( 8192 )

r= dec.decode( s )

import pymedia.audio.sound as sound

snd= sound.Output( r.sample_rate, r.channels, sound.AFMT_S16_LE )

while len( s )>0:

if r: snd.play( r.data )

s= f.read( 512 )

r= dec.decode( s )

import time

while snd.isPlaying(): time.sleep( .05 )

4.怎样用python生成sin wave的wave文件

以下代码涵盖了基本的写wave文件需要的函数。

# Simple wave file creation in python using the "wave" module.

# Author; Eric Nichols

# 1-11-11

#

# code adapted from:

#

import wave #需要导入python的wave module,函数用法参

import struct #struct module的用法参见

from

math import sin, pi, pow

MAX_AMPLITUDE = 32767 #决定sin wave的音量

SAMPLE_RATE = 44100 #采样频率,由于人听觉在20到20千赫兹,由于Nyquist定律,一般44100(大于20千

的两倍)的频率足够满足人耳,再高就浪费文件空间啦,这也是CD通常的采样频率。

DURATION_SEC =

3 #生成wav的时间为三秒

SAMPLE_LEN =

SAMPLE_RATE * DURATION_SEC #

乘一下就是要写多少个SAMPLE啦

filename = '/Users/rongjin/Desktop/output.wav' #起个文件名哈,文件生成后就到这个文件夹找啦

print "Creating sound file:", filename

print "Sample rate:",

SAMPLE_RATE

print "Duration (sec):", DURATION_SEC

print "# samples:",

SAMPLE_LEN

wavefile = wave.open(filename, 'w') #

'w'写文件,其他还有'r','rb','wb'啥的,详情google之

wavefile.setparams((2, 2, SAMPLE_RATE, 0, 'NONE', 'not

compressed')) # 设置下wave file的头文件

samples = [] #建一个tuple用来放好几个channel的

for i in range(SAMPLE_LEN):

t = float(i) /

SAMPLE_RATE # t表示当下滴时间

sample = MAX_AMPLITUDE * sin(t * 256 * 2 * pi) #

就根据sin wave的方程得到当下的amplitude啦,

这里生成频率为256的音高哟,可以随便改。

#print i, t, sample # show

some generated values. comment out for speed.

packed_sample = struct.pack('h', sample) #

转换成16进制的string

samples.append(packed_sample) #

append到samples,作为channel 1

samples.append(packed_sample) # append一个一样的作为channel

2,要是append另一个频率的

packed_sample_2,就可以有和声效果啦

sample_str = ''.join(samples) #

把samples里所有的值都convert到一个string上

wavefile.writeframes(sample_str) # 终于要写waveframe啦!

wavefile.close() #最后别忘了关掉文件,不然会出错滴

print "Done writing

file." #大告成功!

python波形显示

转载请注明出处代码入门网 » python波形显示amobbs

资讯

ugpython(python和activepython)

阅读(1)

本文主要为您介绍ugpython,内容包括Python、Ruby、Java、C++、UG有法语、德语、俄语版本的吗?,pythongraphtool怎么使用,python和activepython。activepython是红帽子的那家公司自己定制的。 python通常是指c-python,就是说用C语言为主写的

资讯

阿里云python3(阿里云虚拟主机可以部署python代码吗)

阅读(1)

本文主要为您介绍阿里云python3,内容包括阿里云虚拟主机可以部署python代码吗,如何在“阿里云+Wdcp”上面搭建Python环境,各位大神,Python怎么调用阿里云API。一 正确的打开姿势1.按win+r然后输入cmd2.切换到程序所在的目录3.输入python 程

资讯

python解析url编码(url编码问题在python中怎么解决)

阅读(1)

本文主要为您介绍python解析url编码,内容包括url编码问题在python中怎么解决,url编码问题在python中怎么解决,Python3如何对url解码?。最近在抓取一些js代码产生的动态数据,需要模拟js请求获得所需用的数据,遇到对url进行编码和解码的问题,就

资讯

python绑定ip(python怎样获取连接的IP的设备信息)

阅读(1)

本文主要为您介绍python绑定ip,内容包括如何使用python语言封锁或开放指定的IP?,在使用python的socket模块编程的时候,使用下面哪个方法来绑定本地,python中os.system中IP地址的用法。以前是有这样的工具,它会通过常用协议去刺探设备类型。

资讯

python调试输出(如何进行Python调试器调试)

阅读(1)

本文主要为您介绍python调试输出,内容包括如何进行Python调试器调试,怎么设置pycharm的pythonconsole输出界面,调试python代码的方法。PyDev 就能显示出一个超链接,这样您可以在导入库或函数的源代码之间导航。请注意,为了在您自己的源代码中

资讯

pythonmaxindex(python中multiindex什么意思)

阅读(1)

本文主要为您介绍pythonmaxindex,内容包括Python中的index一般是什么意思,怎么个用法?,python中multiindex什么意思,python中multiindex什么意思。Python 中多层级数据的生成与索引方法基于 Pandas 和 Numpy 中的一些功能,首先我们需要导入

资讯

pythonmakerequests(python的requests模块什么功能)

阅读(1)

本文主要为您介绍pythonmakerequests,内容包括python怎么安装requests,如何在python中安装requests,makerequests什么意思。Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。Pytho

资讯

网络爬虫javapython(网络爬虫java和网络爬虫python哪个好用)

阅读(1)

本文主要为您介绍网络爬虫javapython,内容包括网络爬虫java和网络爬虫python哪个好用,python网络爬虫和java爬虫有什么区别,网站爬虫,python语言和java语言?。Python优点: 1.各种爬虫框架,方便高效的下载网页; 2.多线程、进程模型成熟稳定,爬虫

资讯

python沙箱(如何安装pythoncycler)

阅读(2)

本文主要为您介绍python沙箱,内容包括pythondef是什么意思,python中的exit()怎么用?,如何安装pythoncycler。先在命令行里打一下pip,确认下这个模块安装了没有。如果没有则,首先安装easy_install下载地址:解压,安装.python ez

资讯

python文件(请教如何用python下载文件到本地)

阅读(1)

本文主要为您介绍python文件,内容包括请教如何用python下载文件到本地,如何用python实现视频关键帧提取并保存为图片?,Python视频格式?。知道文件的url地址就用urllib模块的urlretrieve函数。urllib.urlretrieve(url, filename)

资讯

python模块环境变量(python怎么设置环境变量)

阅读(1)

本文主要为您介绍python模块环境变量,内容包括python怎么设置环境变量,python怎么设置环境变量,如何配置python的环境变量。Windows下python环境变量配置默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量。此时不能在