How to Turn Text Into Your Own Voice for Free on Windows
You can run Chatterbox TTS on your Windows PC, give it a short recording of your voice, and generate narration through a local browser interface. The setup takes some command-line work, but you only need to do it once.
This guide uses the open-source Chatterbox project from Resemble AI and my Chatterbox Voice Studio interface. The interface adds microphone recording, audio trimming, long-script support, voice controls, playback, and downloadable WAV files.
I tested this process on Windows 11 with Python 3.11, an NVIDIA RTX 3060 Ti with 8 GB of VRAM, driver 560.94, PyTorch 2.6.0 using the CUDA 12.6 wheel, and Gradio 6.8. Treat that as a confirmed configuration, not a universal minimum. Other NVIDIA systems may behave differently.
What you need before starting
Install Python 3.11 and Git for Windows. You also need a compatible NVIDIA graphics driver. This tutorial uses GPU acceleration and the interface will stop if PyTorch cannot detect CUDA.
You do not necessarily need the full standalone CUDA Toolkit. The PyTorch wheel installed below contains the required CUDA runtime. Your NVIDIA driver still needs to be compatible with it.
1. Download the Chatterbox interface
Open PowerShell and run:
git clone https://github.com/nishatoma/chatterbox-ui.git
cd chatterbox-ui
The first command downloads the project. The second moves PowerShell into its folder so the remaining commands run in the right place.
2. Create a Python environment
Create and activate a dedicated Python 3.11 environment:
py -3.11 -m venv .venv
Set-ExecutionPolicy -Scope Process Bypass
.\.venv\Scripts\Activate.ps1
A virtual environment keeps Chatterbox and its dependencies separate from your other Python projects. The execution-policy command only applies to the current PowerShell window and allows its activation script to run.
Next, update the basic installation tools:
python -m pip install --upgrade pip setuptools wheel
3. Install the CUDA-enabled version of PyTorch
Install the exact PyTorch combination used in the tested setup:
python -m pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu126
The cu126 package is the CUDA 12.6 build. These versions remain listed in PyTorch’s official installation archive. They are pinned here because this combination was tested with the interface.
Now install Chatterbox from its official repository:
python -m pip install git+https://github.com/resemble-ai/chatterbox.git
4. Confirm that PyTorch can use your GPU
An NVIDIA driver can be working while Python is still using a CPU-only PyTorch package. Check before launching the interface:
python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
A successful result should resemble:
PyTorch: 2.6.0+cu126
CUDA: True
GPU: NVIDIA GeForce RTX 3060 Ti
Your GPU name may differ. The important line is CUDA: True. If it says False, confirm that the virtual environment is active, update your NVIDIA driver if needed, and reinstall the CUDA-enabled PyTorch command above.
5. Launch Chatterbox Voice Studio
Open the project folder in File Explorer and double-click START_UI.bat. You can also start it from PowerShell:
.\.venv\Scripts\python.exe app.py
Keep the terminal window open. The interface should open at http://127.0.0.1:7860. That address points back to your own computer. The app binds to 127.0.0.1 and does not create a public Gradio sharing link.
The first launch may take longer because Chatterbox must download its model files. After that, your reference recordings and generated WAV files remain local. Finished generations are also saved in the project’s outputs folder.
6. Record a useful voice reference
You can record through your microphone or upload an existing file. Aim for one clean 10-to-15-second section with:
- one speaker;
- little silence at the beginning or end;
- no music, clipping, or strong echo; and
- the pace and energy you want in the generated narration.
Chatterbox Turbo requires more than five seconds of reference audio. Uploading several minutes does not train the model or automatically improve the result. Its conditioning code uses short windows near the beginning of the clip, so a clean excerpt is more useful than a long recording.
The waveform editor lets you trim an uploaded recording inside the browser. Keep the clearest section and remove dead air.
If an M4A file cannot be read
During testing, a two-minute M4A file produced a “Could not read the reference audio” error. The duration was not the main problem. The audio container and decoder path were.
The current interface asks Gradio to convert uploads to WAV with format="wav". You can upload M4A or MP3 files directly, then trim the converted audio. If you are adapting an older interface, make sure it performs this conversion before passing the reference to Chatterbox.
7. Generate narration in your voice
Paste your script, choose your reference recording, and select Generate my voice. The interface breaks long scripts into sentence-aware sections, joins the audio, adds your chosen pause between sections, and produces a downloadable WAV file.
For conversational narration, try this starting preset:
| Control | Starting value |
|---|---|
| Creativity / temperature | 0.85 |
| Sampling range / top-p | 0.97 |
| Repetition control | 1.10 |
| Pause between sections | 150 ms |
Lower temperature usually sounds steadier, although it can become flat. Higher temperature adds vocal variation but also raises the chance of unstable delivery or pronunciation mistakes. A higher top-p allows more variation, while an excessive repetition penalty can make rhythm and pronunciation awkward.
The pause slider only adds silence between sections created by the application. It does not improve the delivery inside a section.
How to fix robotic or start-stop speech
My first long generation sounded robotic even though the voice itself was recognizable. The script contained a blank line after almost every sentence, so roughly 1,800 words became 215 separate generations. Chatterbox restarted its cadence each time. A 300-millisecond pause also added about 64 seconds of artificial silence.
Keep related sentences together in normal paragraphs. Use blank lines only when the topic or delivery should genuinely change. Punctuation matters too: commas, periods, and sentence length help the model infer how a thought should flow.
Before spending an hour moving sliders, improve these four things:
- Use a clean reference with the delivery you want to reproduce.
- Remove long silence and background sound.
- Group related sentences into complete paragraphs.
- Generate a short test and adjust one control at a time.
A note for anyone modifying an older Gradio interface
An earlier version of the UI failed in Gradio 6.8 with this error:
TypeError: Textbox.__init__() got an unexpected keyword argument 'show_copy_button'
Gradio 6.8 uses buttons=["copy"] for the textbox. Theme and CSS arguments also belong in launch() rather than the Blocks constructor. The current repository already includes these fixes, so you should not need to edit anything after cloning it.
Use voice cloning responsibly
Only clone a voice you own or have explicit permission to use. Resemble AI states that Chatterbox places an imperceptible PerTh watermark in generated audio. A local interface is useful for privacy and control, but it should not be used to impersonate someone or hide the origin of synthetic audio.
Once the installation is working, your normal workflow is simple: launch START_UI.bat, add a clean reference, paste a well-formatted script, generate, and download the WAV. The quality usually improves more from a better reference and better paragraph structure than from endless parameter changes.