---
title: "Voice-over and podcasts"
url: https://phatdev.net/en/docs/media-studio/giong-doc-podcast
lang: en
updated: 2026-10-20
alternate:
  vi: https://phatdev.net/docs/media-studio/giong-doc-podcast
markdown: https://phatdev.net/en/docs/media-studio/giong-doc-podcast.md
---

# Voice-over and podcasts

Part of the doc set: [Media Studio](https://phatdev.net/en/docs/media-studio.md)

> Gemini TTS (Charon voice), VieNeu, a two-host podcast, and local transcription.

## Voice engines

| Engine | Characteristics |
|---|---|
| **Gemini TTS** *(default)* | Expressive reading with natural emphasis. The channel's standard voice: **Charon** (male) |
| **VieNeu** | Runs locally, 10 Vietnamese voices, **voice cloning** from a 3-5 second sample |
| **Edge TTS** | Quick free fallback |

Reading speed is 1.0-1.2×. If you don't pass `voice`, the app still uses the Charon voice.


<div style="margin:1.6em 0"><figure style="margin:0"><a href="https://phatdev.net/uploads/p/media-studio/ui-audio-vi-light-3840.webp" target="_blank" rel="noopener" class="pd-th-light" style="display:block;border:0" aria-label="Audio: Gemini/VieNeu voices, two-host podcast (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-audio-vi-light-1920.webp" srcset="/uploads/p/media-studio/ui-audio-vi-light-960.webp 960w, /uploads/p/media-studio/ui-audio-vi-light-1920.webp 1920w, /uploads/p/media-studio/ui-audio-vi-light-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Audio: Gemini/VieNeu voices, two-host podcast" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><a href="https://phatdev.net/uploads/p/media-studio/ui-audio-vi-dark-3840.webp" target="_blank" rel="noopener" class="pd-th-dark" style="display:block;border:0" aria-label="Audio: Gemini/VieNeu voices, two-host podcast (4K)"><img src="https://phatdev.net/uploads/p/media-studio/ui-audio-vi-dark-1920.webp" srcset="/uploads/p/media-studio/ui-audio-vi-dark-960.webp 960w, /uploads/p/media-studio/ui-audio-vi-dark-1920.webp 1920w, /uploads/p/media-studio/ui-audio-vi-dark-3840.webp 3840w" sizes="(max-width: 900px) 100vw, 760px" width="3840" height="2160" alt="Audio: Gemini/VieNeu voices, two-host podcast" loading="lazy" decoding="async" style="width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px"></a><figcaption style="margin-top:8px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center">Audio: Gemini/VieNeu voices, two-host podcast</figcaption></figure></div>

## Generate voice content from a link

- **Single-voice narration** (`/api/v1/tts/summary`): paste a product link → a short, medium or long summary script → read aloud.
- **Two-host podcast** (`/api/v1/tts/podcast`): natural NotebookLM-style dialogue with filler words, short interjections and back-and-forth reactions.

## Speech recognition (transcribe)

`faster-whisper` runs locally for free: `POST /api/v1/transcribe` returns text with **word-level** timestamps; `/api/v1/transcribe/srt` exports `.srt` subtitles. This is also the engine behind the "show it as it's said" effect in videos.

## Review the script before rendering

When you need to approve the wording, export the **transcript** and read it first - this avoids rendering a video (which spends voice quota) just to check the lines.
