# 文字tts软件 **Repository Path**: bingbingyihao/text-tts-software ## Basic Information - **Project Name**: 文字tts软件 - **Description**: 利用通义千问的tts接口进行文本转语音播放 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-20 - **Last Updated**: 2026-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文字转语音(TTS)软件 —— 基于通义万相·TTS Flash 的轻量级 Web 工具 > 🎙️ 一键将中文/英文文本合成为自然流畅的语音,支持历史记录缓存与点击播放,开箱即用。 --- ## 🔍 项目简介 本项目是一个基于 **Spring Boot 2.3.4** 构建的轻量级 Web 应用,前端采用纯 HTML/CSS/JS(无框架),后端调用 **阿里云 DashScope 平台的 `qwen3-tts-flash` 模型接口**,实现: - ✅ 文本到语音(TTS)实时合成(支持中/英多语种) - ✅ 前端自动缓存音频 URL(localStorage,1 小时 TTL),避免重复请求 - ✅ 响应式聊天式 UI,支持点击文字直接播放语音 - ✅ 完整错误处理、加载状态与用户提示 - ✅ 零依赖部署:打包为单个 JAR 即可运行 > ⚠️ 注意:本项目**不托管或存储任何用户语音数据**,所有音频由 DashScope 服务生成并返回临时 URL(有效期通常为 24 小时),前端仅缓存该 URL。 --- ## 🧰 技术栈 | 类别 | 技术/库 | 说明 | |------------|-----------------------------|------| | 后端框架 | Spring Boot 2.3.4 | 基础 Web 服务与 REST API | | HTTP 客户端 | `RestTemplate` | 调用 DashScope TTS 接口 | | JSON 处理 | Jackson | 解析 API 响应 | | 工具类 | Hutool 5.8.15 | 简化开发(未在代码中显式使用,但已引入) | | 日志 | SLF4J + Logback | 默认 Spring Boot 日志 | | 前端 | 原生 HTML5 / CSS3 / ES6 | 响应式设计,无外部 JS 框架依赖 | | 构建工具 | Maven 3.6+ | 标准 Java 构建 | --- ## 🚀 快速开始 ### 1. 前置条件 - ✅ JDK 8 或更高版本(推荐 JDK 11+) - ✅ Maven 3.6+ - ✅ 有效的 [DashScope API Key](https://dashscope.console.aliyun.com/)(需开通 `qwen3-tts-flash` 权限) ### 2. 获取项目 ```bash git clone https://github.com/your-username/text-tts-software.git cd text-tts-software/code ``` ### 3. 配置 API Key(⚠️ 关键步骤!) 编辑 `src/main/resources/application.properties`: ```properties # 替换为你的真实 API Key(务必保密!) dashscope.api-key=sk-xxx # (可选)自定义 DashScope Endpoint(默认已设为官方地址) # dashscope.endpoint=https://dashscope.aliyuncs.com/api/v1 ``` > 🔐 **安全提醒**: > - 切勿将 `sk-xxx` 提交至公开仓库!建议使用 `.gitignore` 排除 `application.properties`,或改用环境变量注入(见下方「生产部署」)。 ### 4. 启动应用 ```bash # 方式一:Maven 直接运行(开发调试) mvn spring-boot:run # 方式二:打包后运行(推荐部署) mvn clean package java -jar target/SpringBoot-1.0.0.jar ``` ✅ 启动成功后,访问 `http://localhost:8080` 即可使用 Web 界面。 --- ## 📡 API 接口说明 | 方法 | 路径 | 参数(Query) | 说明 | |------|-----------------------|------------------------------------------|------| | POST | `/api/tts/synthesize` | `text`(必填)、`languageType`(必填)、`voice`(可选) | 调用 TTS 服务生成音频 URL | ### ✨ 请求示例(浏览器地址栏) ``` http://localhost:8080/api/tts/synthesize?text=你好世界&languageType=zh&voice=Serena ``` ### ✅ 响应格式(JSON) ```json { "code": 200, "message": "操作成功", "data": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.mp3?Expires=xxx" } ``` > 💡 `voice` 可选值(以 DashScope 文档为准):`Cherry`, `Serena`, `Xiaoyan`, `Yunxi`, `Zhiyu` 等(中文常用 `Cherry`/`Serena`;英文推荐 `Emma`/`Jack`)。未传时默认 `Cherry`。 --- ## 🛠️ 本地开发与定制 - **前端页面**:`src/main/resources/static/index.html` —— 全部逻辑内联,可直接修改样式/交互。 - **历史缓存**:使用 `localStorage` 存储 `{text, audioUrl, timestamp, id}`,TTL = 1 小时(可修改 `CACHE_TTL_MS` 常量)。 - **文本长度限制**:前端 `