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 授權條款開源。