# text_to_voice **Repository Path**: acedar/text_to_voice ## Basic Information - **Project Name**: text_to_voice - **Description**: text_to_voice - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-18 - **Last Updated**: 2026-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Text to Voice — 文本转语音服务 一个模块化的文本转语音服务,支持多 TTS 引擎接入、声音复刻、多格式文档解析。 ## 功能特性 - **多格式文本输入**:手动输入文本,或上传 Markdown / PDF / Word / TXT 文件自动提取 - **双引擎支持**:同时接入火山引擎(字节跳动)和阿里云百炼 CosyVoice - **声音复刻**:上传 10~20 秒音频即可复刻专属声音,使用复刻声音进行合成 - **参数可调**:语速、音量、音高均可自由调节 - **长文本处理**:后端自动分段合成,支持最长 20 万字符 - **简洁前端**:响应式单页应用,开箱即用 ## 快速开始 ### 1. 环境要求 - Python 3.10+ - pip ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入你的 API Key: ```env # 阿里云百炼平台 CosyVoice DASHSCOPE_API_KEY=your_dashscope_api_key # 火山引擎声音复刻 VOLCANO_APP_ID=your_volcano_app_id VOLCANO_ACCESS_TOKEN=your_volcano_access_token VOLCANO_CLUSTER=volcano_icl ``` > 只需填写你开通了的平台的密钥,未配置的引擎会自动隐藏。 ### 4. 启动服务 ```bash # 方式一:使用启动脚本 chmod +x start.sh ./start.sh # 方式二:手动启动 python -m backend.main ``` 服务启动后访问 **http://localhost:8000** ## API 接口 | 接口 | 方法 | 说明 | |---|---|---| | `/api/engines` | GET | 获取可用 TTS 引擎列表 | | `/api/voices/{engine}` | GET | 获取指定引擎的预置音色 | | `/api/parse-file` | POST | 上传文档提取文本(支持 md/pdf/docx/txt) | | `/api/synthesize` | POST | 执行 TTS 语音合成 | | `/api/clone-voice` | POST | 上传音频进行声音复刻 | | `/api/audio/{filename}` | GET | 获取合成的音频文件 | ## 平台接入说明 ### 火山引擎 1. 前往 [火山引擎语音技术控制台](https://console.volcengine.com/speech/app) 创建应用 2. 开通「大模型声音复刻」服务 3. 获取 `APP ID` 和 `Access Token`,填入 `.env` ### 阿里云百炼 CosyVoice 1. 前往 [阿里云百炼平台](https://bailian.console.aliyun.com) 开通服务 2. 在 [API-KEY 管理](https://bailian.console.aliyun.com/#/api-key) 页面创建 API Key 3. 将 API Key 填入 `.env` 的 `DASHSCOPE_API_KEY` ## 项目结构 ``` text_to_voice/ ├── backend/ # 后端服务 │ ├── main.py # FastAPI 入口 │ ├── api.py # API 路由 │ ├── config.py # 配置管理 │ └── modules/ # 业务模块 │ ├── file_parser.py # 文件解析 │ ├── volcano_tts.py # 火山引擎 TTS + 声音复刻 │ ├── cosyvoice_tts.py # CosyVoice TTS + 声音复刻 │ └── tts_service.py # 统一调度层 ├── frontend/ # 前端页面 │ └── index.html ├── docs/ # 文档 │ └── architecture.md # 架构文档 ├── .env.example # 环境变量模板 ├── requirements.txt # Python 依赖 └── start.sh # 启动脚本 ``` 详细架构说明见 [docs/architecture.md](docs/architecture.md) ## 声音复刻使用说明 1. 准备一段 **10~20 秒** 的清晰朗读音频(WAV/MP3/M4A 格式) 2. 音频要求:无背景音乐、无噪音、无其他人声 3. 在页面「声音复刻」区域上传音频并点击「开始复刻」 4. 复刻成功后,音色列表自动新增复刻音色 5. 选择复刻音色后即可使用该声音进行语音合成 ## License [MIT](LICENSE)