PDF2podcast-2-tts / README.md
tbdavid2019's picture
新增 api
feb8411

A newer version of the Gradio SDK is available: 5.29.0

Upgrade
metadata
title: PDF2podcast 2 Tts
emoji: 💻
colorFrom: indigo
colorTo: red
sdk: gradio
sdk_version: 5.23.2
app_file: app.py
pinned: false
short_description: 原tbdavid2019/PDF2podcast拆出的語音生成(2)

TTS Generator (語音合成器)

這是一個基於OpenAI TTS API的語音合成應用程式,可將文字腳本轉換為自然流暢的語音。應用程式支援雙說話者對話,並提供簡潔的網頁界面,適合製作播客、有聲書或對話式內容。

功能特點

  • 🎙️ 雙說話者支援:可分配不同聲音給兩位說話者,適合對話式內容
  • 🔄 智能文本優化:自動合併相同說話者的連續文本,減少API調用次數
  • 🎛️ 多種聲音選項:支援OpenAI的全部6種TTS聲音(alloy、echo、fable、onyx、nova、shimmer)
  • 🎚️ 模型選擇:支援標準(tts-1)和高清(tts-1-hd)音頻模型
  • 🌐 友好界面:基於Gradio的簡潔網頁界面,易於使用
  • 💾 自動文件管理:自動保存生成的音頻並清理過期文件
  • 🔊 音量調整:內建音量增益功能,可調整輸出音頻音量
  • 🌍 API支援:提供獨立的API服務,支援外部應用程式呼叫
  • 🔑 環境變量:支援通過.env文件配置API金鑰

安裝說明

前置需求

  • Python 3.7+
  • OpenAI API金鑰(需要啟用TTS功能)
  • 可選:創建.env文件存儲API金鑰(從.env.example複製並修改)

安裝步驟

  1. 克隆此專案或下載源碼
  2. 安裝依賴項:
pip install -r requirements.txt

使用方法

環境設置

# 複製環境變量範本
cp .env.example .env

# 編輯 .env 文件,添加您的 OpenAI API Key
nano .env  # 或使用其他編輯器

# 安裝依賴項
pip install -r requirements.txt

通過網頁界面使用 (app.py)

  1. 運行Gradio應用程式:
python app.py
  1. 在瀏覽器中打開顯示的URL(通常是 http://127.0.0.1:7860)
  2. 在文本框中輸入您的腳本
  3. 輸入您的OpenAI API金鑰(或預先在.env文件中配置)
  4. 選擇所需的音頻模型和說話者聲音
  5. 調整音量增益(建議值:6-10 dB)
  6. 點擊「生成音頻」按鈕
  7. 等待處理完成後,您可以播放或下載生成的音頻

通過API使用 (api.py)

如果您需要從外部應用程式呼叫TTS功能,可以使用API:

  1. 運行API服務:
python api.py
  1. API服務將在 http://localhost:8000 啟動

API端點

生成音頻
POST /generate-audio

請求體示例:

{
  "script": "speaker-1: 你好,歡迎來到播客!\nspeaker-2: 謝謝邀請,很高興來到這裡。",
  "api_key": "your_openai_api_key",
  "model": "tts-1",
  "speaker1_voice": "onyx",
  "speaker2_voice": "nova",
  "volume_boost": 6.0,
  "return_url": false
}
  • 如果return_urlfalse,將直接返回音頻文件
  • 如果return_urltrue,將返回音頻文件的URL
獲取可用選項
GET /options

返回可用的音頻模型和聲音選項。

API文檔

啟動API服務後,可以訪問自動生成的API文檔:

腳本格式

腳本應按以下格式編寫:

speaker-1: 這是第一位說話者的台詞。
speaker-2: 這是第二位說話者的台詞。
這行沒有標記說話者,將默認使用說話者1的聲音。
speaker-1: 繼續對話...

提示:相同說話者的連續文本會自動合併處理,以提高API調用效率。

參數說明

參數 說明
音頻模型 選擇TTS模型:標準(tts-1)或高清(tts-1-hd)
說話者1聲音 第一位說話者使用的聲音
說話者2聲音 第二位說話者使用的聲音
音量增益 增加音頻音量的分貝值(dB),建議值:6-10 dB
OpenAI API Key 您的OpenAI API金鑰

聲音選項

應用程式支援以下OpenAI TTS聲音:

  • alloy: 全能且平穩的聲音
  • echo: 深沉且有力的聲音
  • fable: 溫暖且適合講故事的聲音
  • onyx: 明確且專業的聲音
  • nova: 友好且自然的聲音
  • shimmer: 清晰且愉悅的聲音

技術細節

  • 使用OpenAI的TTS API進行語音合成
  • 使用Gradio建立網頁界面(app.py)
  • 使用FastAPI提供RESTful API(api.py)
  • 自動管理臨時音頻文件(24小時後自動清理)
  • 支援流式處理大型音頻文件
  • 使用pydub處理音頻音量調整

依賴項

  • gradio: 網頁界面
  • openai: OpenAI API客戶端
  • fastapi: API框架
  • uvicorn: ASGI服務器
  • pydub: 音頻處理
  • python-dotenv: 環境變量管理
  • pathlib: 文件路徑處理
  • io: 二進制數據處理

注意事項

  • 使用此應用程式需要有效的OpenAI API金鑰
  • API使用會產生費用,請參考OpenAI的價格頁面
  • 生成的臨時音頻文件會在24小時後自動刪除
  • 在Hugging Face Space上運行時,app.py會自動啟動,提供Gradio界面
  • 如需API功能,需要單獨運行api.py

授權信息

MIT授權