赞
踩
原理:
1. 利用pyaudio库,实现音频录制,输出为bytes格式音频数据流;
2. 使用pydub.AudioSegment库,将bytes数据流转换为pydub.AudioSegment对象,进行音频处理;
3.使用pydub.playback.play库播放pydub.AudioSegment对象数据。
代码如下:
- import pyaudio
- from pydub import AudioSegment
- from pydub.playback import play
-
- #录音采样设置
- chunk_size = 1024 # 512
- audio_format = pyaudio.paInt16
- channels = 1
- rate = 20000
-
- #实例化PyAudio类
- p = pyaudio.PyAudio()
-
-
- #建立录制流(input)
- recording_stream = p.open(format=audio_format, channels=channels, rate=rate, input=True,
- frames_per_buffer=chunk_size)
-
- while True:
- #获取录音bytes数据流
- data = recording_stream.read(1024)
- #将data转换为AudioSegment对象,以实现后面的音频处理
- sound = AudioSegment(data=data,frame_rate=rate,sample_width=2,channels=1)
- #音量增加20db
- sound = sound +20
-
- #使用pydub.playback.play播放AudioSegment对象
- play(sound)
模块用法说明
-
- # 高级用法:原始数据处理
- sound = AudioSegment(
- # 音频原始数据(bytes)
- data=b'…',
-
- # 2 byte (16 bit) 采样
- sample_width=2,
-
- # 44.1 kHz 采样率 frame_rate=44100,
-
- # 声道
- channels=1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。