Python 实时调整音频声道音量:左声道 1% 到 100%,右声道 100% 到 1%
以下是实现该功能的 Python 代码:
import pyaudio
import wave
import numpy as np
# 读取音频文件
wav_file = wave.open('1.mp3', 'rb')
# 配置PyAudio
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wav_file.getsampwidth()),
channels=2,
rate=wav_file.getframerate(),
output=True)
# 设置左声道和右声道的音量变化范围
left_min, left_max = 0.01, 1.0
right_min, right_max = 1.0, 0.01
# 每次读取的音频帧数
chunk = 1024
# 读取音频文件并播放
data = wav_file.readframes(chunk)
while len(data) > 0:
# 将音频数据转换为numpy数组
audio_data = np.frombuffer(data, dtype=np.int16)
# 将左声道和右声道的音量分别设置为不同的值
left_channel = audio_data[::2] * (left_max - left_min) + left_min
right_channel = audio_data[1::2] * (right_max - right_min) + right_min
# 将左声道和右声道合并为一个数组
mixed_channel = np.column_stack((left_channel, right_channel)).flatten().astype(np.int16)
# 将处理后的音频数据写入PyAudio的输出流并播放
stream.write(mixed_channel.tobytes())
data = wav_file.readframes(chunk)
# 关闭PyAudio和音频文件
stream.stop_stream()
stream.close()
p.terminate()
wav_file.close()
原文地址: https://www.cveoy.top/t/topic/owKs 著作权归作者所有。请勿转载和采集!