python audioread 音频处理

本文介绍如何使用Python的audioread库读取音频文件,获取音频的通道数、采样率和持续时间,并利用matplotlib和numpy进行数据可视化。通过代码示例,展示了如何将音频数据转换为numpy数组并绘制其波形。
摘要由CSDN通过智能技术生成

python 解码 音频:

import time
import audioread
import matplotlib.pyplot as plt
import numpy as np
import sys, os 

filename = '~/Music/a.mp3'
with audioread.audio_open(filename) as f:
    print(f.channels, f.samplerate, f.duration)
    for buf_i, buf in enumerate(f):
        if buf_i < 100:
            continue
        data = np.frombuffer(buf, np.int16)
        plt.plot(range(buf_i*len(data)//2, (buf_i+1)*len(data)//2), data[0::2])
        plt.plot(range(buf_i*len(data)//2, (buf_i+1)*len(data)//2), data[1::2])
        if buf_i > 120:
            break
    plt.show()

在这里插入图片描述


做了一个简单的变化,方便后期处理音频数据:

import time
import audioread
import matplotlib.pyplot as plt
import numpy as np
import sys, os 

filename = '~/Music/a.mp3'
with audioread.audio_open(filename) as f:
    print(f.channels, f.samplerate, f.duration)
    audio_cs = [[]]*f.channels
    for buf_i, buf in enumerate(f):
        data = np.frombuffer(buf, np.int16)
        for ci in range(f.channels):
            audio_cs[ci]+=(data[ci::f.channels].tolist())
for c in audio_cs:
    print(len(c))
    plt.plot(range(0,len(c)), c)
plt.show()

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值