tts / README.md
flysuper's picture
Upload 5 files
0c322d0 verified
metadata
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

獲取語音列表

GET /voices

文字轉語音 (POST)

POST /tts
Content-Type: application/json

{
    "text": "你好,世界!",
    "voice": "zh-TW-HsiaoChenNeural",
    "rate": "+0%",
    "volume": "+0%",
    "pitch": "+0Hz"
}

文字轉語音 (GET)

GET /tts?text=你好世界&voice=zh-TW-HsiaoChenNeural&rate=+0%&volume=+0%&pitch=+0Hz

使用範例

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 客戶端

// 替換為您的 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 授權條款開源。