--- title: Edge TTS API emoji: 🎤 colorFrom: blue colorTo: purple sdk: docker pinned: false license: mit short_description: 基於 Microsoft Edge TTS 的文字轉語音 API 服務 --- # Edge TTS API 服務 這是一個基於 Microsoft Edge TTS 的文字轉語音網路服務,使用 FastAPI 框架構建,現在部署在 Hugging Face Spaces 上。 ## 功能特色 - 🎤 支援多種語音和語言 - ⚡ 快速響應的 API 服務 - 🔧 可調整語速、音量和音調 - 📱 支援 CORS,可用於前端應用 - 📊 自動生成的 API 文檔 - 🗂️ 文件管理功能 ## 快速開始 ### 1. 訪問服務 - **API 服務**: 點擊右上角的 "View API" 按鈕 - **API 文檔**: `https://your-space-name.hf.space/docs` - **健康檢查**: `https://your-space-name.hf.space/health` ### 2. 使用 API #### 獲取語音列表 ```http GET /voices ``` #### 文字轉語音 (POST) ```http POST /tts Content-Type: application/json { "text": "你好,世界!", "voice": "zh-TW-HsiaoChenNeural", "rate": "+0%", "volume": "+0%", "pitch": "+0Hz" } ``` #### 文字轉語音 (GET) ```http GET /tts?text=你好世界&voice=zh-TW-HsiaoChenNeural&rate=+0%&volume=+0%&pitch=+0Hz ``` ## 使用範例 ### Python 客戶端 ```python import requests # 替換為您的 Hugging Face Space URL base_url = "https://your-space-name.hf.space" # 使用 POST 方法 response = requests.post(f"{base_url}/tts", json={ "text": "你好,這是測試文字", "voice": "zh-TW-HsiaoChenNeural" }) if response.json()["success"]: audio_url = response.json()["audio_url"] print(f"音頻文件:{base_url}{audio_url}") # 使用 GET 方法 response = requests.get(f"{base_url}/tts", params={ "text": "你好,這是測試文字", "voice": "zh-TW-HsiaoChenNeural" }) # 直接下載音頻文件 with open("output.mp3", "wb") as f: f.write(response.content) ``` ### JavaScript 客戶端 ```javascript // 替換為您的 Hugging Face Space URL const baseUrl = "https://your-space-name.hf.space"; // 使用 POST 方法 fetch(`${baseUrl}/tts`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ text: '你好,這是測試文字', voice: 'zh-TW-HsiaoChenNeural' }) }) .then(response => response.json()) .then(data => { if (data.success) { console.log('音頻文件:', `${baseUrl}${data.audio_url}`); } }); // 使用 GET 方法 const audioUrl = `${baseUrl}/tts?text=你好世界&voice=zh-TW-HsiaoChenNeural`; window.open(audioUrl, '_blank'); ``` ## 常用語音 ### 🇹🇼 台灣語音 - `zh-TW-HsiaoChenNeural` - 台灣女聲 (HsiaoChen) - `zh-TW-HsiaoYuNeural` - 台灣女聲 (HsiaoYu) - `zh-TW-YunJheNeural` - 台灣男聲 (YunJhe) ### 🇨🇳 中國語音 - `zh-CN-XiaoxiaoNeural` - 中國女聲 (Xiaoxiao) - `zh-CN-XiaoyiNeural` - 中國女聲 (Xiaoyi) - `zh-CN-YunjianNeural` - 中國男聲 (Yunjian) - `zh-CN-YunxiNeural` - 中國男聲 (Yunxi) - `zh-CN-YunxiaNeural` - 中國男聲 (Yunxia) - `zh-CN-YunyangNeural` - 中國男聲 (Yunyang) ### 🇺🇸 美國語音 - `en-US-JennyNeural` - 美國女聲 (Jenny) - `en-US-GuyNeural` - 美國男聲 (Guy) ### 🇬🇧 英國語音 - `en-GB-SoniaNeural` - 英國女聲 (Sonia) - `en-GB-RyanNeural` - 英國男聲 (Ryan) ## 參數說明 ### 語速調整 (rate) - `+50%` - 加快 50% - `-50%` - 減慢 50% - `+0%` - 正常速度 ### 音量調整 (volume) - `+50%` - 增加音量 50% - `-50%` - 減少音量 50% - `+0%` - 正常音量 ### 音調調整 (pitch) - `+50Hz` - 提高音調 - `-50Hz` - 降低音調 - `+0Hz` - 正常音調 ## 注意事項 1. 生成的音頻文件會保存在臨時目錄中 2. 文件會自動生成唯一 ID,避免衝突 3. 服務需要網路連接才能使用 Microsoft Edge TTS 4. 在 Hugging Face Spaces 上,音頻文件會在短時間後自動清理 ## 授權 本項目基於 MIT 授權條款開源。