/**
 * 测试 MiniMax TTS - 使用与应用完全相同的参数
 */
import axios from 'axios';

const KEY1 = 'sk-cp-s8hGJr4ACdlZ4GM0LjZ1l2ZNBUAMGwd2ahl0c3W2g6C0EiNH0UvwOBx2q0oJOYO6ca5HqJccP_KRUPucoBizavlwDSZp-ohOGeUw2ymAdXPuM6r3CIDmmlY';
const KEY2 = 'sk-cp-BOVwOolqOEmHycg8MzDX_UgQ_bDEK3snjPUFuwolUCb_TxMxhhlAfYhTT0_tqRvEz5K56xpl-aOoJtj97MuAY4UIA-PCQLVetUCY56i8LFimNuQqrrq5xWA';

const body = {
  model: 'speech-2.8-hd',
  text: '你好，欢迎使用AI有声书',
  voice_setting: {
    voice_id: 'audiobook_female_1',
    speed: 1,
    vol: 0.02,  // (50/50) / 50 = 0.02? No wait, params.volume is 50 so (50/50) = 1, but volume is 50... hmm
    // Actually in code: vol: (params.volume || 50) / 50 -> 50/50 = 1
    // But params.volume comes from voiceParams?.volume which in generatePreview is undefined
    // So params.volume defaults to 50, then 50/50 = 1
    // But the log shows vol:0.02... that means params.volume must be 1? or 50?
    // Wait: (1 || 50) / 50 = 1/50 = 0.02
    // So voiceParams.volume is 1!
    pitch: 1.002, // 1 + (0 / 500) = 1... but log shows 1.002, so pitch must be 1?
    // 1 + (1 / 500) = 1.002
  },
  audio_setting: {
    audio_sample_rate: 32000,
    bitrate: 128000,
    format: 'mp3',
    channel: 1,
  },
};

async function testKey(name: string, key: string) {
  console.log(`\n===== 测试 ${name} =====`);
  try {
    const resp = await axios.post('https://api.minimaxi.com/v1/t2a_async_v2', body, {
      headers: { 'Authorization': `Bearer ${key}`, 'Content-Type': 'application/json' },
      timeout: 30000,
    });
    console.log('✅ 成功:', JSON.stringify(resp.data));
  } catch (err: any) {
    console.log('❌ 状态:', err.response?.status);
    console.log('❌ 响应:', JSON.stringify(err.response?.data));
  }
}

async function run() {
  console.log('请求体:', JSON.stringify(body, null, 2));
  await testKey('Key1', KEY1);
  await testKey('Key2', KEY2);
}
run();