python波形显示一组数据

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波形显示(在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波形显示一组数据

资讯

pythonraise用法(python中可以使用if作为变量名吗)

阅读(2)

本文主要为您介绍pythonraise用法,内容包括python中可以使用if作为变量名吗,Python新手,Python中except的用法和作用是什么?请指教,python当中的迭代器如何使用?举例说明,谢谢。不可以,if为python保留的字符下面的列表显示了在 Python 中的

资讯

sparkpythonhbase(有没有Python写的spark连接Hbase的例子)

阅读(3)

本文主要为您介绍sparkpythonhbase,内容包括有没有Python写的spark连接Hbase的例子,如何提高python写hbase的性能,spark读hbaseparquet哪个快。博主项目实践中,经常需要用Spark从Hbase中读取数据。其中,spark的版本为1.6,hbase的版本为0.98。

资讯

python文字编码转换(python如何将乱码转成汉字)

阅读(2)

本文主要为您介绍python文字编码转换,内容包括python字符编码转换,python如何将乱码转成汉字,python编码转换。python2与python3稍微有点区别2、python2中默认的字符编码格式都是unicode,在字符串前加u,表示unicode

资讯

python相除取整数(python为什么算除法自动取整了)

阅读(2)

本文主要为您介绍python相除取整数,内容包括python2.7.12中如何引用模块做整数相除,python2.7.12引用模块做整数除法,python除数向上取整怎么写,就是0.3取12.6取3这种,我5/10得到。在2.x版本都是这样,会自动取整。在3.x版本以上改了,结果保留

资讯

pythoncondapip(pip和conda到底有什么不一样)

阅读(2)

本文主要为您介绍pythoncondapip,内容包括pip和conda到底有什么不一样,pip和conda到底有什么不一样,pythonpip是什么。在python的世界里也浸淫多年了,我们早已习惯有 pip ,easy_install 和virtualenv的世界,但是这些

资讯

python绘制波形图(matplotlib怎样绘制波形图)

阅读(2)

本文主要为您介绍python绘制波形图,内容包括matplotlib怎样绘制波形图,matplotlib怎样绘制波形图,python问题求解我现在通过编程生成一个波形文件,怎么获取第一秒之。可以选择ActivePython,然后用命令 pypm -g install matplotlib安装模块。

资讯

ugpython(python和activepython)

阅读(1)

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

资讯

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

阅读(2)

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

资讯

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

阅读(2)

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

资讯

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

阅读(2)

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

资讯

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

阅读(2)

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

资讯

pythonmaxindex(python中multiindex什么意思)

阅读(2)

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