一个功能完整、高性能的文本转语音(TTS)应用程序,支持双引擎、并发处理、智能过滤等特色功能。
- 腾讯云TTS - 企业级,高质量音色,支持精细参数调节
- Microsoft Edge TTS - 完全免费,无需API密钥,开箱即用
- 智能并发处理 - 最高20倍速度提升
- 智能限流控制 - 自动控制API请求频率
- 实时进度显示 - 详细的处理状态和统计信息
- 批量音频合并 - 自动合并为完整音频文件
- 智能文本过滤 - 自动跳过空行、标记行、短文本
- 特殊字符处理 - 智能处理Markdown格式、转义字符、中英文混合等
- 自动Markdown检测 - 检测.md文件自动启用智能处理(过滤代码块、标题、制表符,链接)模式
- 灵活配置管理 - 支持配置文件和命令行参数
- 多格式支持 - 支持MP3、WAV等多种音频格式
- 跨平台支持 - Windows、macOS、Linux全平台兼容
# 下载并解压最新版本
wget https://github.com/difyz9/markdown2tts/releases/latest/download/markdown2tts_linux_amd64.tar.gz
tar -xzf markdown2tts_linux_amd64.tar.gz
# 初始化配置文件和示例文件
./markdown2tts init
# 立即开始转换(完全免费)
./markdown2tts edge -i input.txt# 创建测试文件
echo "欢迎使用TTS应用,这是一个完全免费的语音合成工具" > test.txt
# 立即开始转换(配置文件会自动创建)
./markdown2tts edge -i test.txt
# 智能Markdown模式(自动检测.md文件)
echo "# 标题\n这是一段测试文本。" > test.md
./markdown2tts edge -i test.md # 自动启用智能Markdown处理
# 智能Markdown模式(推荐用于.md文件)
./markdown2tts edge -i document.md --smart-markdown -o output
# 传统模式(用于纯文本文件)
./markdown2tts edge -i document.txt -o output
# 初始化配置
./markdown2tts init
# 编辑 config.yaml,填入腾讯云密钥
nano config.yaml
# 使用腾讯云TTS
./markdown2tts tts -i input.txt# 基本使用
./markdown2tts edge # 使用默认配置
./markdown2tts edge -i input.txt # 指定输入文件
./markdown2tts edge -i input.txt -o output/ # 指定输出目录
# 查看可用语音
./markdown2tts edge --list-all # 显示所有语音(322个)
./markdown2tts edge --list zh # 显示中文语音(14个)
./markdown2tts edge --list en # 显示英文语音(47个)
# 自定义语音参数
./markdown2tts edge --voice zh-CN-YunyangNeural # 使用男声
./markdown2tts edge --voice zh-CN-XiaoyiNeural # 使用女声
./markdown2tts edge --rate +20% --volume +10% # 调整语速和音量
./markdown2tts edge --voice zh-CN-YunyangNeural --rate +15% --volume +5% --pitch +5Hz # 完整自定义# 基本使用
./markdown2tts tts # 使用默认配置
./markdown2tts tts --config custom.yaml # 使用自定义配置
./markdown2tts tts -i input.txt -o output/ # 指定输入输出
# 并发处理(默认开启)
./markdown2tts tts --concurrent # 明确启用并发模式# 合并音频文件
./markdown2tts merge --input ./temp --output merged.mp3
# 输入文件配置
input_file: "example_input.txt" # 默认输入文件路径
# 腾讯云TTS配置(企业用户)
tencent_cloud:
secret_id: "your_secret_id"
secret_key: "your_secret_key"
region: "ap-beijing"
# 腾讯TTS音频参数
tts:
voice_type: 101008 # 音色ID:101008-智琪(女声), 101007-智慧(女声), 101003-智云(男声)
volume: 5 # 音量:0-10
speed: 1.0 # 语速:0.6-1.5
primary_language: 1 # 主语言:1-中文,2-英文
sample_rate: 16000 # 采样率
codec: "mp3" # 编码格式
# Edge TTS配置(免费用户)
edge_tts:
voice: "zh-CN-XiaoyiNeural" # 语音名称
rate: "+0%" # 语速调节:-50% 到 +100%
volume: "+0%" # 音量调节:-50% 到 +100%
pitch: "+0Hz" # 音调调节:-50Hz 到 +50Hz
# 音频处理配置
audio:
output_dir: "output"
temp_dir: "temp"
final_output: "merged_audio.mp3"
silence_duration: 0.5
# 并发处理配置
concurrent:
max_workers: 5 # 最大并发数
rate_limit: 20 # 每秒请求限制
batch_size: 10 # 批处理大小
应用首次运行时会自动检测并创建必需的配置文件:
# 首次运行任何命令时都会自动初始化
./markdown2tts edge -i your_text.txt # 自动创建 config.yaml 和 input.txt
./markdown2tts tts -i your_text.txt # 同样会自动初始化如果需要手动初始化或重新初始化:
# 基本初始化
./markdown2tts init
# 自定义文件名
./markdown2tts init --config my_config.yaml --input my_input.txt
# 强制覆盖已存在的文件
./markdown2tts init --force- config.yaml - 完整的配置文件模板
- input.txt - 包含示例内容的输入文件
- 自动提示 - 详细的使用指南和下一步操作
- 学习材料制作 - 将文章、笔记转换为音频
- 有声读物制作 - 制作个人有声书
- 语言学习 - 制作外语学习材料
- 客服语音 - 生成客服自动语音
- 产品介绍 - 制作产品语音介绍
- 培训材料 - 制作员工培训音频
- 应用集成 - 为应用添加语音功能
- 自动化流程 - 批量处理文本内容
- 多媒体制作 - 制作播客、视频配音
| 特性 | 传统方式 | 本应用 |
|---|---|---|
| 处理速度 | 顺序处理,慢 | 并发处理,快20倍 |
| 费用成本 | 昂贵API费用 | Edge TTS完全免费 |
| 配置复杂度 | 复杂配置 | 一键启动 |
| 文本过滤 | 手动处理 | 智能过滤 |
| 进度显示 | 无反馈 | 实时进度 |
| 错误处理 | 容易失败 | 智能重试 |
| 功能 | 腾讯云TTS | Edge TTS |
|---|---|---|
| 费用 | 按量收费 | 🆓 完全免费 |
| 配置 | 需要API密钥 | 🚀 无需配置 |
| 音色数量 | 丰富(50+) | 中等(322) |
| 质量 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 并发支持 | ✅ | ✅ |
| 智能过滤 | ✅ | ✅ |
| 实时进度 | ✅ | ✅ |
markdown2tts/
├── main.go # 程序入口
├── config.yaml # 配置文件
├── example_input.txt # 示例输入文件
├── cmd/ # 命令行接口
│ ├── root.go # 根命令
│ ├── tts.go # 腾讯云TTS命令
│ ├── edge.go # Edge TTS命令
│ └── merge.go # 音频合并命令
├── model/ # 数据模型
│ ├── config.go # 配置结构
│ └── tts_model.go # TTS模型
├── service/ # 核心服务
│ ├── tts_service.go # 腾讯云TTS服务
│ ├── edge_tts_service.go # Edge TTS服务
│ ├── concurrent_audio_service.go # 并发处理服务
│ ├── audio_service.go # 音频处理服务
│ └── audio_merge_only_service.go # 音频合并服务
├── output/ # 输出目录
├── temp/ # 临时文件目录
└── docs/ # 文档目录
- Go 1.23+
- 网络连接
# 克隆项目
git clone https://github.com/difyz9/markdown2tts.git
cd markdown2tts
# 安装依赖
go mod download
# 构建项目
go build -o markdown2tts
# 运行测试
go test ./...
# 本地运行
./markdown2tts edge --help# Linux
GOOS=linux GOARCH=amd64 go build -o markdown2tts_linux_amd64
GOOS=linux GOARCH=arm64 go build -o markdown2tts_linux_arm64
# Windows
GOOS=windows GOARCH=amd64 go build -o markdown2tts_windows_amd64.exe
# macOS
GOOS=darwin GOARCH=amd64 go build -o markdown2tts_darwin_amd64
GOOS=darwin GOARCH=arm64 go build -o markdown2tts_darwin_arm64- zh-CN-XiaoyiNeural - 晓伊,女声,温和自然
- zh-CN-YunyangNeural - 云扬,男声,成熟稳重
- zh-CN-XiaochenNeural - 晓辰,女声,活泼可爱
- zh-CN-YunxiNeural - 云希,男声,年轻阳光
- 101008 - 智琪,女声,知性优雅
- 101007 - 智慧,女声,亲和温柔
- 101003 - 智云,男声,磁性深沉
我们欢迎所有形式的贡献!
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 🐛 Bug 修复
- ✨ 新功能开发
- 📚 文档改进
- 🎨 UI/UX 改进
- ⚡ 性能优化
- 🧪 测试覆盖
本项目采用 MIT License 开源协议。
- 腾讯云TTS - 提供企业级TTS服务
- Microsoft Edge TTS - 提供免费TTS服务
- Cobra - 强大的CLI框架
- edge-tts-go - Edge TTS Go实现
- ✅ 基础TTS功能
- ✅ 双引擎支持
- ✅ 并发处理
- ✅ 智能过滤
- ✅ 音频合并
- ✅ 跨平台支持
- 🚧 Web界面 (开发中)
- 🚧 API服务 (规划中)
- 🚧 Docker支持 (规划中)
⭐ 如果这个项目对您有帮助,请给我们一个星标!
🔔 点击 Watch 获取项目更新通知
-
配置文件错误
- 检查config.yaml格式是否正确
- 确认腾讯云密钥配置正确
-
网络错误
- 检查网络连接
- 确认腾讯云服务地域设置
-
文件权限错误
- 确保程序有创建输出目录和文件的权限
-
TTS任务失败
- 检查文本内容是否包含特殊字符
- 确认TTS参数设置是否正确
程序会输出详细的处理日志,包括:
- 读取的文本行数
- 每行文本的处理状态
- TTS任务创建和状态查询
- 音频下载和合并进度
项目使用Go语言开发,主要依赖:
- cobra: 命令行框架
- yaml.v3: YAML配置文件解析
- tencentcloud-sdk-go: 腾讯云Go SDK
cmd/: 命令行接口model/: 数据模型定义service/: 业务逻辑服务tts_service.go: 腾讯云TTS API封装audio_service.go: 音频处理和合并服务config.yaml: 配置文件服务
可以考虑的扩展功能:
- 支持更多TTS服务商
- 使用FFmpeg进行高级音频处理
- 添加语音情感控制
- 支持SSML标记语言
- 添加音频效果处理