#!/usr/bin/env python3
"""
修复TTS生成错误（句95和句239）
"""
import sqlite3
import asyncio
import edge_tts
import os

db_path = "\\\\ll\\D\\xtrssvjj\\dpd.db"
tts_dir = "shitu_tts"
voice = "en-US-AriaNeural"
async def generate_tts(text, output_file, voice, rate="-30%"):
    """生成TTS音频"""
    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()
        
        # 修复句95
        cursor.execute("SELECT idx, en FROM srts WHERE adid = 8281 AND idx = 95")
        row = cursor.fetchone()
        if row:
            idx, en = row
            output_file = os.path.join(tts_dir, f"tts_line_{idx:03d}.wav")
            print(f"修复句{idx}...")
            await generate_tts(en, output_file, voice)
            print(f"  完成: {output_file}")
        
        # 修复句239
        cursor.execute("SELECT idx, en FROM srts WHERE adid = 8281 AND idx = 239")
        row = cursor.fetchone()
        if row:
            idx, en = row
            output_file = os.path.join(tts_dir, f"tts_line_{idx:03d}.wav")
            print(f"修复句{idx}...")
            await generate_tts(en, output_file, voice)
            print(f"  完成: {output_file}")

        conn.close()
        print("修复完成！")

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

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