Skip to content

Repository files navigation

MaidWhisper Banner

MaidWhisper

A system-level Select-to-Speak desktop reader that brings your favorite characters to life with their own voices while you read.

Latest Release License: GPL-3.0 Platform: Windows 10+ GPT-SoVITS Compatible Stars Status

English · 繁體中文 · 简体中文


Important

MaidWhisper is preparing for its first Public Beta. Features, installation workflows, and GPT-SoVITS integration may still be adjusted during the beta period. We recommend reading the System Requirements, GPT-SoVITS Guide, and Disclaimer before testing.

Caution

An NVIDIA GPU is strongly recommended. GPT-SoVITS can run on some CPU-only systems, but voice synthesis is usually extremely slow, making daily reading almost unusable. If you want to use MaidWhisper as a real-time, system-level Select-to-Speak tool, please prepare an NVIDIA GPU capable of running GPT-SoVITS, adequate VRAM, and a compatible CUDA / PyTorch environment.


Table of Contents


What Is MaidWhisper?

MaidWhisper is a Windows Select-to-Speak desktop tool with real-time voice synthesis powered by a GPT-SoVITS backend.

Instead of building another complex WebUI, its goal is to transform GPT-SoVITS into a seamless, system-level reading companion for daily use: select text in any window, press a global hotkey, and a floating control panel immediately handles reading, character switching, language selection, and lyrics synchronization.

MaidWhisper is ideal for reading light novels, web pages, documents, chat logs, and long-form text. It is designed for users who want to enjoy reading with familiar character voices without having to manually copy text, launch a WebUI, switch models, and send synthesis requests every single time.

Select Text → Global Hotkey → Language Detection → (Optional LLM Preprocessing) → Segmentation → GPT-SoVITS Synthesis → Playback + Lyrics Sync

Why MaidWhisper?

Key Highlight Description
System-Level Global Trigger Trigger directly via hotkey from browsers, e-readers, documents, chat apps, or any window with selectable text.
Floating Control Panel No need to switch back to the main window; character, language, tone, speed, volume, and playback state are centralized in a lightweight panel.
Effortless Character Switching Centralized management of multi-character, multi-language, and multi-tone configurations for quick voice switching during reading.
Designed for Daily Use Supports instant reading upon text capture, as well as text staging and previewing before playback—ideal for long reading sessions.
No Tedious WebUI Operations GPT-SoVITS handles synthesis while MaidWhisper automates text capture, model selection, segmentation, playback, and lyrics sync.
Real-Time Playback Experience Segmented synthesis and pre-buffered playback reduce waiting times, integrating voice generation smoothly into your reading workflow.
User-Friendly for Everyone Installer with optional GPT-SoVITS backend setup, settings persistence, tray controls, status alerts, and FAQ guide non-developers through configuration step by step.

Preview

Quick Demo

Japanese Reading Quick Demo
Select text, press hotkey, and read aloud with character voice
AI Translate Reading Quick Demo
AI translates text into character language before reading

Panel Preview

Floating Playback Panel
Floating Playback Control Panel
Lyrics Synchronization Panel
Lyrics Sync and Click-to-Jump

Interface Screenshots

General Settings Page
General Settings
Playback & Backend Settings Page
Playback & GPT-SoVITS Backend
Character Model Settings Page
Character, Language & Tone Models
LLM Settings Page
AI Persona & Translation
System Settings Page
System Integration, Hotkeys & UI Language

Voice Samples

Demo Audio File
Character Voice Demo 1 DemoVoice_1.wav
Character Voice Demo 2 DemoVoice_2.wav
Character Voice Demo 3 DemoVoice_3.wav
Character Voice Demo 4 DemoVoice_4.wav
Character Voice Demo 5 DemoVoice_5.wav

Demo audio files are provided solely to demonstrate MaidWhisper's reading workflow and audio quality. Actual output will vary depending on your GPT-SoVITS models, reference audio, synthesis speed, and playback settings.


Main Features

Core Reading Experience

  • System-Level Global Hotkeys: Trigger after selecting text in any desktop application without switching windows or launching a WebUI.
  • Floating Control Panel: Compact floating panel for quick control over character, language, tone, speed, volume, and playback state.
  • Clickable Lyrics Sync: Segmented text display supporting click-to-jump navigation, manual scrolling, and auto-centering on active segments.
  • Reading Staging & Preview: Option to disable "Auto-read on Capture", allowing text staging and previewing before generating audio.
  • Daily Reading Workflow: Panel position memory, tray operations, and hotkey design make it feel like an OS system utility rather than a one-time generator.

Characters & Models

  • Multi-language GPT-SoVITS models, reference audio, and reference text per character profile.
  • Independent speed and temperature controls per language profile.
  • Automatic input language detection and profile auto-switching (optional).
  • Floating panel filters to display only fully configured character / language / tone models.

Optional AI Features

  • AI Character Persona: Rewrites text to match character speaking styles (Conservative / Natural / Expressive / Free).
  • AI Translation: Translates text into the target character language (supports Traditional or Simplified Chinese preferences).
  • Smart Skip: Automatically skips LLM calls when the input language matches target language and no style adjustment is required.

Desktop Integration

  • Automatic GPT-SoVITS idle release and auto-wake before reading starts.
  • System Tray integration, startup options, Always-on-Top, and decoupled main window / floating panel.
  • Multi-language UI support (i18n).
  • Panel geometry and playback preference persistence.
  • Secure API key storage using Windows Credential Manager (never stored in config JSON files).

System Requirements

Item Requirement
Operating System Windows 10 or later
GPU / VRAM NVIDIA GPU Recommended; CPU-only synthesis is theoretically supported but usually very slow.
GPT-SoVITS Model SoVITS .pth · GPT .ckpt · Reference Audio · Matching Reference Text
LLM (Optional) AI Persona / AI Translation require an API key from a compatible LLM provider.

Project Status

MaidWhisper is currently preparing for its first Public Beta. Core reading pipelines, floating panels, character model management, LLM preprocessing, GPT-SoVITS runtime integration, and the Windows installer have entered integration testing.

Key Beta Goals:

  • Validate that end users can complete installation, configure character models, and begin reading.
  • Continuously refine GPT-SoVITS startup, release, model switching, and error handling.
  • Finalize READMEs, FAQ, Release Checklist, and Known Issues documentation.
  • Collect compatibility feedback across diverse GPU hardware, model versions, and GPT-SoVITS environments.

We prioritize local workflow stability, maintainability, and clarity over bundling built-in models or cloud service dependencies.


Quick Start

Prerequisites

MaidWhisper handles "text capture, floating panel control, character switching, playback, and lyrics sync." Voice generation itself is powered by GPT-SoVITS, so before starting for the first time, prepare:

  • MaidWhisper Installer.
  • Executable GPT-SoVITS API environment.
  • At least one set of character model files: SoVITS .pth, GPT .ckpt, reference audio, and reference text.

Once the Public Beta is released, download the latest MaidWhisper-*-Setup.exe from GitHub Releases and launch the setup program.

You may select the optional Install GPT-SoVITS checkbox during setup. If selected, the installer will download and configure a MaidWhisper-managed GPT-SoVITS backend environment (download and extraction typically takes 5 to 10 minutes depending on network and disk speed).

If your system lacks an NVIDIA GPU, you can still test setup and execution, but expect CPU synthesis to be significantly slower. We recommend testing with short sentences first.

Choose Your Setup Path

Your Situation Recommended Action
First time using GPT-SoVITS Run the Release Setup executable and check Install GPT-SoVITS.
Already have a working GPT-SoVITS No need to reinstall; specify your existing launch script and API URL in Settings.
Only want to read original text Skip LLM settings; add a character model and start reading immediately.
Want translation or AI character voice styling Complete basic setup first, then go to Settings → LLM to enable AI Translation or Persona.

First-Time Configuration

  1. Install and launch MaidWhisper.
  2. If you do not have GPT-SoVITS, check Install GPT-SoVITS during setup and wait for installation to finish.
  3. If you already have GPT-SoVITS, refer to Using Existing / Self-Provided GPT-SoVITS to configure your launch script and API URL.
  4. Go to Settings → Characters and click Add Character.
  5. Under the character profile, add a language and tone, select .pth, .ckpt, reference audio files, and enter the reference text.
  6. Save settings and return to normal usage.

Using Existing / Self-Provided GPT-SoVITS Guide (Important Notes)

If you did not check Install GPT-SoVITS during MaidWhisper setup and plan to use an existing standalone GPT-SoVITS installation, pay close attention to these configuration steps:

Important

1. Launch api_v2.py, NOT webui.py!
MaidWhisper communicates with GPT-SoVITS via HTTP API endpoints. Launching webui.py only starts the browser GUI interface and does not expose TTS API services, causing MaidWhisper connection failures.

2. Port Alignment
api_v2.py defaults to port 9880 (http://127.0.0.1:9880). If your launch script uses a custom port (e.g. -p 9872), update MaidWhisper Settings → General → GPT-SoVITS API URL accordingly.

Step 1: Create an API Launch Script (.bat or .cmd)

Inside your GPT-SoVITS folder, create a .bat file (e.g., start_api_v2.bat):

Option A: Official Standalone Windows Package (with bundled Python runtime)

@echo off
:: Change to GPT-SoVITS root directory
cd /d "%~dp0"

:: Start api_v2.py using the bundled python executable (Default Host: 127.0.0.1, Port: 9880)
runtime\python.exe api_v2.py -a 127.0.0.1 -p 9880
pause

Option B: Conda or Independent Python Environment

@echo off
:: Change to your GPT-SoVITS project directory
cd /d "C:\YourPath\GPT-SoVITS"

:: Activate virtual environment and launch api_v2.py
call conda activate gpt-sovits
python api_v2.py -a 127.0.0.1 -p 9880
pause

Tip

Double-click the .bat file to test. If the terminal shows INFO: Uvicorn running on http://127.0.0.1:9880 or a success startup message, your GPT-SoVITS API is operating properly.

Step 2: Configure Settings in MaidWhisper

  1. Open MaidWhisper ⚙️ Settings → General.
  2. GPT-SoVITS API URL: Set to http://127.0.0.1:9880 (matching your script port).
  3. GPT-SoVITS Launch Script Path: Click Browse and select start_api_v2.bat.
  4. Auto-start GPT-SoVITS: (Optional) Enable this option so MaidWhisper can launch the script automatically when reading is requested and the API is offline.

Basic Usage

  1. Select text in a browser, eBook reader, PDF viewer, chat app, or other software.
  2. Press the global hotkey (default: Alt+Shift+M).
  3. MaidWhisper opens the floating control panel.
  4. Select your desired character, language, and tone.
  5. Click Play (or start playback automatically if "Auto-read on Capture" is enabled).
  6. Click lyrics lines to jump between segments, or switch character voices directly on the floating panel.

Daily usage does not require manually opening the GPT-SoVITS WebUI or pasting text into web forms. MaidWhisper invokes the GPT-SoVITS API on demand and manages text segmentation, voice generation, audio playback, and status feedback seamlessly.

Optional AI Features Setup

AI Character Persona and AI Translation are completely optional. When needed, configure Provider, Model, and API Key under Settings → LLM.

  • Read original text as-is: No LLM configuration required.
  • Translate text into character language: Enable AI Translation.
  • Rewrite text in character tone: Enable AI Persona and enter tone descriptions in character settings.

What Does the Included GPT-SoVITS Option Do?

The installer's GPT-SoVITS option sets up a local API environment managed by MaidWhisper:

  • Downloads the official Windows integrated package.
  • Extracts files to your chosen path.
  • Locates bundled Python and api_v2.py.
  • Generates MaidWhisper-GPT-SoVITS.cmd.
  • Automatically imports launcher paths and API URLs into MaidWhisper.

MaidWhisper only executes the GPT-SoVITS API service—it does not launch training tools or full web interfaces. Model training, audio slicing, labeling, and fine-tuning should still be performed using standard GPT-SoVITS toolchains.

Building from Source

# Build Qt Client following doc/MaidWhisper-System-Design.md
# Launch local Python Server
python server/run_server.py

See Developer Documentation for details.


AI Persona & Translation

LLM preprocessing is an optional feature that does not affect basic GPT-SoVITS voice synthesis pipelines.

Feature Description
AI Character Persona Adjusts text style based on tone descriptions in character settings.
AI Translation Translates input text into the active character language (supports Traditional/Simplified Chinese preferences).
Smart Skip Automatically skips LLM calls if detected text language matches target language and no style rewriting is requested.

API keys are securely stored in Windows Credential Manager and are never written to standard settings JSON files.


Data & Privacy

MaidWhisper operates primarily offline on your local machine. Character profiles, model paths, playback preferences, and audio caches are stored in your local user data directory. GPT-SoVITS voice synthesis is processed by your specified local API.

Text is sent to your configured LLM Provider only when AI Character Persona or AI Translation is enabled. Without LLM features enabled, MaidWhisper requires zero external service calls for reading.

Data Security Standards:

  • LLM API keys are stored in Windows Credential Manager.
  • Configuration JSON files never store API keys.
  • Users maintain full local control over GPT-SoVITS models, reference audio, and synthesized outputs.
  • When using external LLM providers, please consult your provider's privacy and data retention policies.

GPT-SoVITS Resources

Resource Purpose Notes
Official GPT-SoVITS Project Installation, versioning, and model specifications Recommended reading for official documentation
Official Windows Package Quick Windows environment setup Source utilized by the installer's GPT-SoVITS setup option
Hugging Face Model Search Search community-contributed models Verify licenses and sources before downloading
ModelScope Model Search Chinese community models Verify licenses and sources before downloading
GPT-SoVITS Model Collection Curated community model repository Verify model versions, sources, and permissions

Warning

Community models may contain unverified files or unclear license permissions. Only download assets from trusted sources, and verify usage rights for models, audio files, character names, and generated content.


FAQ

Does MaidWhisper include character models?

No. MaidWhisper is a local reading workflow tool. It does not provide, host, or distribute third-party character models or voice assets. You must supply your own compatible .pth, .ckpt, reference audio, and reference text files.

Do I have to install GPT-SoVITS?

Yes. MaidWhisper synthesizes audio via the GPT-SoVITS API. You can either check Install GPT-SoVITS during setup or point MaidWhisper to your existing GPT-SoVITS launcher and API URL.

Does MaidWhisper replace the GPT-SoVITS WebUI?

No. MaidWhisper focuses on daily reading, global hotkeys, floating control panels, and playback workflows. Model training, slicing, labeling, and fine-tuning should still be conducted in standard GPT-SoVITS tools.

Can I use my own pre-existing GPT-SoVITS?

Yes. Specify your .bat / .cmd launch script and GPT-SoVITS API URL in Settings. Make sure to launch api_v2.py instead of webui.py and align port numbers. See Using Existing / Self-Provided GPT-SoVITS Guide.

Can I use CPU only? Is a GPU required?

CPU execution is theoretically possible, but GPT-SoVITS voice synthesis is usually very slow on CPU. For comfortable daily reading, an NVIDIA GPU with proper CUDA / PyTorch environments is strongly recommended.

Are AI Character Persona and AI Translation required?

No. Both are optional LLM preprocessing features. When disabled, MaidWhisper passes selected text directly to segmentation and voice synthesis. External LLM providers are called only when these features are enabled.

Where are API keys stored?

LLM API keys are stored in Windows Credential Manager and are never saved to standard settings JSON files. Only provider names, model names, and non-sensitive settings are stored in configuration files.

Why are some characters or languages missing from the floating panel?

The floating panel only displays fully configured character and language profiles. A complete profile requires model files, reference audio, and reference text to prevent synthesis failures.

Why does switching character, language, or tone sometimes trigger re-synthesis?

Any switch that alters text content, model parameters, voice settings, or segmentation requires reprocessing from the corresponding pipeline stage. If the new selection shares existing cached audio content, MaidWhisper preserves current playback position whenever possible.

Does uninstalling MaidWhisper delete my settings and models?

The uninstaller removes application binaries. User data, settings, models, and audio caches are preserved in your local user data folder to allow seamless reinstallation. To completely remove all data, manually backup and delete the MaidWhisper user data directory.

Can generated audio be published publicly or used commercially?

MaidWhisper provides no licensing for third-party models, character IP, audio files, or generated content. Whether generated audio can be published, monetized, or redistributed depends on your model licenses, asset rights, character copyright, platform terms, and local legal jurisdiction.


Developer Documentation

Document Description
Project Guide Architecture overview, runtime flows, and entry points
System Design Design targets, pipeline contracts, text state, and restart strategies
Development Plan Milestones and TODO items
Runtime Layout Directory structure and path resolution after installation
Release Checklist Pre-release checklist
Release Acceptance Matrix Manual acceptance test matrix
CI/CD & Windows Installer Automated build and release workflows
2026-06-05 Architecture Analysis Pipelines, coupling, data separation, and pre-beta risk assessment
Server API & GPT-SoVITS Bridge Python Server endpoints and bridge documentation
Packaging Guide Installer setup and packaging workflow

AI Voice Generation Disclaimer

MaidWhisper is a local voice generation workflow tool. It does not provide, host, or license third-party character models, voice assets, text content, or LLM services. Users must independently ensure that:

  • You hold or have obtained necessary rights for models, reference audio, text, and character assets.
  • You comply with applicable local laws, model licenses, platform terms, and third-party intellectual property rights.
  • Generated audio is never used for impersonation, fraud, harassment, deception, or unlawful infringement.
  • You accept full responsibility for all audio generated, published, or distributed.

The authors and contributors of this project provide no guarantees and assume no liability for user inputs, third-party models, third-party services, generated outputs, or subsequent downstream usage.


Support Development

Method Address
USDT TRC-20 TXmghw1R9QaQSKGWEWP9ydr1xj8G1MqHrL
ETH ERC-20 0xe7b06b924cbca4b922585a4ccd665cd2c3d0e02c

License

MaidWhisper is released under the GNU General Public License v3.0.


Made with ♥ · Powered by GPT-SoVITS

About

System-level Select-to-Speak desktop reader for GPT-SoVITS character voices.

Topics

Resources

Stars

27 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages