From 423427de9901a48b1b038d1be5aa4408b5fc5eba Mon Sep 17 00:00:00 2001 From: LittleMouse Date: Wed, 5 Nov 2025 11:53:49 +0800 Subject: [PATCH] [update] update model ctx len --- .../models/mode_CosyVoice2-0.5B-ax650.json | 2 +- .../main_cosy_voice/src/main.cpp | 25 +++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/projects/llm_framework/main_cosy_voice/models/mode_CosyVoice2-0.5B-ax650.json b/projects/llm_framework/main_cosy_voice/models/mode_CosyVoice2-0.5B-ax650.json index a4ea966..d04cad3 100644 --- a/projects/llm_framework/main_cosy_voice/models/mode_CosyVoice2-0.5B-ax650.json +++ b/projects/llm_framework/main_cosy_voice/models/mode_CosyVoice2-0.5B-ax650.json @@ -54,7 +54,7 @@ "n_timesteps": 10, "b_use_mmap_load_embed": true, "b_dynamic_load_axmodel_layer": false, - "precompute_len": 100, + "precompute_len": 200, "cmm_size": 1227676, "ext_scripts": [ "tokenizer_CosyVoice2-0.5B-ax650.py", diff --git a/projects/llm_framework/main_cosy_voice/src/main.cpp b/projects/llm_framework/main_cosy_voice/src/main.cpp index 765f91a..a089275 100644 --- a/projects/llm_framework/main_cosy_voice/src/main.cpp +++ b/projects/llm_framework/main_cosy_voice/src/main.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -407,22 +408,36 @@ public: timer time_total; time_total.start(); try { - int llm_ret = 0; - auto llm_thread_func = [this, &text, &prompt_text_embeds, &prompt_speech_embeds, &llm_ret]() { + int llm_ret = 0; + std::promise prom; + std::future fut = prom.get_future(); + auto llm_thread_func = [this, &text, &prompt_text_embeds, &prompt_speech_embeds, &llm_ret, &prom]() { llm_ret = lLaMa_->Run(text, prompt_text_embeds, prompt_speech_embeds, g_token_buffer, g_buffer_mutex, g_buffer_cv, g_llm_finished); + prom.set_value(llm_ret); }; std::thread llm_thread(llm_thread_func); llm_thread.detach(); + + if (fut.wait_for(std::chrono::milliseconds(10)) == std::future_status::ready) { + int llm_ret = fut.get(); + if (llm_ret == -1) { + SLOGE("Error, Generate failed"); + if (out_callback_) out_callback_("Error, Generate failed", true); + return llm_ret; + } + } + int prompt_token_len = prompt_speech_embeds_flow.size() / lToken2Wav._attr.flow_embed_size; if (prompt_token_len < 75) { SLOGE("Error, prompt speech token len %d < 75", prompt_token_len); if (llm_thread.joinable()) llm_thread.join(); + if (out_callback_) { + out_callback_("Error, prompt speech token len %d < 75", true); + } return -1; } - if (llm_ret == -1) { - return llm_ret; - } + int prompt_token_align_len = 75; std::vector prompt_speech_embeds_flow1; prompt_speech_embeds_flow1.insert(prompt_speech_embeds_flow1.begin(), prompt_speech_embeds_flow.begin(),