#!/usr/bin/env python3
"""
生成所有英文TTS（432句）- 0.7倍速
"""
import sqlite3
import os
import asyncio
import edge_tts

db_path = "\\\\ll\\D\\xtrssvjj\\dpd.db"
tts_dir = "shitu_tts"
if not os.path.exists(tts_dir):
    os.makedirs(tts_dir)

# 明亮、中性的女声
voice = "en-US-AriaNeural"
async def generate_tts(text, output_file, voice, rate="-30%"):
    """生成TTS音频，rate为语速调整，-30%表示0.7倍速"""
    communicate = edge_tts.Communicate(text, voice, rate=rate)
    await communicate.save(output_file)

async def main():
    try:
        conn = sqlite3.connect(db_path)
        cursor = conn.cursor()
        cursor.execute("SELECT idx, en FROM srts WHERE adid = 8281 ORDER BY idx ASC")
        subtitles = cursor.fetchall()

        print(f"生成 {len(subtitles)} 句英文TTS...")

        for idx, en in subtitles:
            output_file = os.path.join(tts_dir, f"tts_line_{idx:03d}.wav")
            
            if idx % 50 == 0:
                print(f"  处理句 {idx}/{len(subtitles)}")
            
            try:
                await generate_tts(en, output_file, voice)
            except Exception as e:
                print(f"  句{idx}错误: {e}")

        conn.close()
        print(f"完成！TTS保存在: {tts_dir}")

    except Exception as e:
        print(f"错误: {e}")

if __name__ == "__main__":
    asyncio.run(main())
