为了录制一个2秒钟的wav文件,我使用了PyAudio(与Pyzo配合使用)和以下经典代码来记录声音并保存它:
然后我使用它,说“aaa”。一切正常,没有错误。但是当我读取wav文件时,听不到“aaa”。我在Audacity中可视化该文件,发现一切都是静音(0)。所以似乎Pyzo不知道我的麦克风在哪里,因为它没有使用它。我该怎么办?有任何想法吗?或者可能没有写入所有记录的数据,但我不知道原因。
我已经检查过我的麦克风是16位并具有44100速率。
import pyaudio
import wave
chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 2
WAVE_OUTPUT_FILENAME = "my_path//a_test_2.wav"
p = pyaudio.PyAudio()
# Création et initialisation de l'objet stream...
s = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
frames_per_buffer = chunk)
print("---recording---")
d = []
print((RATE / chunk) * RECORD_SECONDS)
for i in range(0, (RATE // chunk * RECORD_SECONDS)):
data = s.read(chunk)
d.append(data)
#s.write(data, chunk)
print("---done recording---")
s.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(d))
wf.close()
然后我使用它,说“aaa”。一切正常,没有错误。但是当我读取wav文件时,听不到“aaa”。我在Audacity中可视化该文件,发现一切都是静音(0)。所以似乎Pyzo不知道我的麦克风在哪里,因为它没有使用它。我该怎么办?有任何想法吗?或者可能没有写入所有记录的数据,但我不知道原因。
我已经检查过我的麦克风是16位并具有44100速率。
arecord -f cd -D plughw:1,0 -d 20 test.wav
。 - Fahadkalis