Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x pyaudio在录制声音时提供空输出文件[MacOS Mojave 10.14.6]_Python 3.x_Macos Mojave_Pyaudio - Fatal编程技术网

Python 3.x pyaudio在录制声音时提供空输出文件[MacOS Mojave 10.14.6]

Python 3.x pyaudio在录制声音时提供空输出文件[MacOS Mojave 10.14.6],python-3.x,macos-mojave,pyaudio,Python 3.x,Macos Mojave,Pyaudio,我想用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 = "sou

我想用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代码的脚本

解决方案:确保您正在运行的应用程序具有麦克风访问权限。对我来说,我从终端应用程序运行脚本,并确保它具有麦克风访问权限: