[在Mac上无法使用Python录制或播放音频:没有错误,没有声音

问题描述 投票:0回答:1

我正在尝试仅使用内置的麦克风和扬声器在Mac(Catalina)的Python 3.7上使用音频。我的问题是,使用我尝试的任何代码,在录制时我什么也没收到,而在播放声音时什么也没发出。我尝试过此question的答案:首先,我尝试使用PyAudio这样:

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
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()

哪个返回给我一个静默文件。

然后我尝试使用SoundDevice:

import sounddevice as sd
import matplotlib.pyplot as plt

fs = 44100                      # frames per sec
sd.default.samplerate = fs
sd.default.channels = 2

duration = 3.0                  # Aufnahmezeit
recording = sd.rec( int( duration * fs) )
print("* recording")
sd.wait()
print("* done!")

t = [ i for i in range( int( duration * fs) )]

plt.plot(t, recording, 'r-')
plt.show()

将返回一个填充有零的数组:Screenshot of the Plot。两者均未引起任何错误或警告。

[之后,我尝试播放440 Hz的简单Sin-Wave,扬声器保持沉默。

相同的代码,可以在我的朋友mac上正常使用。麦克风和扬声器也可以正常工作。在系统偏好设置中,我允许每个应用程序都使用麦克风。

person似乎有类似的问题。也尝试了this code,但没有结果。 :(

我不知道还有什么可以尝试解决的。

python macos audio pyaudio python-sounddevice
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.