{"id":"b6d0d766-fdba-4e3a-a7e3-92b3ebe6fbab","shortId":"6w6zEt","kind":"skill","title":"google-tts","tagline":"Convert documents and text to audio using Google Cloud Text-to-Speech.\nUse this skill when the user wants to: narrate a document, read aloud text,\ngenerate audio from a file, convert text to speech, create a recording\nof documentation or analysis, create a podcast from a document","description":"# Google Cloud Text-to-Speech\n\nConverts text and documents into audio using Google Cloud TTS API. Supports Neural2, WaveNet, Studio, and Standard voices across 40+ languages.\n\n## Setup\n\nAPI key via `GOOGLE_TTS_API_KEY` env var or `skills/google-tts/config.json` with `{\"api_key\": \"...\"}`.\nRequires `ffmpeg` for multi-chunk documents. Optional: `pip install PyPDF2 python-docx` for PDF/DOCX.\n\n## Commands\n\n### List Voices\n\n```bash\npython skills/google-tts/scripts/google_tts.py voices --language en-US --type Neural2\npython skills/google-tts/scripts/google_tts.py voices --json\n```\n\n### Text-to-Speech\n\n```bash\n# From text or document (PDF, DOCX, MD, TXT)\npython skills/google-tts/scripts/google_tts.py tts --text \"Hello world\" --output ~/Downloads/hello.mp3\npython skills/google-tts/scripts/google_tts.py tts --file /path/to/doc.pdf --output ~/Downloads/narration.mp3\n\n# With voice, rate, pitch, encoding options\npython skills/google-tts/scripts/google_tts.py tts --file doc.md --voice en-US-Neural2-F --rate 0.9 --encoding MP3 --output ~/Downloads/out.mp3\n```\n\n### Podcast Generation\n\nTakes a JSON script with alternating speakers, synthesizes each with a different voice.\n\n```json\n[\n  {\"speaker\": \"host1\", \"text\": \"Welcome to our podcast!\"},\n  {\"speaker\": \"host2\", \"text\": \"Thanks for having me...\"}\n]\n```\n\n```bash\npython skills/google-tts/scripts/google_tts.py podcast --script /tmp/script.json --output ~/Downloads/podcast.mp3\npython skills/google-tts/scripts/google_tts.py podcast --script /tmp/script.json --voice1 en-US-Neural2-J --voice2 en-US-Neural2-H --rate 0.9 --output ~/Downloads/podcast.mp3\n```\n\n## Workflow\n\n### Single-Voice Narration\n\n1. If user provides a file path, use `--file`. For generated content, write clean prose to `/tmp/tts_input.md` first.\n2. Default voice: `en-US-Neural2-D` (male) or `en-US-Neural2-F` (female). Use Neural2 for best quality/cost balance.\n3. Generate: `python skills/google-tts/scripts/google_tts.py tts --file /tmp/tts_input.md --output ~/Downloads/recording.mp3`\n4. Report file location and size. Default output to `~/Downloads/`.\n\n### Podcast from Document\n\n1. Extract text: `python skills/google-tts/scripts/extract.py /path/to/document.pdf`\n2. Generate a two-host conversation script as JSON:\n   - Natural discussion, not verbatim reading. Host 1 leads, Host 2 reacts/analyzes.\n   - Include intro and outro. Vary turn lengths. Keep turns under 4000 chars.\n3. Write script to `/tmp/podcast_script.json`\n4. Generate: `python skills/google-tts/scripts/google_tts.py podcast --script /tmp/podcast_script.json --output ~/Downloads/podcast.mp3`\n5. Clean up temp files.\n\n## Reference\n\n- **Recommended voice type**: Neural2 (~$4/1M chars, high quality)\n- **Speaking rate**: 0.25-4.0 (0.85-0.95 good for technical content)\n- **Pitch**: -20.0 to 20.0 semitones\n- **Encodings**: MP3 (default), LINEAR16 (.wav), OGG_OPUS (.ogg)\n- API limit: 5000 bytes/request. Script auto-chunks at sentence boundaries.","tags":["google","tts","skills","sanjay3290","agent-skills","ai-skills","atlassian","azure-devops","claude-code","claude-skills","confluence","deep-research"],"capabilities":["skill","source-sanjay3290","skill-google-tts","topic-agent-skills","topic-ai-skills","topic-atlassian","topic-azure-devops","topic-claude-code","topic-claude-skills","topic-confluence","topic-deep-research","topic-elevenlabs","topic-gmail","topic-google-calendar","topic-google-drive"],"categories":["ai-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sanjay3290/ai-skills/google-tts","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sanjay3290/ai-skills","source_repo":"https://github.com/sanjay3290/ai-skills","install_from":"skills.sh"}},"qualityScore":"0.574","qualityRationale":"deterministic score 0.57 from registry signals: · indexed on github topic:agent-skills · 248 github stars · SKILL.md body (2,944 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:54:10.866Z","embedding":null,"createdAt":"2026-04-18T22:05:17.912Z","updatedAt":"2026-05-02T18:54:10.866Z","lastSeenAt":"2026-05-02T18:54:10.866Z","tsv":"'-0.95':377 '-20.0':383 '-4.0':375 '/downloads':301 '/downloads/hello.mp3':148 '/downloads/narration.mp3':155 '/downloads/out.mp3':178 '/downloads/podcast.mp3':216,237,357 '/downloads/recording.mp3':291 '/path/to/doc.pdf':153 '/path/to/document.pdf':310 '/tmp/podcast_script.json':348,355 '/tmp/script.json':214,221 '/tmp/tts_input.md':259,289 '0.25':374 '0.85':376 '0.9':174,235 '1':243,305,327 '2':261,311,330 '20.0':385 '3':283,344 '4':292,349 '4/1m':368 '40':78 '4000':342 '5':358 '5000':397 'across':77 'aloud':29 'altern':186 'analysi':46 'api':69,81,86,93,395 'audio':9,32,64 'auto':401 'auto-chunk':400 'balanc':282 'bash':114,132,209 'best':280 'boundari':405 'bytes/request':398 'char':343,369 'chunk':100,402 'clean':256,359 'cloud':12,54,67 'command':111 'content':254,381 'convers':317 'convert':4,36,59 'creat':40,47 'd':268 'default':262,298,389 'differ':192 'discuss':322 'doc.md':166 'document':5,27,44,52,62,101,136,304 'docx':108,138 'en':120,169,224,230,265,272 'en-us':119 'en-us-neural2-d':264 'en-us-neural2-f':168,271 'en-us-neural2-h':229 'en-us-neural2-j':223 'encod':160,175,387 'env':88 'extract':306 'f':172,275 'femal':276 'ffmpeg':96 'file':35,152,165,248,251,288,294,362 'first':260 'generat':31,180,253,284,312,350 'good':378 'googl':2,11,53,66,84 'google-tt':1 'h':233 'hello':145 'high':370 'host':316,326,329 'host1':196 'host2':203 'includ':332 'instal':104 'intro':333 'j':227 'json':127,183,194,320 'keep':339 'key':82,87,94 'languag':79,118 'lead':328 'length':338 'limit':396 'linear16':390 'list':112 'locat':295 'male':269 'md':139 'mp3':176,388 'multi':99 'multi-chunk':98 'narrat':25,242 'natur':321 'neural2':71,123,171,226,232,267,274,278,367 'ogg':392,394 'option':102,161 'opus':393 'output':147,154,177,215,236,290,299,356 'outro':335 'path':249 'pdf':137 'pdf/docx':110 'pip':103 'pitch':159,382 'podcast':49,179,201,212,219,302,353 'prose':257 'provid':246 'pypdf2':105 'python':107,115,124,141,149,162,210,217,285,308,351 'python-docx':106 'qualiti':371 'quality/cost':281 'rate':158,173,234,373 'reacts/analyzes':331 'read':28,325 'recommend':364 'record':42 'refer':363 'report':293 'requir':95 'script':184,213,220,318,346,354,399 'semiton':386 'sentenc':404 'setup':80 'singl':240 'single-voic':239 'size':297 'skill':19 'skill-google-tts' 'skills/google-tts/config.json':91 'skills/google-tts/scripts/extract.py':309 'skills/google-tts/scripts/google_tts.py':116,125,142,150,163,211,218,286,352 'source-sanjay3290' 'speak':372 'speaker':187,195,202 'speech':16,39,58,131 'standard':75 'studio':73 'support':70 'synthes':188 'take':181 'technic':380 'temp':361 'text':7,14,30,37,56,60,129,134,144,197,204,307 'text-to-speech':13,55,128 'thank':205 'topic-agent-skills' 'topic-ai-skills' 'topic-atlassian' 'topic-azure-devops' 'topic-claude-code' 'topic-claude-skills' 'topic-confluence' 'topic-deep-research' 'topic-elevenlabs' 'topic-gmail' 'topic-google-calendar' 'topic-google-drive' 'tts':3,68,85,143,151,164,287 'turn':337,340 'two':315 'two-host':314 'txt':140 'type':122,366 'us':121,170,225,231,266,273 'use':10,17,65,250,277 'user':22,245 'var':89 'vari':336 'verbatim':324 'via':83 'voic':76,113,117,126,157,167,193,241,263,365 'voice1':222 'voice2':228 'want':23 'wav':391 'wavenet':72 'welcom':198 'workflow':238 'world':146 'write':255,345","prices":[{"id":"b7fe64c6-c9c5-4dbf-800e-9a08c5128df4","listingId":"b6d0d766-fdba-4e3a-a7e3-92b3ebe6fbab","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sanjay3290","category":"ai-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:05:17.912Z"}],"sources":[{"listingId":"b6d0d766-fdba-4e3a-a7e3-92b3ebe6fbab","source":"github","sourceId":"sanjay3290/ai-skills/google-tts","sourceUrl":"https://github.com/sanjay3290/ai-skills/tree/main/skills/google-tts","isPrimary":false,"firstSeenAt":"2026-04-18T22:05:17.912Z","lastSeenAt":"2026-05-02T18:54:10.866Z"}],"details":{"listingId":"b6d0d766-fdba-4e3a-a7e3-92b3ebe6fbab","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sanjay3290","slug":"google-tts","github":{"repo":"sanjay3290/ai-skills","stars":248,"topics":["agent-skills","ai-skills","atlassian","azure-devops","claude-code","claude-skills","confluence","deep-research","elevenlabs","gmail","google-calendar","google-drive","google-workspace","imagen","jira","mcp","mysql","notebooklm","postgresql","text-to-speech"],"license":"apache-2.0","html_url":"https://github.com/sanjay3290/ai-skills","pushed_at":"2026-04-13T14:16:19Z","description":"Collection of agent skills for AI coding assistants","skill_md_sha":"7a9ac628c1c6792fc2ea39792646495a788cff8e","skill_md_path":"skills/google-tts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sanjay3290/ai-skills/tree/main/skills/google-tts"},"layout":"multi","source":"github","category":"ai-skills","frontmatter":{"name":"google-tts","description":"Convert documents and text to audio using Google Cloud Text-to-Speech.\nUse this skill when the user wants to: narrate a document, read aloud text,\ngenerate audio from a file, convert text to speech, create a recording\nof documentation or analysis, create a podcast from a document, or use\nGoogle TTS/text-to-speech. Trigger phrases: \"read this aloud\", \"narrate this\",\n\"create a recording\", \"text to speech\", \"TTS\", \"convert to audio\",\n\"audio from document\", \"listen to this\", \"generate audio\", \"google tts\",\n\"create a podcast\"."},"skills_sh_url":"https://skills.sh/sanjay3290/ai-skills/google-tts"},"updatedAt":"2026-05-02T18:54:10.866Z"}}