本文从开发者集成角度,整理8款文字转语音(TTS)服务的API类型、调用方式、免费额度及代码示例。重点关注可编程能力、流式返回、SDK支持等开发友好指标。数据来自公开文档及实测,不涉及商业推广。
一、无API型(仅手动界面操作,不可编程调用)
此类工具不提供任何程序化接口,仅能通过小程序或网页手动生成音频,适合非开发场景。
1. 布丁配音
- 集成方式:无API
- 调用方式:手动输入文本 → 点击生成 → 下载音频
- 免费额度:无限字数、无限时长
- 平台:仅小程序
2. 叮叮配音
- 集成方式:无API
- 调用方式:同上
- 免费额度:无限字数、无限时长
- 平台:仅小程序
3. 配朵朵
- 集成方式:无API
- 调用方式:手动操作(网页/App/小程序),支持批量导入
- 免费额度:每日赠送字数/时长
- 平台:网页端、App、小程序
4. 媒小三配音
- 集成方式:无API
- 调用方式:手动操作(网页/App/小程序),支持声音克隆和捏声音
- 免费额度:每日试用次数,每月重置
- 平台:网页端、App、小程序
二、REST API型(提供HTTP接口,无官方SDK或仅社区SDK)
此类工具提供标准的REST API,开发者可通过HTTP请求调用,但官方不提供多语言SDK或仅社区维护。
5. ElevenLabs
- 集成方式:REST API + 社区SDK(非官方)
- 认证方式:API Key(
xi-api-key) - 请求示例(curl) :
bash
curl -X POST https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM \
-H "xi-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "你好,这是测试语音",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 0.75
}
}' \
--output speech.mp3
- 流式返回:支持(SSE)
- 免费额度:每月1万字符,限速3次/分钟
- 输出格式:MP3、PCM
三、完整SDK型(官方提供多语言SDK,支持流式、SSML、异步合成)
此类工具为云服务商,提供官方维护的SDK(Python、Java、Node.js、Go等),并支持高级功能(SSML、自定义词典、批量合成)。
6. 微软 Azure TTS
- 集成方式:REST API + 官方SDK
- SDK语言:C#、Python、Java、Node.js、Go等
- Python示例:
python
import azure.cognitiveservices.speech as speechsdk
speech_config = speechsdk.SpeechConfig(subscription="YOUR_KEY", region="eastasia")
synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config)
result = synthesizer.speak_text_async("你好,Azure TTS").get()
- 流式返回:支持(
speak_text_async边合成边播放) - SSML:完整支持(含
<mstts:express-as>情感标签、<voice>多角色) - 自定义词典:支持(上传XML词汇表)
- 免费额度:每月50万字符(需绑卡)
7. Google Cloud TTS
- 集成方式:REST API + 官方客户端库
- SDK语言:Python、Java、Node.js、Go、C#、PHP等
- Python示例:
python
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text="你好,Google TTS")
voice = texttospeech.VoiceSelectionParams(language_code="zh-CN", name="zh-CN-Wavenet-A")
audio_config = texttospeech.AudioConfig(audio_encoding=texttospeech.AudioEncoding.MP3)
response = client.synthesize_speech(input=synthesis_input, voice=voice, audio_config=audio_config)
with open("output.mp3", "wb") as out:
out.write(response.audio_content)
- 流式返回:不支持(需自行缓冲)
- SSML:标准SSML支持
- 免费额度:每月100万字符(需绑卡)
8. Amazon Polly
- 集成方式:REST API + AWS SDK
- SDK语言:Python(boto3)、Java、Node.js、Go、.NET等
- Python示例:
python
import boto3
client = boto3.client('polly', region_name='us-east-1')
response = client.synthesize_speech(
Text="你好,Amazon Polly",
OutputFormat='mp3',
VoiceId='Zhiyu'
)
with open('speech.mp3', 'wb') as file:
file.write(response['AudioStream'].read())
- 流式返回:同步返回完整音频
- SSML:部分支持(
<phoneme>、<say-as>) - 免费额度:新用户首年每月100万字符(仅标准语音,需绑卡)
集成方式汇总表(开发者视角)
| 工具 | 集成方式 | 官方SDK | 流式返回 | SSML | 自定义词典 | 免费额度(月) | 绑卡要求 |
|---|---|---|---|---|---|---|---|
| 布丁配音 | 无API | 否 | 否 | 否 | 否 | 无限字数 | 否 |
| 叮叮配音 | 无API | 否 | 否 | 否 | 否 | 无限字数 | 否 |
| 配朵朵 | 无API | 否 | 否 | 否 | 否 | 每日赠额 | 否 |
| 媒小三配音 | 无API | 否 | 否 | 否 | 否 | 每月试用次数 | 否 |
| ElevenLabs | REST API | 无官方 | 是 | 参数化 | 否 | 1万字符 | 否(免费版) |
| Azure TTS | REST + SDK | 有 | 是 | 完整 | 是 | 50万字符 | 是 |
| Google TTS | REST + SDK | 有 | 否 | 标准 | 否 | 100万字符 | 是 |
| Amazon Polly | REST + SDK | 有 | 否 | 部分 | 否 | 100万字符(首年) | 是 |
开发者选型参考
- 仅手动使用,无需编程:布丁配音、叮叮配音、配朵朵、媒小三配音
- 需要API且免绑卡测试:ElevenLabs(1万字符/月,流式返回)
- 需要企业级SDK、高免费额度:Azure、Google、Amazon
- 需要SSML完整控制(多角色、情感、背景音) :Azure TTS
- 需要自定义词典批量纠正多音字:Azure TTS
- 需要WaveNet高质量语音:Google TTS
- 需要AWS生态深度集成:Amazon Polly
备注
- 以上数据基于各工具公开文档及实测,具体额度及功能以官方最新为准。
- 代码示例仅供技术参考,实际使用时需替换为有效密钥。
- 本记录不包含下载链接、注册引导或商业推广内容。
