#!/usr/bin/env python3
"""
合成"像专家一样使用AI"全部双语音频（80句）
"""
import os
import subprocess

cn_dir = "ai_expert_audio_full"
tts_dir = "ai_expert_tts_full"
output_dir = "ai_expert_bilingual_full"

if not os.path.exists(output_dir):
    os.makedirs(output_dir)

cn_files = sorted([f for f in os.listdir(cn_dir) if f.endswith('.mp3')])
print(f"找到 {len(cn_files)} 个中文音频片段")

silence_file = "silence_400ms.mp3"
if not os.path.exists(silence_file):
    print("生成400ms静音文件...")
    silence_cmd = [
        "ffmpeg", "-y",
        "-f", "lavfi",
        "-i", "anullsrc=r=48000:cl=stereo",
        "-t", "0.4",
        "-acodec", "libmp3lame",
        "-ab", "128k",
        silence_file
    ]
    subprocess.run(silence_cmd, capture_output=True)

print(f"\n开始合成双语音频片段...")

count = 0
for cn_file in cn_files:
    idx = cn_file.replace('segment_', '').replace('.mp3', '')
    cn_path = os.path.join(cn_dir, cn_file)
    tts_path = os.path.join(tts_dir, f"tts_{idx}.mp3")
    output_path = os.path.join(output_dir, f"bilingual_{idx}.mp3")

    if not os.path.exists(tts_path):
        print(f"  跳过 {idx}: TTS文件不存在")
        continue

    concat_cmd = [
        "ffmpeg", "-y",
        "-i", cn_path,
        "-i", silence_file,
        "-i", tts_path,
        "-filter_complex", "[0:a][1:a][2:a]concat=n=3:v=0:a=1[out]",
        "-map", "[out]",
        "-acodec", "libmp3lame",
        "-ab", "128k",
        output_path
    ]

    result = subprocess.run(concat_cmd, capture_output=True, text=True, encoding='utf-8', errors='ignore')
    
    count += 1
    if count % 50 == 0:
        print(f"  已合成 {count}/{len(cn_files)}")

print(f"\n完成！保存路径: {output_dir}")
