diff --git a/workers/src/index.js b/workers/src/index.js index 54c9ec6..67e5cc2 100644 --- a/workers/src/index.js +++ b/workers/src/index.js @@ -2,12 +2,21 @@ const encoder = new TextEncoder(); let expiredAt = null; let endpoint = null; let clientId = '76a75279-2ffa-4c3d-8db8-7b47252aa41c'; +const API_KEY = 'your-secret-api-key'; // 添加 API 密钥常量,可以修改为你想要的值 async function handleRequest(request) { const requestUrl = new URL(request.url); const path = requestUrl.pathname; if (path === '/tts') { + // 从请求参数获取 API 密钥 + const apiKey = requestUrl.searchParams.get('api_key'); + + // 验证 API 密钥 + if (!validateApiKey(apiKey)) { + return new Response('Unauthorized: Invalid API key', { status: 401 }); + } + const text = requestUrl.searchParams.get('t') || ''; const voiceName = requestUrl.searchParams.get('v') || 'zh-CN-XiaoxiaoMultilingualNeural'; const rate = Number(requestUrl.searchParams.get('r')) || 0; @@ -65,10 +74,68 @@ async function handleRequest(request) { const baseUrl = request.url.split('://')[0] + "://" +requestUrl.host; return new Response(` -
    -
  1. /tts?t=[text]&v=[voice]&r=[rate]&p=[pitch]&o=[outputFormat] try
  2. -
  3. /voices?l=[locate, like zh|zh-CN]&f=[format, 0/1/empty 0(TTS-Server)|1(MultiTTS)] try
  4. -
+ + + Microsoft TTS API + + + +

Microsoft TTS API 接口说明

+ +
+

1. 文本转语音 API

+

/tts - 将文本转换为语音

+ +
+

api_key [必填]: API访问密钥

+

t [必填]: 要转换的文本内容

+

v [可选]: 语音名称,默认为 'zh-CN-XiaoxiaoMultilingualNeural'

+

r [可选]: 语速调整,范围-100到100,默认为0

+

p [可选]: 音调调整,范围-100到100,默认为0

+

o [可选]: 输出格式,默认为 'audio-24khz-48kbitrate-mono-mp3'

+

d [可选]: 是否作为下载文件返回,设为任意值时启用

+
+ +
+

示例: 尝试

+ ${baseUrl}/tts?api_key=api-key&t=你好,世界&v=zh-CN-XiaoxiaoMultilingualNeural&r=0&p=0 +
+
+ +
+

2. 获取可用语音列表

+

/voices - 获取所有可用的语音列表

+ +
+

l [可选]: 按区域筛选,如 'zh'、'zh-CN'、'en' 等

+

f [可选]: 返回格式,0=TTS-Server格式,1=MultiTTS格式,默认=完整JSON

+
+ +
+

示例 (中文语音): 尝试

+ ${baseUrl}/voices?l=zh +
+
+ +
+

重要提示:

+ +
+ + `, { status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }}); } @@ -223,4 +290,9 @@ async function bytesToBase64(bytes) { function uuid(){ return crypto.randomUUID().replace(/-/g, '') +} + +// API 密钥验证函数 +function validateApiKey(apiKey) { + return apiKey === API_KEY; } \ No newline at end of file