python如何录音_python制作录音功能

依赖库

安装我们需要的库

pip install pyaudio

录音功能代码

import pyaudio

import wave

CHUNK = 1024

FORMAT = pyaudio.paInt16

CHANNELS = 2

RATE = 44100

RECORD_SECONDS = 5

WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,

channels=CHANNELS,

rate=RATE,

input=True,

frames_per_buffer=CHUNK)

print("* recording")

frames = []

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

data = stream.read(CHUNK)

frames.append(data)

print("* done recording")

stream.stop_stream()

stream.close()

p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')

wf.setnchannels(CHANNELS)

wf.setsampwidth(p.get_sample_size(FORMAT))

wf.setframerate(RATE)

wf.writeframes(b''.join(frames))

wf.close()

以上代码会录制一段5秒的声音在windows上存储为wav格式的音频。

音频相关的参数详解

wav

WAV是windows平台上的一种音频格式,44.1k的取样频率,16位量化数字和CD音乐相差无几。

上述代码当中

CHUNK wav文件是由若干个CHUNK组成的,CHUNK我们就理解成数据包或者数据片段。

FORMAT 这个参数后面写的pyaudio.paInt16表示我们使用量化位数 16位来进行录音。

CHANNELS 代表的是声道,这里使用的双声道。

RATE 采样率 44.1k,每秒采样44100个点。

RECORD_SECONDS 录制时间这里设定了5秒

关于代码中的循环

代码后面有写一个循环根据采样率和数据包以及秒数流式的将数据写入到文件当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值