File size: 1,143 Bytes
446c342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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