Python PyAudio和Audition CS6记录不同的样本值
应评估和实现的内容: 我试着用最少的硬软件影响来记录音频数据。在使用Adobe Audition一段时间后,我偶然发现了PyAudio,出于好奇心以及刷新Python知识的可能性。 正如上面标题中显示的事实可能已经透露的那样,我比较了两个wave文件(实际上是其中的部分)的样本值,并发现两个程序产生不同的输出。 因为我肯定是束手无策了,我真的希望能找到能帮助我的人 到目前为止所做的工作: M-Audio“M-Track双通道USB接口”已用于同时使用Audition CS6和PyAudio录制音频数据,因为以下步骤按给定顺序执行Python PyAudio和Audition CS6记录不同的样本值,python,audio,pyaudio,Python,Audio,Pyaudio,应评估和实现的内容: 我试着用最少的硬软件影响来记录音频数据。在使用Adobe Audition一段时间后,我偶然发现了PyAudio,出于好奇心以及刷新Python知识的可能性。 正如上面标题中显示的事实可能已经透露的那样,我比较了两个wave文件(实际上是其中的部分)的样本值,并发现两个程序产生不同的输出。 因为我肯定是束手无策了,我真的希望能找到能帮助我的人 到目前为止所做的工作: M-Audio“M-Track双通道USB接口”已用于同时使用Audition CS6和PyAudio录制音
- 通过打开“优先/音频硬件”并选择音频接口、48 kHz的采样率和250 ms的延迟时间,为录音做好准备(在过去几年中,该值被认为是我在没有收到丢失样本警告的情况下可以得到的第二低值——如果我正确理解了目的,我只需担心丢失样本,因为监测不是问题)
- 打开一个具有一个通道、48 kHz采样率和24位深度的新文件
- Python代码(如下所示)被启动,并导致一个倒计时,用于切换到试听,并在Python启动其功能前10秒开始录制。)
- 等待Python打印“程序结束”消息
- 停止并保存试听记录的数据
- 这两个文件(分别由Audition和Python录制)都在Audition(多轨会话)中打开。由于试听是手动开始和终止的,两个文件的开始和结束时间完全不同。然后对它们进行视觉对齐,以便可以剪切并保存小的提取(通过波形形状,视觉上包含相同的数据)
- 编写了一个Python程序,分别使用默认的wave模块和matplotlib.pyplot打开、读取和显示示例值(下图所示)
- 两种波形的差异和一个大问号被揭示
import pyaudio
import wave
import time
formate = pyaudio.paInt24
channels = 1
framerate = 48000
fileName = 'test ' + '.wav'
chunk = 6144
# output of stream.get_read_available() at different positions
p = pyaudio.PyAudio()
stream = p.open(format=formate,
channels=channels,
rate=framerate,
input=True)
#frames_per_buffer=chunk) # observation c
# COUNTDOWN
for n in range(0, 30):
print(n)
time.sleep(1)
# get data
sampleList = []
for i in range(0, 79):
data = stream.read(chunk, exception_on_overflow = True)
sampleList.append(data)
print('end -', time.strftime('%d.%m.%Y %H:%M:%S', time.gmtime(time.time())))
stream.stop_stream()
stream.close()
p.terminate()
# produce file
file = wave.open(fileName, 'w')
file.setnchannels(channels)
file.setframerate(framerate)
file.setsampwidth(p.get_sample_size(formate))
file.writeframes(b''.join(sampleList))
file.close()
图1:第一次对比试听–PyAudio
图2:第二次对比试听-Pyaudio