File size: 4,120 Bytes
0c322d0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
---
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 授權條款開源。
|