import io import scipy.io.wavfile as wavfile from pydub import AudioSegment def mix_background_music(original_audio, 背景音乐, TTS_up, bg_up): original_audio = original_audio + TTS_up ori_out = io.BytesIO() original_audio.export(ori_out, format="mp3") ori_out.seek(0) original_audio_bytes = ori_out.read() if 背景音乐 is None: # 没有背景音乐 return original_audio_bytes, None else: # 有背景音乐 # 读取用户上传的背景音乐文件 wav_io = io.BytesIO() wavfile.write(wav_io, 背景音乐[0], 背景音乐[1]) wav_io.seek(0) background_music = AudioSegment.from_wav(wav_io) background_music = background_music + bg_up # 将背景音乐合并到原始音频中 combined = original_audio.overlay(background_music) # 使用BytesIO导出合并后的音频为字节串 mix_out = io.BytesIO() combined.export(mix_out, format="mp3") mix_out.seek(0) # 重置指针到开始位置 combined_audio_bytes = mix_out.read() return original_audio_bytes, combined_audio_bytes