当前位置:  开发笔记 > 编程语言 > 正文

如何使用Python正确解码.wav

如何解决《如何使用Python正确解码.wav》经验,为你挑选了0个好方法。

我正在编码WAVE音频文件的基本频率analisys,但是在从WAVE帧转换为整数时遇到麻烦。

这是我的代码的相关部分:

import wave
track = wave.open('/some_path/my_audio.wav', 'r')

byt_depth = track.getsampwidth() #Byte depth of the file in BYTES
frame_rate = track.getframerate()
buf_size = 512

def byt_sum (word):
#convert a string of n bytes into an int in [0;8**n-1]
    return sum( (256**k)*word[k] for k in range(len(word)) )

raw_buf = track.readframes(buf_size)
'''
One frame is a string of n bytes, where n = byt_depth.
For instance, with a 24bits-encoded file, track.readframe(1) could be:
b'\xff\xfe\xfe'.
raw_buf[n] returns an int in [0;255]
'''

sample_buf = [byt_sum(raw_buf[byt_depth*k:byt_depth*(k+1)])
              - 2**(8*byt_depth-1) for k in range(buf_size)]

问题是:当我绘制sample_buf单个正弦信号时,会得到 另一种破坏的正弦信号。我不知道为什么信号重叠udpside-down。

任何的想法?

PS:由于我是法语,所以我的英语很犹豫。如果有难看的错误,请随时进行编辑。

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有