加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中从立体声波文件中读取单个通道的数据

发布时间:2020-12-20 12:38:03 所属栏目:Python 来源:网络整理
导读:我必须从 Python中的立体声波形文件中的一个通道读取数据. 为此我用scipy.io试了一下: import scipy.io.wavfile as wfimport numpydef read(path): data = wf.read(path) for frame in data[1]: data = numpy.append(data,frame[0]) return data 但是这段代
我必须从 Python中的立体声波形文件中的一个通道读取数据.
为此我用scipy.io试了一下:

import scipy.io.wavfile as wf
import numpy

def read(path):
    data = wf.read(path)
    for frame in data[1]:
        data = numpy.append(data,frame[0])
    return data

但是这段代码非常慢,特别是如果我必须使用更长的文件.
那么有人知道更快的方法吗?我通过使用wave.readframes()来考虑标准波形模块,但帧是如何存储的?

解决方法

scipy.io.wavfile.read返回元组(速率,数据).如果文件是立体声,则数据是具有形状的numpy数组(nsamples,2).要获取特定频道,请使用 slice数据.例如,

rate,data = wavfile.read(path)
# data0 is the data from channel 0.
data0 = data[:,0]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读