python – 使用pyaudio录制24位音频
发布时间:2020-12-20 13:42:15 所属栏目:Python 来源:网络整理
导读:我需要录制24位音频(因为它是音频数字化的档案标准).但是,波形库似乎只能达到16位. 看起来pyaudio可以使用24位音频,但我发现的每个例子都使用波形库显示pyaudio,这意味着它必须保存16位. 是否可以使用pyaudio录制和播放24位音频? 解决方法 对的,这是可能的.
我需要录制24位音频(因为它是音频数字化的档案标准).但是,波形库似乎只能达到16位.
看起来pyaudio可以使用24位音频,但我发现的每个例子都使用波形库显示pyaudio,这意味着它必须保存16位. 是否可以使用pyaudio录制和播放24位音频? 解决方法
对的,这是可能的.你只需要使用
record example的PyAudio并用pyaudio.paInt24替换pyaudio.paInt16.
import pyaudio import wave CHUNK = 1024 FORMAT = pyaudio.paInt24 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() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |