如何用python录制电脑扬声器发出的音频并以MP3形式保存
时间: 2024-03-14 16:47:26 浏览: 155
要录制电脑扬声器发出的音频,需要使用一个虚拟音频设备,以便将扬声器输出的音频捕获到Python中。Windows中可以使用`virtual-audio-capture-grabber`等虚拟音频设备,MacOS中可以使用`Soundflower`等虚拟音频设备。以下是使用`virtual-audio-capture-grabber`的示例代码:
```python
import sounddevice as sd
import soundfile as sf
from pydub import AudioSegment
# 设置录音参数
duration = 5 # 录制时长(秒)
sample_rate = 44100 # 采样率
channels = 2 # 声道数
filename = "output.wav" # 输出文件名
# 打开虚拟音频设备进行录音
with sf.SoundFile(filename, mode='x', samplerate=sample_rate,
channels=channels) as file:
with sd.InputStream(samplerate=sample_rate, channels=channels) as stream:
print("正在录音...")
# 录制音频
for i in range(int(duration * sample_rate)):
file.write(stream.read(1))
print("录音结束!")
# 将录制的音频保存为MP3格式
sound = AudioSegment.from_wav("output.wav")
sound.export("output.mp3", format="mp3")
```
这段代码会录制5秒钟的电脑扬声器输出的音频,并将其保存为`output.wav`文件。然后,使用`pydub`库将`output.wav`文件转为`output.mp3`文件。注意,在运行代码前需要先安装`sounddevice`、`soundfile`和`pydub`库。另外,需要先安装`virtual-audio-capture-grabber`虚拟音频设备并将其设置为系统的默认音频输入设备。
阅读全文