扣子不支持多音频流混音,需通过外部服务用pydub将TTS音频与预处理的背景音精准叠加:裁剪对齐时长、调低背景音24dB后overlay导出,再返回公网URL供扣子播放。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想在扣子智能体里同时用上背景音和TTS语音合成,让输出音频既有旁白又有氛围音效,不是简单叠加而是可控混合——这需要绕过扣子默认的单音频流限制,手动拼接、调节时序与音量。
确认扣子是否支持多音频流
扣子官方不开放并发音频流输出接口,所有技能返回的音频都会被平台自动合并为单一MP3流,且无混音控制权。这意味着直接调用两个TTS技能或一个TTS+一个音效技能,结果只会是后者覆盖前者,或随机截断。
必须放弃“扣子内原生混音”思路,转为本地或服务端后处理。
获取TTS音频与背景音的原始文件
第一步:调用IndexTTS2技能生成纯人声MP3,确保参数中关闭任何内置背景音(如设置background_music=none或留空该字段)。
第二步:单独准备背景音文件,格式必须为MP3或WAV,采样率统一为16kHz、单声道,否则后续混音会失步。推荐使用Audacity导出时勾选“Resample to 16000 Hz”和“Mono”。
【背景音时长必须≥TTS语音时长】,否则混音后会出现静音断层;若背景音过短,需提前循环补足——不能靠混音工具自动延展,会引入爆音。
用Python完成精准混音
方法一:使用pydub(推荐,轻量、精度高)
安装依赖:pip install pydub,并确保系统已安装ffmpeg(Windows需下载ffmpeg.exe放入PATH,macOS用brew install ffmpeg)。
加载两段音频:
from pydub import AudioSegment
tts = AudioSegment.from_file("tts_output.mp3")
bgm = AudioSegment.from_file("bgm.mp3")
裁剪背景音至TTS长度:
bgm = bgm[:len(tts)]
降低背景音音量至-24dB(人声听感清晰的黄金阈值):
bgm = bgm - 24
叠加合成:
mixed = tts.overlay(bgm)
导出为最终MP3:
mixed.export("final_output.mp3", format="mp3", bitrate="128k")
部署到扣子工作流中的实操路径
第一步:在扣子Bot中新增一个「自定义代码」节点,粘贴上述pydub混音逻辑,输入参数设为tts_url和bgm_url(两者均为公网可直链的MP3地址)。
第二步:用HTTP请求分别下载这两个文件(注意加User-Agent头防403),保存为临时文件。
第三步:执行混音→上传至七牛云/阿里OSS等对象存储 → 返回公开URL。
第四步:将该URL作为Bot最终回复的audio字段值,扣子会自动渲染播放器。
注意:扣子服务器不支持ffmpeg或pydub,此代码必须部署在你自己的云函数(如阿里云FC、腾讯云SCF)或VPS上,扣子仅作触发和URL中转。


















