免费文本转语音python库gTTS
的文本转语音(TTS)API,将文本转换为语音并保存为音频文件(如MP3)。它基于 Google 的 TTS 引擎,支持多种语言和发音选项。(Google Text-to-Speech)是一个 Python 库,用于调用。希望这份详细介绍对你有帮助!如果有进一步问题,欢迎讨论。(违反 Google TOS 可能被封)(依赖 Google TTS 服务)(Google 可能会封禁高频访问)如果需要更
1. 概述
gTTS(Google Text-to-Speech)是一个 Python 库,用于调用 Google Translate 的文本转语音(TTS)API,将文本转换为语音并保存为音频文件(如MP3)。它基于 Google 的 TTS 引擎,支持多种语言和发音选项。
2. 主要特性
✅ 免费使用(但有请求频率限制)
✅ 支持100+种语言和方言(如英语、中文、西班牙语等)
✅ 可调节语速(speed)(快/慢)
✅ 简单易用的 Python API
✅ 输出格式支持 MP3 或 OGG
⚠ 需要联网(依赖 Google TTS 服务)
⚠ 不适合大规模商用(可能被限流或封禁)
3. 安装方法
使用 pip 安装:
pip install gTTS
4. 基本用法
(1) 文本转语音并保存为MP3
from gtts import gTTS
# 要转换的文本
text = "你好,欢迎使用Google文本转语音服务。"
# 创建TTS对象(中文:zh-CN,英文:en)
tts = gTTS(text=text, lang='zh-CN', slow=False)
# 保存为MP3文件
tts.save("output.mp3")
参数说明:
text:要转换的文本(字符串)lang:语言代码(如'zh-CN'、'en'、'es')slow:是否慢速发音(False=正常,True=慢速)
(2) 播放生成的语音(使用Python)
import os
# 在Windows上播放
os.system("start output.mp3")
# 在Mac上播放
os.system("afplay output.mp3")
# 在Linux上播放
os.system("mpg123 output.mp3")
(3) 直接流式播放(不保存文件)
from gtts import gTTS
import io
from pydub import AudioSegment
from pydub.playback import play
text = "Hello, this is a test of Google TTS."
tts = gTTS(text=text, lang='en')
# 将语音数据存入内存
mp3_fp = io.BytesIO()
tts.write_to_fp(mp3_fp)
mp3_fp.seek(0)
# 用pydub播放
audio = AudioSegment.from_file(mp3_fp, format="mp3")
play(audio)
(需安装 pydub 和 ffmpeg)
5. 支持的语言列表
gTTS 支持 100+ 种语言,部分常用语言代码:
| 语言 | 代码 |
|---|---|
| 英语(美国) | 'en' |
| 中文(普通话) | 'zh-CN' |
| 中文(粤语) | 'zh-TW' |
| 西班牙语 | 'es' |
| 法语 | 'fr' |
| 德语 | 'de' |
| 日语 | 'ja' |
| 韩语 | 'ko' |
| 俄语 | 'ru' |
完整支持列表可参考 Google TTS 语言代码。
6. 高级用法
(1) 调整语速
tts = gTTS(text="This is a speed test.", lang='en', slow=False) # 正常速度
tts = gTTS(text="This is a slow test.", lang='en', slow=True) # 慢速
(2) 使用代理(防止请求被屏蔽)
import requests
# 设置代理
proxies = {
'http': 'http://your-proxy-ip:port',
'https': 'http://your-proxy-ip:port'
}
# 在gTTS请求中使用代理
tts = gTTS(text="Hello with proxy.", lang='en')
tts.save("proxy_output.mp3", proxies=proxies)
(3) 批量转换文本
texts = ["First sentence.", "Second sentence.", "Third sentence."]
for i, text in enumerate(texts):
tts = gTTS(text=text, lang='en')
tts.save(f"output_{i}.mp3")
7. 限制与替代方案
gTTS 的限制
❌ 请求频率受限(Google 可能会封禁高频访问)
❌ 无法自定义语音风格(如男声/女声选择)
❌ 商用需谨慎(违反 Google TOS 可能被封)
替代方案
| 方案 | 特点 |
|---|---|
| pyttsx3 | 离线TTS,依赖系统语音引擎(如Windows SAPI) |
| Edge TTS | 微软Edge的免费TTS(支持神经语音) |
| Google Cloud TTS | 官方API(付费,但更稳定) |
| Amazon Polly | AWS的高质量TTS(付费) |
| Festival/Espeak | Linux开源TTS(语音质量一般) |
8. 总结
gTTS 适合:
- 个人项目、小型实验
- 快速生成语音文件
- 多语言TTS需求
不适合:
- 高并发商用场景
- 需要高定制化语音的场合
如果需要更稳定的服务,建议使用 Google Cloud TTS 或 Microsoft Azure TTS 等商业API。
希望这份详细介绍对你有帮助!如果有进一步问题,欢迎讨论。 🚀
更多推荐
所有评论(0)