skills/qwen3-tts/SKILL.md
Story to Audio — Qwen3-TTS Voice Clone in Levi's Voice
npx skillsauth add ValorInvestigator/claude-plugin-toolkit qwen3-ttsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Converts written stories (.md or .txt) into high-quality narrated audio using Qwen3-TTS voice cloning in Levi's voice. Handles full preprocessing: strips markdown, optimizes text for TTS, intelligently chunks for minimal seams, cross-fades between chunks, and normalizes the final output.
Trigger when user:
Ask the user which file to convert if not specified. The story files are typically in:
D:\Bingaman Master Files Old\Home Base Claude\new story\
cd "C:\Users\Big Levi\Desktop\Claude\Chatterbox-TTS-Extended"
python story_to_audio_qwen3.py "PATH_TO_STORY_FILE"
Flags:
--dry-run : Show chunks and preprocessing without generating--output PATH : Custom output path (default: same dir as input, .mp3)--start-section "HEADER" : Start narrating from a specific section header--end-section "HEADER" : Stop narrating at a specific section header (exclusive)--skip-metadata : Strip bylines, navigation, disclaimers, author bios (default: ON)--chunk-chars N : Target chunk size in characters (default: 3000)--crossfade-ms N : Cross-fade duration between chunks in ms (default: 500)Examples:
# Convert entire story
python story_to_audio_qwen3.py "D:\...\new story\STORY_1_THE_REQUEST.md"
# Convert only Sections III-V
python story_to_audio_qwen3.py "D:\...\new story\STORY_2.md" --start-section "III" --end-section "VI"
# Dry run to preview chunks
python story_to_audio_qwen3.py "D:\...\new story\STORY_3.md" --dry-run
The script prints chunk-by-chunk progress:
[1/12] (3204 chars) Section I-II... -> 142.3s audio in 165.0s (RTF 1.16x)
[2/12] (2891 chars) Section III... -> 128.7s audio in 149.5s (RTF 1.16x)
At ~1.16x real-time factor on the RTX 3080, a 30-minute story takes ~35 minutes to generate.
Tell the user:
| What | Path |
|------|------|
| Script | C:\Users\Big Levi\Desktop\Claude\Chatterbox-TTS-Extended\story_to_audio_qwen3.py |
| Voice Reference | C:\Users\Big Levi\OneDrive\Documents\Sound Recordings\levi_voice_best_24k.wav |
| Voice Transcript | "Now this article is just the beginning. I've mentioned I'll be exposing connections between disability rights organ and other legal networks in the next article, because what I've found suggests that even the lawyers who are" |
| Story Files | D:\Bingaman Master Files Old\Home Base Claude\new story\ |
| Model | Qwen/Qwen3-TTS-12Hz-1.7B-Base (auto-downloads from HuggingFace, ~4.5 GB) |
The script automatically:
This is a cosmetic warning from librosa. It does not affect generation. Ignore it.
This is fine. The model falls back to PyTorch SDPA attention. Uses ~6.8 GB VRAM instead of ~5.4 GB. Both fit on RTX 3080.
Close other GPU applications. The model needs ~5-7 GB VRAM. Check with:
python -c "import torch; print(f'{torch.cuda.mem_get_info()[0]/1024**3:.1f} GB free')"
The script uses ASCII-safe print statements. If you still get encoding errors, set:
set PYTHONIOENCODING=utf-8
batch_canary_qwen3_full.py directlydevelopment
# Write Article -- Investigative Series in Levi Bakke's Voice You are ghostwriting publishable investigative journalism in Levi's voice. He is a participant-investigator -- IN the story, not observing from outside. ## BEFORE WRITING Read the style guide: [references/style-guide.md](references/style-guide.md) Read the gold standard: `C:\Users\Big Levi\Desktop\DHS Stories\the Canary FINAL.txt` ## THE WRITING PROCESS 1. **Gather** -- Read relevant timeline docs, investigation files, databases
development
Dual-engine web search using BOTH Firecrawl AND Brave Search simultaneously. ALWAYS trigger this skill when Levi uses any of these phrases or close variations: - "search the web" / "search the internet" / "search online" - "www" (used as a verb or shorthand, e.g. "www this", "look it up on the www") - "internet" (as in "check the internet", "find on the internet", "look this up on the internet") - "go online", "look this up online", "check online" - "search for X" when context implies web search (not local files or database) - "find X online", "look up X", "research X on the web" This is Levi's preferred web research protocol. Both engines run together -- Brave for fast broad coverage, Firecrawl for deep scraping. Never use just one without the other when this skill triggers.
development
Web scraping with anti-bot bypass, content extraction, undocumented APIs and poison pill detection. Use when extracting content from websites, handling paywalls, implementing scraping cascades or processing social media. Covers requests, trafilatura, Playwright with stealth mode, yt-dlp and instaloader patterns.
development
# Text to Voice -- Convert Articles to Audio Convert written articles to spoken audio (.mp3) using Google Cloud TTS with Chirp 3: HD Algieba voice. ## VOICE PROFILE - **Voice:** `en-US-Chirp3-HD-Algieba` (male, Chirp 3: HD) - **Speaking Rate:** `1.0` | **Volume Gain:** `0.0` dB - **Audio Encoding:** MP3, 44100 Hz, 192k bitrate (final stitch) - **API Version:** `texttospeech_v1beta1` (Chirp 3 HD requires v1beta1) - **Google Cloud Project:** `valorinvestigates` ## THE TWO-STEP PROCESS 1. **Rew