---
title: Blogipostituse heliversioon
description: Loob blogipostitusest helijutustuse: kokkuvõte, täistekst või kahe kõnelejaga dialoog.
category: Marketing
sublabel: Sisu
author: AgriciDaniel
tags: 
license: MIT
source: https://github.com/AgriciDaniel/claude-blog
---

# Blogi heli: Gemini TTS jutustus blogipostitustele

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.

## Kiirülevaade

| 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 |

## Eeldused

- Python 3.11+ (venv-i haldab automaatselt `run.py`)
- Keskkonnamuutuja `GOOGLE_AI_API_KEY` (sama võti, mida kasutab blog-image)
- FFmpeg (WAV-ist MP3-ks teisendamiseks; puudumisel kukub tagasi WAV-ile)

## Kasuta alati run.py ümbrist

```bash
# CORRECT:
python3 scripts/run.py generate_audio.py --text "..." --voice Charon --json

# WRONG:
python3 scripts/generate_audio.py --text "..."  # Fails without venv
```

## API-võtme kontroll (väravamuster)

Enne heli loomist kontrolli API-võtit:

```bash
test -n "${GOOGLE_AI_API_KEY:-}" && echo "GOOGLE_AI_API_KEY is set" || echo "GOOGLE_AI_API_KEY is not set"
```

- Kui on seatud: jätka loomisega
- Kui pole seatud: juhenda kasutajat:
  "Heli loomine vajab Google AI API-võtit. Hangi see tasuta aadressilt https://aistudio.google.com/apikey
   Seejärel sea see: `export GOOGLE_AI_API_KEY=your-key`
   See võib olla sama võti, mida kasutab `/blog image`, kuid see peab olema shellis eksporditud."
- **Kui kutsutakse sisemiselt** (blog-write'ist): kui võti puudub, tagasta vaikselt.
  Ära kunagi blokeeri kirjutamistöövoogu.

## Seadistamine

`/blog audio setup` jaoks:

1. Kontrolli, kas `GOOGLE_AI_API_KEY` on keskkonnas seatud
2. Kui blog-image kasutab projekti `.mcp.json`-i, veendu, et viidatud keskkonnamuutuja on eksporditud
3. Kui mitte, juhata kasutaja aadressile https://aistudio.google.com/apikey
4. Kontrolli proovikäiguga: `python3 scripts/run.py generate_audio.py --text "Test" --dry-run --json`

## Hääle valimine

`/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)

## Loomistöövoog

`/blog audio generate <file>` jaoks:

### Samm 1: Loe blogipostitust

Loe fail ja ekstrakti:
- Pealkiri (H1-st või frontmatter'ist)
- Täissisu (markdown-keha)
- Ligikaudne sõnade arv

### Samm 2: Vali režiim

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 |

### Samm 3: Valmista tekst ette

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“)

### Samm 4: Vali hääl

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)

### Samm 5: Loo heli

Kirjuta ettevalmistatud tekst töökataloogi faili, seejärel kutsu:

```bash
# 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.

### Samm 6: Edasta

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

## Manustamisjuhend

### Standardne HTML (Hugo, Jekyll, staatilised saidid)
```html
<audio controls preload="metadata">
  <source src="audio/post-slug.mp3" type="audio/mpeg">
  Your browser does not support the audio element.
</audio>
```

### MDX (Next.js, Gatsby)
```jsx
<audio controls preload="metadata">
  <source src="/audio/post-slug.mp3" type="audio/mpeg" />
</audio>
```

### WordPress
```
[audio src="audio/post-slug.mp3"]
```

### Paigutus
Sisesta heliesitaja pärast sissejuhatust (esimese H2 alla) või
artikli kõige algusesse sildiga: „Kuula seda artiklit“ või „Heliversioon“.

## Sisemine API (blog-write'i jaoks)

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:**
```markdown
### 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.

## Vigade käsitlemine

| 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 |

## Viitedokumentatsioon

Lae nõudmisel: ÄRA lae kõike käivitamisel:
- `references/voices.md`: täielik 30 hääle kataloog, soovitused sisutüübi kaupa, dialoogipaaritused