以下是实现该功能的 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()
Python 实时调整音频声道音量:左声道 1% 到 100%,右声道 100% 到 1%

原文地址: https://www.cveoy.top/t/topic/owKs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录