Loob blogipostitusest helijutustuse: kokkuvõte, täistekst või kahe kõnelejaga dialoog.
Kogu oskus — vaikeversiooni hoitakse GitHubis; sinu muudatused jäävad sinu enda klooni.
Loo professionaalne blogisisu helijutustus Google'i Gemini TTS abil. Kolm režiimi: kokkuvõte (200–300-sõnaline räägitud ülevaade), täisartikli ettelugemine või kahe kõneleja taskuhäälingudialoog. 30 häält, 80+ keelt, HTML5-manustatav väljund.
| Käsk | Mida see teeb |
|---|---|
/blog audio generate <file> |
Loo blogipostituse helijutustus |
/blog audio voices |
Näita saadaolevaid hääli koos omadustega |
/blog audio setup |
Kontrolli/seadista Gemini TTS API-võti |
run.py)GOOGLE_AI_API_KEY (sama võti, mida kasutab blog-image)# CORRECT:
python3 scripts/run.py generate_audio.py --text "..." --voice Charon --json
# WRONG:
python3 scripts/generate_audio.py --text "..." # Fails without venv
Enne heli loomist kontrolli API-võtit:
test -n "${GOOGLE_AI_API_KEY:-}" && echo "GOOGLE_AI_API_KEY is set" || echo "GOOGLE_AI_API_KEY is not set"
export GOOGLE_AI_API_KEY=your-key
See võib olla sama võti, mida kasutab /blog image, kuid see peab olema shellis eksporditud."/blog audio setup jaoks:
GOOGLE_AI_API_KEY on keskkonnas seatud.mcp.json-i, veendu, et viidatud keskkonnamuutuja on eksporditudpython3 scripts/run.py generate_audio.py --text "Test" --dry-run --json/blog audio voices jaoks:
Lae references/voices.md ja esita kasutajale häälekataloog.
Küsi kasutajalt, millist häält ta eelistab, või soovita sisutüübi põhjal: - Artikli jutustamine: Charon (Informative) või Sadaltager (Knowledgeable) - Õpetus/juhend: Achird (Friendly) või Sulafat (Warm) - Uudised/analüüs: Rasalgethi (Informative) või Schedar (Even) - Elustiil/heaolu: Aoede (Breezy) või Vindemiatrix (Gentle) - Dialoogi saatejuht: Puck (Upbeat) või Laomedeia (Upbeat) - Dialoogi ekspert: Kore (Firm) või Charon (Informative)
/blog audio generate <file> jaoks:
Loe fail ja ekstrakti: - Pealkiri (H1-st või frontmatter'ist) - Täissisu (markdown-keha) - Ligikaudne sõnade arv
Küsi kasutajalt (või vali automaatselt, kui ta määras --mode):
| Režiim | Millal kasutada | Väljund |
|---|---|---|
| Kokkuvõte | Kiire heliülevaade (1–2 min) | 200–300-sõnaline räägitud kokkuvõte |
| Täis | Täielik ettelugemine (5–15 min) | Terve artikkel loomuliku kõnena |
| Dialoog | Taskuhäälingu stiilis (3–8 min) | Kahe inimese vestlus artiklist |
Claude valmistab teksti ette; skript teeb ainult TTS-i.
Kokkuvõtterežiim: Kirjuta 200–300-sõnaline räägitud kokkuvõte artiklist. Reeglid: - Kirjuta loomuliku kõnena, mitte kirjaliku tekstina - Ava artikli põhileiu või -vastusega - Kata 3–5 peamist õppetundi - Lõpeta tegevusele suunava nõuandega - Ei mingit markdown'i, ei „Selles artiklis...“, ei metakommentaari - Kasuta vestluslikke üleminekuid („Siin on, mis loeb...“, „Põhileid on...“)
Täisrežiim: Puhasta markdown-sisu selgeks räägitavaks tekstiks: - Pealkirjad muutuvad loomulikeks üleminekuteks („Järgmisena vaatame...“) - Lingid muutuvad lihttekstiks (eemalda URL-id, säilita ankrutekst) - Pildid ja graafikud: jäta välja või kirjelda lühidalt („Nagu andmed näitavad...“) - Koodiplokid: kirjelda sõnadega („Kood kasutab for-tsüklit, et...“) - Loendid: teisenda loomulikeks lauseteks - Eemalda frontmatter, skeemimärgistus, HTML-sildid - Lisa lühike sissejuhatus: „See on [pealkiri], avaldatud [kuupäev]."
Dialoogirežiim:
Kirjuta artiklist 2 inimese vestlusskript:
- Speaker1 = saatejuht (uudishimulik, esitab häid küsimusi)
- Speaker2 = ekspert (asjatundlik, annab selgeid vastuseid)
- Vorminda iga rida kujul: Speaker1: What's the key takeaway here?
- Kata artikli põhipunktid vestluslikult
- 15–25 vooru (annab umbes 3–8 minutit)
- Loomulik, mitte kaelkangestunud („That's a great point“, mitte „Indeed, as the research indicates“)
Kui kasutaja valis hääle, kasuta seda. Vastasel juhul soovita režiimi põhjal: - Kokkuvõte/täis: vaikimisi Charon (Informative) - Dialoog: vaikimisi Puck (saatejuht) + Kore (ekspert)
Kirjuta ettevalmistatud tekst töökataloogi faili, seejärel kutsu:
# Single voice (summary or full mode)
python3 scripts/run.py generate_audio.py \
--text-file blog_audio_prepared.txt \
--voice Charon \
--model flash \
--output audio/post-slug.mp3 \
--json
# Two voices (dialogue mode)
python3 scripts/run.py generate_audio.py \
--text-file blog_audio_dialogue.txt \
--voice Puck \
--voice2 Kore \
--model pro \
--output audio/post-slug-dialogue.mp3 \
--json
Mudeli valik:
- flash (vaikimisi): vastab mudelile gemini-3.1-flash-tts-preview, hea kokkuvõtete ja tavalise jutustuse jaoks.
- flash31: selgesõnaline alias mudelile gemini-3.1-flash-tts-preview.
- legacy-flash25: säilitatud ainult vanema ühilduvuse jaoks.
- pro või legacy-pro25: vastab mudelile gemini-2.5-pro-preview-tts, kasuta ainult vajadusel.
Esita tulemus kasutajale: 1. Faili tee: kuhu heli salvestati 2. Kestus: inimloetav (nt „3:42“) 3. Manustuskood: valmis kleepimiseks HTML5 audiosilt 4. Kulu: hinnanguline API-kulu 5. Paigutussoovitus: kuhu blogipostituses manustis sisestada
<audio controls preload="metadata">
<source src="audio/post-slug.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<audio controls preload="metadata">
<source src="/audio/post-slug.mp3" type="audio/mpeg" />
</audio>
[audio src="audio/post-slug.mp3"]
Sisesta heliesitaja pärast sissejuhatust (esimese H2 alla) või artikli kõige algusesse sildiga: „Kuula seda artiklit“ või „Heliversioon“.
Kui kutsutakse sisemiselt blog-write'ist:
Sisend:
- text: ettevalmistatud tekst (Claude juba puhastanud)
- voice: hääle nimi (vaikimisi: Charon)
- voice2: teine hääl dialoogi jaoks (valikuline)
- model: flash või pro
- output_path: kuhu fail salvestada
Väljund:
### Audio Narration
- **Path:** /path/to/audio/post-slug.mp3
- **Duration:** 3:42
- **Voice:** Charon
- **Embed:** `<audio controls preload="metadata"><source src="audio/post-slug.mp3" type="audio/mpeg"></audio>`
Sujuv varuvariant: Kui GOOGLE_AI_API_KEY pole seatud, tagasta kohe
ilma veata. Kirjutamistöövoog jätkub ilma helita. Ära kunagi blokeeri
blog-write'i, sest heli loomine pole saadaval.
| Viga | Lahendus |
|---|---|
| GOOGLE_AI_API_KEY pole seatud | Hangi võti aadressilt https://aistudio.google.com/apikey |
| FFmpeg-i ei leitud | Paigalda: sudo apt install ffmpeg. Kukub tagasi WAV-väljundile. |
| Päringupiirang | Oota ja proovi uuesti. Kontrolli piiranguid aadressil https://aistudio.google.com/rate-limit |
| Tekst liiga pikk (>8 192 sisendtokenit) | Jaga umbes 7 800-tokenisteks osadeks; skript tükeldab ja õmbleb ettevalmistatud teksti kokku |
| Tundmatu hääle nimi | Käivita /blog audio voices, et näha kehtivaid valikuid |
| API-viga | Kontrolli võtme kehtivust ja mudeli saadavust |
| API-võti puudub (sisemine kutse) | Tagasta vaikselt: kirjutamistöövoog jätkub |
Lae nõudmisel: ÄRA lae kõike käivitamisel:
- references/voices.md: täielik 30 hääle kataloog, soovitused sisutüübi kaupa, dialoogipaaritused