加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读