# Tutorial Video Script: TTS Voice Creator + Qwen3-TTS ## Video Goal Show the value first, then walk through setup with the guided installer. Target length: 12 to 18 minutes. ## Cast - Presenter - Screen recording - Optional second device or narrow browser window for mobile view ## Scene 1: Hook **Visual:** Open TTS Voice Creator on the Voice Clone tab. **Presenter:** Today I am going to show a complete local TTS workflow: record a voice, save it as a Qwen3-TTS voice, route Open WebUI's `default` voice by language, and install the whole stack with a guided installer instead of command-line guesswork. By the end, Open WebUI can say English text with one voice and German text with another, while Open WebUI itself only asks for `default`. ## Scene 2: Feature Overview **Visual:** Click through the main tabs. **Presenter:** The app has four main areas. Voice Clone is where you record or import voice samples. You can trim them, normalize loudness, transcribe the reference text, and save them as active voices. Voice Design is for creating voices from written descriptions. This is useful when you do not have a recording yet. Routing lets an external app send a simple voice name like `default`, and this app maps that to the right output voice by app and language. Use in apps gives copyable setup examples for Open WebUI, SillyTavern, Home Assistant, and curl. ## Scene 3: Record A Voice **Visual:** Voice Clone, Add new voice. **Presenter:** Let us start with recording. I click Add new voice. On the right, I have the microphone recorder. First I choose the read-sample language. The sample text changes automatically, and I can edit it if I want. It is saved per language. Before recording, I click Check level. Now the input meter is live. I adjust mic gain until peaks land around minus eighteen to minus nine dB and never hit red. Now I record the sample, stop, and the waveform appears. ## Scene 4: Trim And Save **Visual:** Use waveform, Auto trim, transcript, save fields. **Presenter:** The app can auto trim the useful speech area. I can also adjust start and end manually. Next I make sure the transcript matches exactly what was spoken. This matters for voice cloning quality. Then I choose language, gender, and a voice ID. When I save, the app writes the WAV and the reference transcript into the active voices folder. After adding voices, restart the Qwen3-TTS clone container so it rescans active voices. ## Scene 5: Routing Demo **Visual:** Routing tab. **Presenter:** Here is the routing system. This is especially helpful for Open WebUI. Instead of teaching Open WebUI every voice, I can let Open WebUI ask for `default`. Then I add rules: Open WebUI, default, English goes to my English voice. Open WebUI, default, German goes to my German voice. Now the creator app receives the TTS request, detects the language, swaps the voice, and forwards the request to Qwen3-TTS. ## Scene 6: Open WebUI Setup **Visual:** Use in apps tab, Open WebUI card. **Presenter:** For Open WebUI with routing, use the creator app as the OpenAI-compatible TTS base URL. The base URL is: `http://YOUR_HOST:7860/v1` The model can be `tts-1`. The voice is `default`. Without routing, point Open WebUI directly to Qwen3-TTS: `http://YOUR_HOST:8020/v1` and use a real voice ID. ## Scene 7: Mobile View **Visual:** Narrow browser or phone view. **Presenter:** The interface also works on mobile. The voice library becomes card-like, the Add Voice controls stack cleanly, and the recording sample has larger touch-friendly controls. This is useful when you want to fix a route, enable a voice, or check a sample from another device. ## Scene 8: Guided Installer Introduction **Visual:** Launch `guided_installer.py`. **Presenter:** Now let us look at setup. The target user does not need to memorize Docker commands. The guided installer checks this computer for Docker, Docker Compose, Portainer, this app, and the Qwen3-TTS services. It explains what each component is for and gives buttons for the common actions. ## Scene 9: Installer Basics **Visual:** Installer Basics tab. **Presenter:** On the Basics tab, I choose the voice library folder, the model folder, the app port, the Docker network, and the Qwen TTS image. The voice folder stores the saved reference voices. The model folder stores the large Qwen model files. Portainer is optional, but for non-command-line users it is very helpful. ## Scene 10: Qwen Model Choices **Visual:** Installer Qwen Models tab. **Presenter:** There are three Qwen-related servers. Voice Clone is the normal production server for recorded voices. Most people should install this. Voice Design creates voices from text descriptions. Install this if you want prompt-based voices. Custom Voice is for Qwen CustomVoice speaker workflows, where named speakers are configured separately. Each service can have its own model location and port. The recommended ports are 8020 for clone, 8021 for Voice Design, and 8022 for Custom Voice. ## Scene 11: Generate And Install **Visual:** Click Generate compose file, then install selected stack. **Presenter:** When the choices look right, I click Generate compose file. This writes a Docker Compose file with the selected services. Then I click Install or update selected stack. The installer creates the Docker network and runs Docker Compose. All output appears in the Log tab, so if something fails, there is a visible error instead of a disappearing terminal window. ## Scene 12: Portainer **Visual:** Portainer button and Portainer UI if available. **Presenter:** If Portainer is selected, the installer can install Portainer too. Portainer gives a browser dashboard for container status, logs, restarts, and updates. This is usually the friendliest maintenance screen for someone who does not like command lines. ## Scene 13: Final End-To-End Test **Visual:** Open WebUI or curl/audio preview. **Presenter:** Now we test the whole chain. Open WebUI sends text to `http://YOUR_HOST:7860/v1`. The creator app receives `voice: default`. The Routing tab maps that to a real voice based on language. Qwen3-TTS generates the audio. Open WebUI plays it back. ## Scene 14: Closing **Presenter:** That is the full workflow: install with a guided setup, record and manage voices in the browser, route simple app voice names to real multilingual voices, and keep everything local through Docker. For advanced users, there is also a CLI, but the main path is now friendly for people who prefer buttons and a browser. ## B-Roll Checklist - Voice library with active voices. - Add new voice panel. - Microphone level meter. - Read sample language selector. - Waveform trim. - Routing tab with `default` rules. - Use in apps Open WebUI snippet. - Guided installer status check. - Installer Qwen model selection. - Portainer container list. - Mobile/narrow viewport. ## Suggested Chapter Titles 1. What This Solves 2. Record A Voice 3. Save And Activate 4. Route Open WebUI Voices 5. Mobile Editing 6. Guided Installer 7. Choosing Qwen Models 8. Open WebUI Setup 9. Final Test