Open-source project
Spr-Aachen/Easy-Voice-Toolkit avatar
Spr-Aachen/Easy-Voice-Toolkit

Easy Voice Toolkit chains slicing, transcription and voice conversion into one GUI

A user-friendly toolkit for voice recgonition/transcription/conversion etc. | 简单易用的语音工具箱

872 stars124 forksPythonGPL-3.0

At a glance

What is it?
Easy Voice Toolkit is a Python toolkit that assembles several open source voice projects into a desktop application with a client and a backend, covering audio processing, recognition, transcription, dataset creation, training and voice conversion. It is built for research and learning, its terms forbid production use, and Linux support is still on the work list.
Who is it for?
Adopt Easy Voice Toolkit when you want the voice conversion workflow of GPT-SoVITS with slicing, transcription and dataset creation attached, and you can work inside its academic-use terms and publish results with the required attribution. Do not adopt it for a production voice service, on Linux today, or when you need a scriptable interface, since the backend is still in progress and the documentation drives you to default parameters.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 44 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

From raw recordings to a converted voice, in one pipeline

Easy Voice Toolkit describes itself as a toolkit based on open source voice projects that provides a variety of automated audio tools. The feature list in the README names six areas: audio processing, voice recognition, voice transcription, dataset creating for voice conversion, model training for voice conversion, and voice conversion itself.

The framing in the README is a pipeline rather than a tool list. Users are invited to pick the pieces they need or to run them in sequence, gradually turning raw audio files into speech models.

That is the practical value. Voice conversion work normally means assembling several scripts: slicing a long recording into utterances, transcribing them, building a dataset from the slices, training on it, and finally running the conversion. The toolkit bundles those steps behind one interface so a beginner can complete a full run without knowing which repository holds which script.

The licence is GPL-3.0 and the primary language is Python, with the project hosted under the Spr-Aachen organisation.

A client, a backend and two ways to run them

The repository layout explains the architecture. There is a client directory and a server directory, with run.py at the top level, a build.bat for Windows packaging, a pyInstaller.spec file, a manifest.json and a requirements.txt.

The developer guide says to start the client and the server by running run.py, so the two halves are launched together. The GUI dependency is a separate package, QEasyWidgets, installed from its own repository. Behind it, the requirements file shows a FastAPI service pinned below 0.112.2 and Gradio in the 4.0 to 4.24 range, which is what a local backend with a browser reachable interface would look like.

Two alternate paths skip the local setup. A ready-to-use portable package for Windows x64 is published as a 7z archive on Hugging Face, and a Google Colab demo is available through run.ipynb in the repository. The Colab route is the one to try first if you only want to see the workflow, since it needs no local environment beyond the notebook.

The dependency list also shows the compute profile. onnxruntime-gpu is installed on every platform except macOS, where plain onnxruntime is used instead, and torchmetrics is capped at 1.5 with peft pinned to 0.10.0. GPU acceleration is the expected path, not an optional extra.

Installing from source and starting the client

The developer guide is short and assumes Python 3.8 or higher. The clone uses the recursive flag because the project carries submodules:

shell
git clone --recurse-submodules https://github.com/Spr-Aachen/Easy-Voice-Toolkit.git

Then move into the directory and install the dependencies:

shell
%cd Easy-Voice-Toolkit

PyTorch is installed separately, with the README pointing at the official site for the command and giving a CUDA 11.8 example:

shell
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118

The project requirements and the GUI dependency follow:

shell
pip install -r requirements.txt
shell
pip install QEasyWidgets

Finally, launch the application:

shell
run.py

The requirements file is long, with audio work through pydub, soundfile, librosa and ffmpeg-python, model work through transformers, peft, x_transformers and modelscope pinned at 1.10.0, and a block of text-to-speech front ends covering English, Chinese and Japanese pronunciations. Install it on a machine where you are willing to accept a large environment.

The upstream projects the toolkit assembles

The acknowledgements section names the projects the implementation leans on: audio-slicer for cutting recordings, VoiceprintRecognition for speaker recognition, whisper for transcription, SRT-to-CSV-and-audio-split for turning subtitle files into audio segments, and GPT-SoVITS for the speech synthesis and conversion side.

GPT-SoVITS is the centre of gravity. The feature list, dataset creating and model training for voice conversion, maps onto what that ecosystem does, and the toolkit's value is the assembly around it rather than a new model.

Whisper explains the transcription and recognition features and, with fast_langdetect and split-lang in the requirements, the language detection path for the dataset step. The subtitle handling project explains why an SRT-to-CSV-and-audio-split dependency appears at all: converting an existing subtitle track into separated audio segments is a shortcut around recording a dataset by hand.

For anyone deciding whether to use the toolkit, this list is the honest answer to what it does differently. The pipeline is the product; the models themselves are the upstream projects, each with its own licence and its own terms.

One dependency deserves a note. pypinyin, jieba_fast, g2p_en, eng_to_ipa, opencc and LangSegment sit side by side in the requirements, so multi-lingual pronunciation work is built into the dataset stage rather than bolted on.

The terms of use are narrower than the GPL

The README carries six terms of use, and they matter more than the licence for anyone planning to publish results.

The first term states that the project is established for academic exchange and communication and learning purposes and is not intended for production environments. The last term asks you to contact the author in advance if you want to use it for anything else.

The publishing terms are specific. Videos built with the toolkit and published on video platforms have to say in the description that voice changing was used and must name the input source of the voice, giving the original video links when the source is someone else's recording. If the input is your own voice or output from another commercial vocal synthesis package, that has to be explained too. You are solely responsible for infringement caused by the input, and the README points out that many commercial synthesis engines forbid being used as an input source for conversion.

Redistribution has a condition as well: if you distribute the code or publish results publicly, including on video platforms, you have to indicate the original author and the code source.

So the practical reading is: research, learning and published demonstrations with attribution are expected, a commercial product is not covered by the stated terms, and the GPL-3.0 licence governs the code itself. That is a licensing fact rather than legal advice, and if your plan falls outside those terms, the README asks for a conversation with the author first.

Windows today, Linux on the list

The platform story is narrow. The packaged application is a Windows x64 portable archive, and the build helper in the repository is build.bat. The work in progress section lists adding support for Linux OS, alongside backend development, so a Linux install is not yet what the project offers even though the Python code itself is portable.

The Windows path has a specific wrinkle worth knowing. The requirements install onnxruntime-gpu everywhere except macOS, and macOS gets onnxruntime instead. Since the package for Windows is x64 only, an ARM64 machine is not covered by the published archive.

The FAQ offers two pieces of practical advice. If the client update or a dependency download keeps failing or errors, use a proxy or switch to the ready-to-use portable package. And if you do not know what to do with the many parameter settings, use the default values.

That second answer is an honest signal about the state of the tool. A toolkit with dozens of exposed parameters and a documentation that points new users at defaults is a research workbench first and a tuned production tool second.

The roadmap in the README is short. The to-do list adds a chatbot with LLM integration and refactors the client in C++ with Qt, which would be a rewrite of the interface layer rather than an incremental improvement.

Editorial conclusion

Adopt Easy Voice Toolkit when you want the voice conversion workflow of GPT-SoVITS with slicing, transcription and dataset creation attached, and you can work inside its academic-use terms and publish results with the required attribution. Do not adopt it for a production voice service, on Linux today, or when you need a scriptable interface, since the backend is still in progress and the documentation drives you to default parameters. Before you install, read the terms of use in the repository README, check that your GPU environment matches the pytorch install command with the cu118 extra index, and confirm that run.py starts the client and the backend on your machine before you build a dataset around it.

Frequently asked questions

How do I install Easy Voice Toolkit?

Install Python 3.8 or higher, clone the repository with the recursive submodule flag, then run pip install -r requirements.txt, pip install QEasyWidgets and start it with run.py. PyTorch is installed separately, and the README suggests the cu118 extra index for a CUDA 11.8 environment.

Can Easy Voice Toolkit be used for a production service?

The terms of use in the README state that the project is for academic exchange, communication and learning, and is not intended for production environments. The terms also ask you to contact the author before using it for any other plan, and require attribution of the original author and code source when you publish results.

Which upstream speech projects does Easy Voice Toolkit build on?

The acknowledgements name audio-slicer, VoiceprintRecognition, whisper, SRT-to-CSV-and-audio-split and GPT-SoVITS. The toolkit's own contribution is the desktop application and the pipeline that connects slicing, transcription, dataset creation, training and conversion.

What should I do if the client update or dependency download fails in Easy Voice Toolkit?

The FAQ says to use a proxy, or to switch to the ready-to-use portable package for Windows. The portable build is published as a 7z archive, and there is also a Google Colab demo based on run.ipynb.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. Spr-Aachen/Easy-Voice-Toolkit on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/spr-aachen-easy-voice-toolkit.svg)](https://hysenlabs.com/projects/spr-aachen-easy-voice-toolkit)

Was this useful?