---
# System prepended metadata

title: text2srt_tts 文字轉語音與字幕自動生成工具
tags: [AI, '2025']

---

# text2srt_tts 文字轉語音與字幕自動生成工具

這個工具旨在將文字轉換為高品質語音，並自動生成精準的 SRT 字幕檔。

## 💡 核心功能

*   **文字轉語音 (TTS)**：
    *   支援 WAV 和 MP3 格式。
    *   **預設免費引擎**：使用 Microsoft Edge 瀏覽器內建的 `Edge TTS`，無需 API 金鑰。
    *   **高品質選用引擎**：支援 `Azure Speech Service`，提供更自然的語音（需自行申請 API 金鑰）。
    *   **智慧備援**：若 Azure TTS 失敗，自動切換至 Edge TTS。
    *   可調整語速、語調、音量。
*   **SRT 字幕生成**：
    *   根據語音單詞邊界，自動生成精準時間軸的 SRT 字幕。
    *   可設定每行最大字數，優化字幕顯示。
*   **直覺網頁介面 (Streamlit)**：
    *   提供友善的網頁操作介面，支援文字輸入、語音選擇、參數調整。
    *   即時預覽語音與字幕效果。
    *   可直接下載生成的語音檔和字幕檔。
    *   每次生成結果會獨立儲存於 `task/{task_id}/` 目錄。
*   **多種使用模式**：網頁介面、Docker、命令列 (CLI)、Google Colab。

## 🎯 應用情境

我開發這個工具，主要為了解決以下內容創作需求：

*   **影片製作**：
    *   當您有影片素材，但缺乏旁白語音或不想手動打逐字稿時，可快速生成語音與字幕，直接套用至影片。
*   **內容有聲化**：
    *   將文章、部落格內容轉換為有聲書或 Podcast，方便讀者以聽覺方式吸收資訊。
*   **教學與簡報**：
    *   為線上課程、教學影片或簡報快速生成語音解說與字幕，提升製作效率。
*   **語音素材測試**：
    *   開發者或設計師可快速生成大量語音素材，用於應用程式或介面測試。

## 🛠️ 如何開始使用？

### 1. 取得專案

```bash
git clone https://github.com/sheng1111/text2srt_tts.git
cd text2srt_tts
```

### 2. 環境準備

建議使用 Python 虛擬環境：

```bash
python3 -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows (PowerShell 可能需執行 Set-ExecutionPolicy RemoteSigned -Scope Process)
pip install -r requirements.txt
```

### 3. (選用) 安裝 ffmpeg

若需生成 MP3 格式語音，請確保系統已安裝 `ffmpeg`。可從 [ffmpeg 官網](https://ffmpeg.org/download.html) 下載。

### 4. 設定 `config.toml` (選用)

複製範本並編輯：

```bash
cp config.example.toml config.toml
```

*   **Azure 金鑰**：若使用 Azure 語音服務，請填入 `AZURE_KEY` 和 `AZURE_REGION`。若留空，將自動使用 Edge TTS。
*   **ffmpeg 路徑**：若 `ffmpeg` 未在系統 PATH 中，請指定其絕對路徑。
*   **語音選項**：在 `[voices]` 區塊設定，參考 [Azure 語音服務文件](https://aka.ms/speech/voices/neural)。

## ▶️ 使用方式

### 網頁介面 (Streamlit)

啟動虛擬環境後執行：

```bash
source .venv/bin/activate
python -m streamlit run app/ui/gui.py
```

應用程式將在瀏覽器中開啟 (通常是 `http://localhost:8501`)。介面支援繁體中文（臺灣）與英文切換。

### 命令列介面 (CLI)

啟動虛擬環境後執行：

```bash
source .venv/bin/activate
python -m app.cli --text input.txt --lang zh-CN-XiaoxiaoNeural --out output_folder/
```

*   `--text`: 輸入文字檔案路徑。
*   `--lang`: 語音名稱（參考 `config.toml`）。
*   `--out`: 輸出目錄。

### Google Colab

點擊專案中的 Colab 連結 [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sheng1111/text2srt_tts/blob/main/colab_run.ipynb)，即可在雲端環境中直接運行，無需本地設定。

## 🧪 測試

啟動虛擬環境後執行單元測試：

```bash
source .venv/bin/activate
pytest
```

## 🤝 貢獻與授權

本專案為開源性質，歡迎透過 GitHub 提交 Issue 或 Pull Request 進行貢獻。專案採用 MIT 授權條款。

## https://hackmd.io/akY0noqBTlG2l8XAOahIIQ