diff --git a/README.md b/README.md index 150700f..4b40b46 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,6 @@ make -j$(nproc) ## Building -### Linux / macOS ```bash git clone https://github.com/IMbackK/aceradio.git cd aceradio @@ -37,29 +36,6 @@ cmake .. make -j$(nproc) ``` -### Windows (Qt6 + CMake) - -To build on Windows, ensure you have **CMake** and **Qt6** installed. Run the following commands in **Command Prompt (cmd)** or **PowerShell**: - -1. **Configure and Build:** -```cmd -git clone https://github.com/IMbackK/aceradio.git -cd aceradio -mkdir build -cmake -B build -DCMAKE_PREFIX_PATH="C:/Qt/6.x.x/msvc2019_64" - -# Use --parallel to build using all CPU cores -# Or use -j N (e.g., -j 4) to limit the number of threads -cmake --build build --config Release --parallel -``` -Note: Replace C:/Qt/6.x.x/msvc2019_64 with your actual Qt installation path. - -2. **Deploy Dependencies:** -Run windeployqt to copy necessary Qt libraries to the build folder: -```cmd -"C:\Qt\6.x.x\msvc2019_64\bin\windeployqt.exe" --no-translations build\Release\aceradio.exe -``` - ## Setup Paths: Go to settings->Ace Step->Model Paths and add the paths to the acestep.cpp binaries the models. diff --git a/src/AceStepWorker.cpp b/src/AceStepWorker.cpp index 6dce972..836a904 100644 --- a/src/AceStepWorker.cpp +++ b/src/AceStepWorker.cpp @@ -18,14 +18,14 @@ AceStep::AceStep(QObject* parent): QObject(parent) connect(&ditVaeProcess, &QProcess::finished, this, &AceStep::ditProcFinished); } -bool AceStep::isGenerating(SongItem* song) +bool AceStep::isGenerateing(SongItem* song) { if(!busy && song) *song = this->request.song; return busy; } -void AceStep::cancelGeneration() +void AceStep::cancleGenerateion() { qwenProcess.blockSignals(true); qwenProcess.terminate(); @@ -39,7 +39,7 @@ void AceStep::cancelGeneration() progressUpdate(100); if(busy) - generationCanceled(request.song); + generationCancled(request.song); busy = false; } @@ -50,18 +50,18 @@ bool AceStep::requestGeneration(SongItem song, QString requestTemplate, QString { if(busy) { - qWarning()<<"Dropping song:"<generate(), aceStepPath, textEncoderModelPath, ditModelPath, vaeModelPath}; - QString qwen3Binary = aceStepPath + "/ace-lm" + EXE_EXT; + QString qwen3Binary = aceStepPath + "/ace-qwen3"; QFileInfo qwen3Info(qwen3Binary); if (!qwen3Info.exists() || !qwen3Info.isExecutable()) { - generationError("ace-lm binary not found at: " + qwen3Binary); + generationError("ace-qwen3 binary not found at: " + qwen3Binary); busy = false; return false; } @@ -136,16 +136,16 @@ void AceStep::qwenProcFinished(int code, QProcess::ExitStatus status) if(code != 0) { QString errorOutput = qwenProcess.readAllStandardError(); - generationError("ace-lm exited with code " + QString::number(code) + ": " + errorOutput); + generationError("dit-vae exited with code " + QString::number(code) + ": " + errorOutput); busy = false; return; } - QString ditVaeBinary = request.aceStepPath + "/ace-synth" + EXE_EXT; + QString ditVaeBinary = request.aceStepPath + "/dit-vae"; QFileInfo ditVaeInfo(ditVaeBinary); if (!ditVaeInfo.exists() || !ditVaeInfo.isExecutable()) { - generationError("ace-synth binary not found at: " + ditVaeBinary); + generationError("dit-vae binary not found at: " + ditVaeBinary); busy = false; return; } @@ -153,7 +153,7 @@ void AceStep::qwenProcFinished(int code, QProcess::ExitStatus status) request.requestLlmFilePath = tempDir + "/request_" + QString::number(request.uid) + "0.json"; if (!QFileInfo::exists(request.requestLlmFilePath)) { - generationError("ace-lm failed to create enhanced request file "+request.requestLlmFilePath); + generationError("ace-qwen3 failed to create enhaced request file "+request.requestLlmFilePath); busy = false; return; } @@ -175,13 +175,12 @@ void AceStep::qwenProcFinished(int code, QProcess::ExitStatus status) } } - // Step 2: Run ace-synth to generate audio + // Step 2: Run dit-vae to generate audio QStringList ditVaeArgs; ditVaeArgs << "--request"<progressBar, &QProgressBar::setValue); @@ -102,7 +102,7 @@ MainWindow::MainWindow(QWidget *parent) MainWindow::~MainWindow() { - aceStep->cancelGeneration(); + aceStep->cancleGenerateion(); autoSavePlaylist(); saveSettings(); @@ -523,7 +523,7 @@ void MainWindow::ensureSongsInQueue(bool enqeueCurrent) SongItem lastSong; SongItem workerSong; - if(aceStep->isGenerating(&workerSong)) + if(aceStep->isGenerateing(&workerSong)) lastSong = workerSong; else if(!generatedSongQueue.empty()) lastSong = generatedSongQueue.last(); @@ -553,7 +553,7 @@ void MainWindow::ensureSongsInQueue(bool enqeueCurrent) void MainWindow::flushGenerationQueue() { generatedSongQueue.clear(); - aceStep->cancelGeneration(); + aceStep->cancleGenerateion(); isGeneratingNext = false; } diff --git a/src/SongDialog.cpp b/src/SongDialog.cpp index c63b171..13a1fa9 100644 --- a/src/SongDialog.cpp +++ b/src/SongDialog.cpp @@ -24,56 +24,14 @@ SongDialog::SongDialog(QWidget *parent, const QString &caption, const QString &l // Setup vocal language combo box ui->vocalLanguageCombo->addItem("--", ""); // Unset ui->vocalLanguageCombo->addItem("English (en)", "en"); - ui->vocalLanguageCombo->addItem("Chinese (zh)", "zh"); - ui->vocalLanguageCombo->addItem("Japanese (ja)", "ja"); - ui->vocalLanguageCombo->addItem("Korean (ko)", "ko"); - ui->vocalLanguageCombo->addItem("Spanish (es)", "es"); - ui->vocalLanguageCombo->addItem("French (fr)", "fr"); ui->vocalLanguageCombo->addItem("German (de)", "de"); + ui->vocalLanguageCombo->addItem("French (fr)", "fr"); + ui->vocalLanguageCombo->addItem("Spanish (es)", "es"); + ui->vocalLanguageCombo->addItem("Japanese (ja)", "ja"); + ui->vocalLanguageCombo->addItem("Chinese (zh)", "zh"); + ui->vocalLanguageCombo->addItem("Italian (it)", "it"); ui->vocalLanguageCombo->addItem("Portuguese (pt)", "pt"); ui->vocalLanguageCombo->addItem("Russian (ru)", "ru"); - ui->vocalLanguageCombo->addItem("Italian (it)", "it"); - ui->vocalLanguageCombo->addItem("Arabic (ar)", "ar"); - ui->vocalLanguageCombo->addItem("Azerbaijani (az)", "az"); - ui->vocalLanguageCombo->addItem("Bulgarian (bg)", "bg"); - ui->vocalLanguageCombo->addItem("Bengali (bn)", "bn"); - ui->vocalLanguageCombo->addItem("Catalan (ca)", "ca"); - ui->vocalLanguageCombo->addItem("Czech (cs)", "cs"); - ui->vocalLanguageCombo->addItem("Danish (da)", "da"); - ui->vocalLanguageCombo->addItem("Greek (el)", "el"); - ui->vocalLanguageCombo->addItem("Persian (fa)", "fa"); - ui->vocalLanguageCombo->addItem("Finnish (fi)", "fi"); - ui->vocalLanguageCombo->addItem("Hebrew (he)", "he"); - ui->vocalLanguageCombo->addItem("Hindi (hi)", "hi"); - ui->vocalLanguageCombo->addItem("Croatian (hr)", "hr"); - ui->vocalLanguageCombo->addItem("Haitian Creole (ht)", "ht"); - ui->vocalLanguageCombo->addItem("Hungarian (hu)", "hu"); - ui->vocalLanguageCombo->addItem("Indonesian (id)", "id"); - ui->vocalLanguageCombo->addItem("Icelandic (is)", "is"); - ui->vocalLanguageCombo->addItem("Latin (la)", "la"); - ui->vocalLanguageCombo->addItem("Lithuanian (lt)", "lt"); - ui->vocalLanguageCombo->addItem("Malay (ms)", "ms"); - ui->vocalLanguageCombo->addItem("Nepali (ne)", "ne"); - ui->vocalLanguageCombo->addItem("Dutch (nl)", "nl"); - ui->vocalLanguageCombo->addItem("Norwegian (no)", "no"); - ui->vocalLanguageCombo->addItem("Punjabi (pa)", "pa"); - ui->vocalLanguageCombo->addItem("Polish (pl)", "pl"); - ui->vocalLanguageCombo->addItem("Romanian (ro)", "ro"); - ui->vocalLanguageCombo->addItem("Sanskrit (sa)", "sa"); - ui->vocalLanguageCombo->addItem("Slovak (sk)", "sk"); - ui->vocalLanguageCombo->addItem("Serbian (sr)", "sr"); - ui->vocalLanguageCombo->addItem("Swedish (sv)", "sv"); - ui->vocalLanguageCombo->addItem("Swahili (sw)", "sw"); - ui->vocalLanguageCombo->addItem("Tamil (ta)", "ta"); - ui->vocalLanguageCombo->addItem("Telugu (te)", "te"); - ui->vocalLanguageCombo->addItem("Thai (th)", "th"); - ui->vocalLanguageCombo->addItem("Tagalog (tl)", "tl"); - ui->vocalLanguageCombo->addItem("Turkish (tr)", "tr"); - ui->vocalLanguageCombo->addItem("Ukrainian (uk)", "uk"); - ui->vocalLanguageCombo->addItem("Urdu (ur)", "ur"); - ui->vocalLanguageCombo->addItem("Vietnamese (vi)", "vi"); - ui->vocalLanguageCombo->addItem("Cantonese (yue)", "yue"); - ui->vocalLanguageCombo->addItem("Unknown", "unknown"); // Set current language if provided if (!vocalLanguage.isEmpty()) diff --git a/src/SongItem.h b/src/SongItem.h index 71f7af8..d64f041 100644 --- a/src/SongItem.h +++ b/src/SongItem.h @@ -21,7 +21,7 @@ public: inline SongItem(const QString &caption = "", const QString &lyrics = "") : caption(caption), lyrics(lyrics) { - // Generate a unique ID using a cryptographically secure random number + // Generate a unique ID using cryptographically secure random number uniqueId = QRandomGenerator::global()->generate64(); } };