📜  python 播放音频片段 - Python (1)

📅  最后修改于: 2023-12-03 15:19:10.007000             🧑  作者: Mango

Python 播放音频片段

当你需要在你的Python应用程序中添加音频效果时,可以使用Python的标准库中的pyaudio模块和wave模块。pyaudiowave模块提供了一种简单的方法来播放音频片段。

安装

要使用pyaudiowave模块,需要先安装它们。可以使用以下命令在终端中安装:

pip install pyaudio wave
播放音频片段

首先,使用wave模块打开音频文件并读取采样率和采样宽度等信息:

import wave

# 打开声音文件
wav_file = wave.open('example.wav', 'rb')

# 获取采样率
sample_rate = wav_file.getframerate()

# 获取采样宽度
sample_width = wav_file.getsampwidth()

# 获取声道数
channels = wav_file.getnchannels()

# 获取音频总帧数
frames = wav_file.getnframes()

然后,使用pyaudio模块创建一个PyAudio实例,然后打开一个音频流:

import pyaudio

# 创建PyAudio实例
audio = pyaudio.PyAudio()

# 打开音频流
stream = audio.open(format=audio.get_format_from_width(sample_width),
                    channels=channels,
                    rate=sample_rate,
                    output=True)

最后,从音频文件中读取音频数据,并将其写入音频流中:

# 从文件中读取音频数据
data = wav_file.readframes(frames)

# 写入音频流中
stream.write(data)

# 关闭音频流和PyAudio实例
stream.stop_stream()
stream.close()
audio.terminate()
完整的示例代码
import pyaudio
import wave

# 打开声音文件
wav_file = wave.open('example.wav', 'rb')

# 获取采样率
sample_rate = wav_file.getframerate()

# 获取采样宽度
sample_width = wav_file.getsampwidth()

# 获取声道数
channels = wav_file.getnchannels()

# 获取音频总帧数
frames = wav_file.getnframes()

# 创建PyAudio实例
audio = pyaudio.PyAudio()

# 打开音频流
stream = audio.open(format=audio.get_format_from_width(sample_width),
                    channels=channels,
                    rate=sample_rate,
                    output=True)

# 从文件中读取音频数据
data = wav_file.readframes(frames)

# 写入音频流中
stream.write(data)

# 关闭音频流和PyAudio实例
stream.stop_stream()
stream.close()
audio.terminate()

现在,你已经知道如何使用Python播放音频片段了。