ReedenReeden

自定义 HTTP 合成

自定义 HTTP 合成 TTS 规则

自定义 HTTP 合成 TTS 允许您通过配置 HTTP 请求来使用自定义的语音合成服务。通过简单的 JSON 配置,您可以轻松集成任何支持 HTTP 接口的 TTS 服务。

规则格式

自定义 TTS 规则使用 JSON 数组格式,每个规则包含以下字段:

[
    {
        "url": "https://tts-service.example.com/api/v1/synthesize",
        "name": "小美",
        "voice": "voice-001",
        "sex": 0,
        "language": "中文",
        "locale": "zh-CN",
        "group": "自定义",
        "tags": ["自定义", "女声"],
        "params": {
            "method": "POST",
            "headers": {
                "Content-Type": "application/json",
                "Authorization": "Bearer your-api-key"
            },
            "body": "{\"text\":\"{{text}}\",\"voice\":\"voice-001\",\"speed\":1.0}"
        }
    },
    {
        "url": "https://tts-service.example.com/api/v1/synthesize",
        "name": "小强",
        "voice": "voice-002",
        "sex": 1,
        "language": "中文",
        "locale": "zh-CN",
        "group": "自定义",
        "tags": ["自定义", "男声"],
        "params": {
            "method": "GET",
            "headers": {
                "Authorization": "Bearer your-api-key"
            },
            "url": "https://tts-service.example.com/api/v1/synthesize?text={{text}}&voice=voice-002&speed=1.0"
        }
    }
]

字段说明

  • url: TTS 服务的 HTTP 接口地址
  • name: 语音名称,用于在界面上显示
  • voice: 语音 ID,用于标识具体的语音
  • sex: 性别标识,0 表示女声,1 表示男声
  • language: 语言名称,如"中文"、"英文"等
  • locale: 语言区域代码,如"zh-CN"、"en-US"等
  • group: 分组名称,用于对语音进行分类
  • tags: 标签列表,用于快速筛选和查找
  • params: HTTP 请求参数配置
    • method: HTTP 请求方法,如 "POST"、"GET" 等
    • headers: HTTP 请求头
    • body: HTTP 请求体,支持使用 {{text}} 作为文本占位符
    • url: 完整的请求 URL(仅 GET 请求需要)

请求方式说明

POST 请求

POST 请求通常用于发送较大的文本内容,支持在以下位置使用 {{text}} 占位符:

  1. 请求体(body)中:
{
    "params": {
        "method": "POST",
        "headers": {
            "Content-Type": "application/json",
            "Authorization": "Bearer your-api-key"
        },
        "body": "{\"text\":\"{{text}}\",\"voice\":\"voice-001\",\"speed\":1.0}"
    }
}
  1. 请求头(headers)中:
{
    "params": {
        "method": "POST",
        "headers": {
            "Content-Type": "application/json",
            "Authorization": "Bearer your-api-key",
            "X-Text": "{{text}}"
        },
        "body": "{\"voice\":\"voice-001\",\"speed\":1.0}"
    }
}

GET 请求

GET 请求通常用于发送较小的文本内容,支持在以下位置使用 {{text}} 占位符:

  1. URL 查询参数中:
{
    "params": {
        "method": "GET",
        "headers": {
            "Authorization": "Bearer your-api-key"
        },
        "url": "https://tts-service.example.com/api/v1/synthesize?text={{text}}&voice=voice-002&speed=1.0"
    }
}
  1. 请求头(headers)中:
{
    "params": {
        "method": "GET",
        "headers": {
            "Authorization": "Bearer your-api-key",
            "X-Text": "{{text}}"
        },
        "url": "https://tts-service.example.com/api/v1/synthesize?voice=voice-002&speed=1.0"
    }
}

使用说明

  1. 将规则配置保存为 JSON 文件
  2. 在应用中选择"自定义 TTS"选项
  3. 导入规则配置文件
  4. 选择需要的语音进行使用

注意事项

  • 确保 TTS 服务地址可以正常访问
  • {{text}} 占位符可以在请求头、请求体或 URL 查询参数中使用
  • 对于 GET 请求,建议使用 URL 查询参数或请求头传递文本
  • 对于 POST 请求,建议使用请求体传递文本
  • 建议在 tags 中添加合适的标签,方便后续筛选
  • 可以根据需要添加多个不同的语音配置
  • 注意替换示例中的 your-api-key 为实际的 API 密钥