Edge TTS API

基于 Microsoft Edge 在线语音服务的文本转语音接口。19 种语音,支持多语言,免费稳定。

服务正常 19 种语音 多语言支持 自动缓存

01语音演示

点击播放按钮即可试听,所有语音均来自 Edge TTS 服务。

中文
晓晓
zh-CN-XiaoxiaoNeural
温柔女声,适合朗读文章、讲故事、日常对话。
中文
晓伊
zh-CN-XiaoyiNeural
活泼女声,适合短视频配音、活泼内容、年轻化场景。
中文
云希
zh-CN-YunxiNeural
少年男声,适合游戏解说、动画配音、年轻角色。
中文
云健
zh-CN-YunjianNeural
新闻男声,适合新闻播报、正式演讲、纪录片旁白。
中文
云夏
zh-CN-YunxiaNeural
童声男声,适合儿童内容、教育场景、可爱角色。
中文
云扬
zh-CN-YunyangNeural
解说男声,适合体育赛事、游戏直播、激情解说。
方言
晓北
zh-CN-liaoning-XiaobeiNeural
东北话女声,亲切接地气,适合搞笑内容、生活场景。
方言
晓妮
zh-CN-shaanxi-XiaoniNeural
陕西话女声,朴实亲切,适合地方特色内容。
方言
晓曼
zh-HK-HiuMaanNeural
粤语女声,流畅自然,适合粤语内容、港风场景。
中文
晓臻
zh-TW-HsiaoChenNeural
台湾女声,亲切自然,适合台湾腔内容、温馨场景。
English
Aria
en-US-AriaNeural
美式女声,清晰自然,适合英文内容、演示文稿。
English
Guy
en-US-GuyNeural
美式男声,自信沉稳,适合教程、播客、商务内容。
日本語
七海
ja-JP-NanamiNeural
日语女声,自然流畅,适合日语内容、动漫配音。
한국어
善熙
ko-KR-SunHiNeural
韩语女声,自然亲切,适合韩语内容、K-pop 相关。

02API 接口

GET /health

检查服务是否正常运行。

curl
curl https://tts.kina.ink/health
GET /voices

获取所有可用的语音列表。

curl
curl https://tts.kina.ink/voices
GET /tts

通过 URL 参数传递文本,直接返回音频流。适合浏览器直接访问。

curl
curl "https://tts.kina.ink/tts?text=你好世界&voice=zh-CN-XiaoxiaoNeural&rate=+0%" -o hello.mp3
POST /tts

通过 JSON 请求体传递参数,更灵活,适合程序调用。

curl
curl -X POST "https://tts.kina.ink/tts" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "你好世界",
    "voice": "zh-CN-XiaoxiaoNeural",
    "rate": "+0%",
    "volume": "+0%",
    "pitch": "+0Hz",
    "format": "mp3"
  }' \
  --output output.mp3

03参数说明

参数 类型 必填 默认值 说明
text string 必填 - 要合成的文本,最长 5000 字
voice string 选填 zh-CN-XiaoxiaoNeural 语音 ID,见上方语音列表
rate string 选填 +0% 语速:-50% ~ +50%
volume string 选填 +0% 音量:-50% ~ +50%
pitch string 选填 +0Hz 音调:-50Hz ~ +50Hz
format string 选填 mp3 mp3 / wav / ogg / webm
💡
GET 方式适合浏览器直接访问,如 https://tts.kina.ink/tts?text=你好 可直接播放。
POST 方式适合程序调用,参数更灵活。

04代码示例

JavaScript

JavaScript
async function speak(text, voice = 'zh-CN-XiaoxiaoNeural') {
  const url = `https://tts.kina.ink/tts?${new URLSearchParams({
    text: text,
    voice: voice,
    rate: '+0%'
  })}`;

  const response = await fetch(url);
  const blob = await response.blob();
  const audioUrl = URL.createObjectURL(blob);

  const audio = new Audio(audioUrl);
  audio.play();
}

speak('你好世界', 'zh-CN-XiaoxiaoNeural');

Python

Python
import requests

def tts(text, voice='zh-CN-XiaoxiaoNeural', output='output.mp3'):
    url = 'https://tts.kina.ink/tts'
    params = {'text': text, 'voice': voice, 'rate': '+0%'}

    response = requests.get(url, params=params, timeout=60)

    if response.status_code == 200:
        with open(output, 'wb') as f:
            f.write(response.content)
        print(f'已保存到 {output}')
    else:
        print(f'错误: {response.status_code}')

tts('你好世界', 'zh-CN-XiaoxiaoNeural')

PHP

PHP
<?php
function tts($text, $voice = 'zh-CN-XiaoxiaoNeural', $output = 'output.mp3') {
    $url = 'https://tts.kina.ink/tts?' . http_build_query([
        'text' => $text,
        'voice' => $voice,
        'rate' => '+0%'
    ]);

    $audio = file_get_contents($url);
    file_put_contents($output, $audio);
    echo "已保存到 $output\n";
}

tts('你好世界', 'zh-CN-XiaoxiaoNeural');

Node.js

Node.js
const https = require('https');
const fs = require('fs');

function tts(text, voice = 'zh-CN-XiaoxiaoNeural', output = 'output.mp3') {
  const url = `https://tts.kina.ink/tts?text=${encodeURIComponent(text)}&voice=${voice}`;

  https.get(url, (res) => {
    const file = fs.createWriteStream(output);
    res.pipe(file);
    file.on('finish', () => {
      file.close();
      console.log(`已保存到 ${output}`);
    });
  });
}

tts('你好世界', 'zh-CN-XiaoxiaoNeural');
⚠️
注意事项
单次请求最长 5000 字,超出请分段调用。TTS 生成可能需要几秒到十几秒,建议设置超时时间为 60 秒。
缓存机制
相同参数的请求会被缓存,首次生成后再次请求会立即返回,无需重复生成。