Spaces:
Running
Running
A newer version of the Gradio SDK is available:
5.29.0
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
複製並修改)
安裝步驟
- 克隆此專案或下載源碼
- 安裝依賴項:
pip install -r requirements.txt
使用方法
環境設置
# 複製環境變量範本
cp .env.example .env
# 編輯 .env 文件,添加您的 OpenAI API Key
nano .env # 或使用其他編輯器
# 安裝依賴項
pip install -r requirements.txt
通過網頁界面使用 (app.py)
- 運行Gradio應用程式:
python app.py
- 在瀏覽器中打開顯示的URL(通常是 http://127.0.0.1:7860)
- 在文本框中輸入您的腳本
- 輸入您的OpenAI API金鑰(或預先在
.env
文件中配置) - 選擇所需的音頻模型和說話者聲音
- 調整音量增益(建議值:6-10 dB)
- 點擊「生成音頻」按鈕
- 等待處理完成後,您可以播放或下載生成的音頻
通過API使用 (api.py)
如果您需要從外部應用程式呼叫TTS功能,可以使用API:
- 運行API服務:
python api.py
- 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_url
為false
,將直接返回音頻文件 - 如果
return_url
為true
,將返回音頻文件的URL
獲取可用選項
GET /options
返回可用的音頻模型和聲音選項。
API文檔
啟動API服務後,可以訪問自動生成的API文檔:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
腳本格式
腳本應按以下格式編寫:
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