我想从音频输入进行录音并使用python3中的pyaudio写入wav文件。当在我们的 ubuntu 实验室计算机上运行代码时,它可以工作,但是当在我的 mac 上运行它时,它不会向文件写入任何数据,并且我会收到一个持续时间正确的静默 wav 文件。
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "sound.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()
最佳答案
我的问题是我运行 Python 脚本的应用没有麦克风访问权限(而且它也没有请求访问权限)。我正在从 VS Code 的终端内置运行脚本。
解决方案:确保您正在运行的应用具有麦克风访问权限。对我来说,我从终端应用程序运行脚本并确保它具有麦克风访问权限:
关于python-3.x - pyaudio 在录制声音时给出空输出文件 [MacOS Mojave 10.14.6],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248136/