Python如何播放和录制音频?本文带你了解如何在 Python 中使用不同的库(如 Playsound、Pydub 和 PyAudio)播放和录制声音文件。
如何在Python中播放和录制音频?许多应用程序可以录制你的声音并播放声音,如果你也想这样做,那么你来对地方了,在本教程中,我们将使用不同的 Python 库在 Python 中播放和录制音频.
让我们安装本教程所需的库:
pip3 install playsound pyaudio pydub ffmpeg-python
Python播放音频:音频播放器
首先,我们将从这里最简单的模块开始,playsound:
from playsound import playsound
playsound("audio_file.mp3")
是的,这就是这个模块所需要的,它基本上是一个纯 Python、跨平台、单一功能的模块。该文件说,WAV和MP3扩展已知的工作,它可能为其他格式正常工作。
playsound()函数播放音频文件中的声音并阻塞直到文件读取完成,你可以通过block=False使函数异步运行。
另一种选择是使用Pydub库,Python播放和录制音频示例代码如下:
from pydub import AudioSegment
from pydub.playback import play
# read MP3 file
song = AudioSegment.from_mp3("audio_file.mp3")
# song = AudioSegment.from_wav("audio_file.wav")
# you can also read from other formats such as MP4
# song = AudioSegment.from_file("audio_file.mp4", "mp4")
play(song)
注意:你需要在你的机器上安装FFmpeg才能使用支持 FFmpeg 支持的所有格式的AudioSegment.from_file()函数。
Python如何播放和录制音频?Pydub 是一个非常流行的库,因为它不仅用于播放声音,你还可以将其用于不同的目的,例如转换音频文件、切片音频、增大或减小音量等等,请查看他们的存储库以获取更多信息。
如果你想使用 PyAudio 播放音频,请查看此链接。
相关: 如何在 Python 中从视频中提取音频。
Python录制音频:录音机
如何在Python中播放和录制音频?为了录制语音,我们将使用 PyAudio 库,因为它是最方便的方法:
import pyaudio
import wave
# the file name output you want to record into
filename = "recorded.wav"
# set the chunk size of 1024 samples
chunk = 1024
# sample format
FORMAT = pyaudio.paInt16
# mono, change to 2 if you want stereo
channels = 1
# 44100 samples per second
sample_rate = 44100
record_seconds = 5
# initialize PyAudio object
p = pyaudio.PyAudio()
# open stream object as input & output
stream = p.open(format=FORMAT,
channels=channels,
rate=sample_rate,
input=True,
output=True,
frames_per_buffer=chunk)
frames = []
print("Recording...")
for i in range(int(44100 / chunk * record_seconds)):
data = stream.read(chunk)
# if you want to hear your voice while recording
# stream.write(data)
frames.append(data)
print("Finished recording.")
# stop and close stream
stream.stop_stream()
stream.close()
# terminate pyaudio object
p.terminate()
# save audio file
# open the file in 'write bytes' mode
wf = wave.open(filename, "wb")
# set the channels
wf.setnchannels(channels)
# set the sample format
wf.setsampwidth(p.get_sample_size(FORMAT))
# set the sample rate
wf.setframerate(sample_rate)
# write the frames as bytes
wf.writeframes(b"".join(frames))
# close the file
wf.close()
上面的Python播放和录制音频示例代码中,它基本上初始化了PyAudio对象,然后我们打开了一个流对象,允许我们使用stream.read()方法从麦克风录音。录制完成后,我们使用内置的wave模块将那个WAV音频文件写入磁盘。
当你在p.open()方法中设置input=True时,你将能够使用stream.read()从麦克风读取。此外,当你设置output=True 时,你将能够使用stream.write()写入扬声器。
结论
Python如何播放和录制音频?在本教程中,你学习了如何使用playsound、Pydub和PyAudio库播放音频文件以及使用 PyAudio 录制语音。
对你来说一个巨大的挑战是将它与屏幕录像机结合起来,你会想出一个同时记录你的声音和屏幕的 Python 工具,你需要使用一个记录音频的线程,另一个用于屏幕录音师,祝你好运!