{
  "timestamp": 1780793092,
  "room_binding_status": "LIVEKIT_SERVER_READY_TOKEN_GENERATED_ROOM_CONTRACT_ONLY",
  "stt_text": "Mars 測試 M4A-R2，請回覆一句自然中文。",
  "llm_text": "測試完成，M4A-R2 運作正常。",
  "tts_result": {
    "status": "TTS_INVOKED",
    "returncode": 1,
    "tts_script": "/opt/ai-avatar-demo/work/gate7m_a_qwen3_tts_customvoice_smoke.py",
    "tts_input_text": "/opt/ai-avatar-demo/work/gate602_m4a_r2_artifacts/m4a_r2_tts_input_1780793092.txt",
    "stdout_tail": "\n********\nWarning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference.\n********\n \nPre-registered qwen3_tts architecture successfully!\nSCRIPT_FILE= /opt/ai-avatar-demo/work/gate7m_a_qwen3_tts_customvoice_smoke.py\nMODEL_ROOT= /opt/ai-avatar-demo/models/qwen3-tts\nREF_AUDIO= /opt/ai-avatar-demo/data/voice_refs/raw/mandy0526.wav\nOUT_WAV= /opt/ai-avatar-demo/data/tts_outputs/yuka_intro_mandy_clone_gate7m_a.wav\nREF_TEXT_LEN= 22\nCONSENT_ALLOWED_USE= local AI avatar Qwen3-TTS CustomVoice smoke test only\nREF_AUDIO_INFO= /opt/ai-avatar-demo/data/voice_refs/raw/mandy0526.wav\nsamplerate: 32000 Hz\nchannels: 1\nduration: 4.680 s\nformat: WAV (Microsoft) [WAV]\nsubtype: Signed 16 bit PCM [PCM_16]\nTORCH_VERSION= 2.12.0+cu130\nCUDA_AVAILABLE= True\nCUDA_DEVICE_COUNT= 2\nCUDA_DEVICE 0 NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition\nCUDA_DEVICE 1 NVIDIA GeForce RTX 5090\nQWEN_TTS_FILE= /opt/ai-avatar-demo/services/tts/.venv/lib/python3.12/site-packages/qwen_tts/__init__.py\nQWEN_TTS_PUBLIC_ATTRS= ['Qwen3TTSModel', 'Qwen3TTSTokenizer', 'VoiceClonePromptItem']\nHAS_Model= True\nHAS_Tokenizer= True\nHAS_PromptItem= True\nQwen3TTSModel_SIG= (model: qwen_tts.core.models.modeling_qwen3_tts.Qwen3TTSForConditionalGeneration, processor, generate_defaults: Optional[Dict[str, Any]] = None)\nQwen3TTSTokenizer_SIG= ()\nVoiceClonePromptItem_SIG= (ref_code: Optional[torch.Tensor], ref_spk_embedding: torch.Tensor, x_vector_only_mode: bool, icl_mode: bool, ref_text: Optional[str] = None) -> None\nLOAD_MODEL_BEGIN\nLOAD_MODEL_DONE\nGENERATE_BEGIN\nGENERATE_EXCEPTION= ValueError('model with \\ntokenizer_type: qwen3_tts_tokenizer_12hz\\ntts_model_size: 1b7\\ntts_model_type: custom_voice\\ndoes not support generate_voice_clone, Please check Model Card or Readme for more details.')\n",
    "stderr_tail": "Traceback (most recent call last):\n  File \"/opt/ai-avatar-demo/work/gate7m_a_qwen3_tts_customvoice_smoke.py\", line 85, in <module>\n    wavs, sample_rate = model.generate_voice_clone(\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/ai-avatar-demo/services/tts/.venv/lib/python3.12/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/ai-avatar-demo/services/tts/.venv/lib/python3.12/site-packages/qwen_tts/inference/qwen3_tts_model.py\", line 549, in generate_voice_clone\n    raise ValueError(\nValueError: model with \ntokenizer_type: qwen3_tts_tokenizer_12hz\ntts_model_size: 1b7\ntts_model_type: custom_voice\ndoes not support generate_voice_clone, Please check Model Card or Readme for more details.\nTraceback (most recent call last):\n  File \"/opt/ai-avatar-demo/work/gate7m_a_qwen3_tts_customvoice_smoke.py\", line 85, in <module>\n    wavs, sample_rate = model.generate_voice_clone(\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/ai-avatar-demo/services/tts/.venv/lib/python3.12/site-packages/torch/utils/_contextlib.py\", line 124, in decorate_context\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/ai-avatar-demo/services/tts/.venv/lib/python3.12/site-packages/qwen_tts/inference/qwen3_tts_model.py\", line 549, in generate_voice_clone\n    raise ValueError(\nValueError: model with \ntokenizer_type: qwen3_tts_tokenizer_12hz\ntts_model_size: 1b7\ntts_model_type: custom_voice\ndoes not support generate_voice_clone, Please check Model Card or Readme for more details.\n",
    "new_audio_candidates": []
  },
  "audio_publish_status": "NOT_PUBLISHED_TO_LIVEKIT_IN_M4A_R2",
  "next": "M4B should publish selected wav or generated PCM track back to LiveKit room."
}