欢迎光临散文网 会员登陆 & 注册

pyaudio高级玩法2:音频的字节码转换为数值

2019-12-23 13:13 作者:怯默吾声  | 我要投稿

无论是使用pyaudio还是读取声音文件,读出的内容其实都是字节码。这些内容并非加密,因此很容易转化成数值进行处理。当然python中有一些专门工具用于声音分析,不过如果只是单纯的想看一下数值大小,总是杀鸡用牛刀的感觉。

事实上python的标准库就包含字节转换工具,可以轻松完成这项工作。


import pyaudio

import struct as st


CHUNK = 1000

FORMAT = pyaudio.paInt16 #一帧占两字节

CHANNELS = 1

RATE = 1000

RECORD_SECONDS =2


p = pyaudio.PyAudio()


stream = p.open(format=FORMAT,

                channels=CHANNELS,

                rate=RATE,

                input=True,

                input_device_index = 0, #选择声音设备

                frames_per_buffer=CHUNK)


frames = []


for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):

    data = stream.read(CHUNK)

    frames+=data


patch = st.unpack('<2000h', bytes(frames)) #解析声音强度

print(patch)

stream.stop_stream()

stream.close()

p.terminate()


pyaudio高级玩法2:音频的字节码转换为数值的评论 (共 条)

分享到微博请遵守国家法律