Skip to content

feat(stage-ui): add GPT-SoVITS speech provider support#1577

Open
orangeZSCB wants to merge 3 commits intomoeru-ai:mainfrom
orangeZSCB:main
Open

feat(stage-ui): add GPT-SoVITS speech provider support#1577
orangeZSCB wants to merge 3 commits intomoeru-ai:mainfrom
orangeZSCB:main

Conversation

@orangeZSCB
Copy link
Copy Markdown

@orangeZSCB orangeZSCB commented Apr 5, 2026

Summary

feat(stage-ui): add GPT-SoVITS speech provider support

Description

  • add GPT-SoVITS as a configurable speech provider in AIRI settings
  • add provider-specific settings UI and i18n entries for base URL, reference audio, prompt language, text language, and model weight switching
  • add Electron-side fetch proxy so remote GPT-SoVITS health checks and speech generation work in desktop without renderer CORS failures

Notes

  • GPT-SoVITS integration targets api_v2.py style endpoints (api_v2.py provided by GPT-SoVITS original repo)
  • health check validates service availability through /set_gpt_weights
    • model switching is handled through GPT/SoVITS weight path endpoints instead of standard model selection

Validation

  • pnpm typecheck ✅
  • pnpm lint ❌ (repository has pre-existing unrelated lint errors outside this change set)

Linked Issues

#532 #1360

## Summary
- add GPT-SoVITS as a configurable speech provider in AIRI settings
- add provider-specific settings UI and i18n entries for base URL, reference audio, prompt language, text language, and model weight switching
- add Electron-side fetch proxy so remote GPT-SoVITS health checks and speech generation work in desktop without renderer CORS failures

## Notes
- GPT-SoVITS integration targets api_v2.py style endpoints (api_v2.py provided by GPT-SoVITS original repo)
- health check validates service availability through /set_gpt_weights
  - model switching is handled through GPT/SoVITS weight path endpoints instead of standard model selection

## Validation
- pnpm typecheck ✅
- pnpm lint ❌ (repository has pre-existing unrelated lint errors outside this change set)
@orangeZSCB
Copy link
Copy Markdown
Author

orangeZSCB commented Apr 5, 2026

oh hell that i didnt notice some project can convert GPT-SoVITS to OpenAI format or something, but me did this feature, feeling that im a dumb

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c065fe6921

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread apps/stage-tamagotchi/src/main/windows/settings/rpc/index.electron.ts Outdated
Comment thread packages/stage-ui/src/stores/providers.ts Outdated
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the gpt-sovits speech provider, featuring a new configuration UI and store integration. It also adds an Electron-based fetch service to facilitate IPC-driven network requests for binary data. The review feedback points out a bug in header handling for Headers instances and requests the removal of several debug console.log statements within the provider validation functions.

Comment thread packages/stage-ui/src/stores/providers.ts Outdated
Comment thread packages/stage-ui/src/stores/providers.ts Outdated
Comment thread packages/stage-ui/src/stores/providers.ts Outdated
@orangeZSCB
Copy link
Copy Markdown
Author

f why there is so many ai

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a89a8d3bce

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread nix/assets-hash.txt
@@ -1 +0,0 @@
sha256-69tCpJaxRUnyR9CrHlmWJWEWLDpYzyzska7ui9++QoY=
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore non-empty Nix asset hash

This change clears nix/assets-hash.txt, but the Nix package definition reads this file as outputHash (checked in nix/common.nix). outputHash must be a valid SRI hash, so an empty string causes Nix builds/evaluation for this derivation to fail, breaking packaging/release flows that use the Nix build path.

Useful? React with 👍 / 👎.

Comment on lines +1295 to +1297
if (!config.baseUrl) {
return { errors: [new Error('Base URL is required')], reason: 'Base URL is required', valid: false }
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require GPT-SoVITS refAudioPath during validation

The GPT-SoVITS validator only gates on baseUrl, so this provider can be marked configured even when refAudioPath is missing. In the same provider implementation, the TTS request always sends ref_audio_path from config (defaulting to an empty string), which means runtime synthesis can fail immediately despite passing configuration checks. This should be validated up front to avoid false-positive readiness.

Useful? React with 👍 / 👎.

@nekomeowww nekomeowww added bug/providers Some providers aren't working pr-review/ok-to-deploy Pull Request that confirmed to be deploy to either Preview or Prod safe scope/audio-input Scope related to audio input (ASR, Whisper, STT, etc.) pr-review/well-informed Pull Request that well described, with screenshots or tests, or explained well, easier to review scope/providers Scope related to providers we support feature Related to feature and removed bug/providers Some providers aren't working labels Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Related to feature pr-review/ok-to-deploy Pull Request that confirmed to be deploy to either Preview or Prod safe pr-review/well-informed Pull Request that well described, with screenshots or tests, or explained well, easier to review scope/audio-input Scope related to audio input (ASR, Whisper, STT, etc.) scope/providers Scope related to providers we support

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants