# 翻译软件 **Repository Path**: bingbingyihao/translation-software ## Basic Information - **Project Name**: 翻译软件 - **Description**: 使用通义千问asr接口、文本生成接口、tts接口实现的翻译软件 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-19 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🌐 智能语音翻译器(Qwen-powered) > 一款基于 **通义千问(Qwen)多模态 API** 构建的端到端语音翻译软件,支持「说话→识别→翻译→播报」全自动流水线,中英双向实时互译,零插件纯浏览器使用。 --- ## ✨ 核心特性 | 功能 | 说明 | |------|------| | 🎙️ **高精度语音识别(ASR)** | 调用 `qwen3-asr-flash-filetrans` 模型,支持中英文混合语音、带标点与分段识别 | | 🧠 **大模型智能翻译** | 使用 `qwen-plus` 进行上下文感知翻译,自动检测源语言,输出地道双语结果 | | 🔊 **自然语音合成(TTS)** | 通过 `qwen3-tts-flash` 生成高质量语音,支持中文/英文专属音色(如 `Cherry`) | | 📱 **响应式单页应用(SPA)** | 纯静态 HTML + JS,适配手机/平板/桌面,无需安装 App,开箱即用 | | 📈 **可视化录音反馈** | 实时音频波形动画 + 状态提示(等待/录音中/处理中/成功/失败) | | 📜 **对话历史持久化** | 翻译记录本地存储,支持点击播放生成的语音(MP3 流地址) | | ☁️ **云原生架构** | 文件上传 → OSS 存储 → ASR 异步任务 → 结果拉取,资源自动清理 | --- ## ⚙️ 技术栈 | 层级 | 技术 | |------|------| | **后端** | Spring Boot 2.3.4(Java 8)、RestTemplate、Lombok、Hutool | | **AI 服务** | [DashScope SDK](https://help.aliyun.com/zh/dashscope/developer-reference/quick-start)(ASR/TTS/Text-Generation) | | **对象存储** | Alibaba Cloud OSS(临时文件上传与转录结果下载) | | **前端** | 原生 HTML5 + CSS3(Flex/Grid + 响应式设计) + Vanilla JS(无框架) | | **部署** | 可打包为 JAR 直接运行,或容器化部署(Docker 支持友好) | --- ## 🚀 快速开始 ### 1️⃣ 前置准备 #### 🔑 获取必要 API 密钥 - **DashScope API Key** 登录 [DashScope 控制台](https://dashscope.console.aliyun.com/) →「API Key 管理」→ 创建并复制 `sk-xxx` → 填入 `application.properties` 中: ```properties dashscope.api-key=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` - **Alibaba Cloud OSS 凭据** 登录 [OSS 控制台](https://oss.console.aliyun.com/) → 创建 Bucket(推荐 `cn-beijing` 区域)→ 获取: - Endpoint(如 `https://oss-cn-beijing.aliyuncs.com`) - AccessKey ID / Secret(**强烈建议创建子账号 RAM 授权最小权限**) - Bucket Name(如 `my-translator-bucket`) → 填入 `application.properties`: ```properties aliyun.oss.endpoint=https://oss-cn-beijing.aliyuncs.com aliyun.oss.access-key-id=your_oss_ak_id aliyun.oss.access-key-secret=your_oss_ak_secret aliyun.oss.bucket-name=my-translator-bucket ``` > ⚠️ **安全提醒**: > - 切勿将密钥提交至 Git!`application.properties` 中的 `xxx` 已被忽略(请确认 `.gitignore` 包含 `application.properties`) > - 生产环境建议使用 Spring Cloud Config 或环境变量注入密钥(如 `DASHSCOPE_API_KEY`) ### 2️⃣ 启动项目 ```bash # 进入后端代码目录 cd translation-software/code # 方式一:Maven 直接运行(推荐开发) mvn spring-boot:run # 方式二:打包后运行 mvn clean package -DskipTests java -jar target/SpringBoot-1.0.0.jar ``` ✅ 启动成功后访问:`http://localhost:8080/translator.html` > 💡 默认端口 `8080` 可在 `application.properties` 中修改:`server.port=8080` ### 3️⃣ 使用流程(三步完成翻译) 1. **点击「▶ 开始录音」** → 允许麦克风权限 2. **自然说出中/英文句子**(如:“今天天气真好!” 或 “The weather is beautiful today.”) 3. **点击「⏹ 停止录音」** → 自动执行: `录音上传 → ASR 识别 → Qwen 翻译 → TTS 语音合成 → 显示双语结果 + 播放按钮` ✅ 翻译历史自动追加至页面下方,支持滚动查看与点击播放。 --- ## 🛠️ 配置说明(`application.properties`) | 配置项 | 默认值 | 说明 | |--------|--------|------| | `server.port` | `8080` | Web 服务端口 | | `spring.servlet.multipart.*` | `100MB` | 支持长语音文件上传(WebM 格式) | | `aliyun.oss.*` | — | OSS 连接参数(必填) | | `dashscope.api-key` | — | DashScope 认证密钥(必填) | | `asr.polling.interval` | `2000` | ASR 异步任务轮询间隔(毫秒) | | `asr.polling.max-attempts` | `30` | 最大轮询次数(超时约 60 秒) | --- ## 📦 项目结构 ```bash translation-software/ ├── README.md # 本文件 └── code/ # Spring Boot 后端工程 ├── pom.xml # Maven 依赖(Spring Boot 2.3.4 + OSS + Hutool + Lombok) ├── src/main/ │ ├── java/com/boot/ # 主要包结构 │ │ ├── controller/ # REST API:/api/asr/submit, /api/text/generate, /api/tts/synthesize │ │ ├── service/ # 业务逻辑:ASR/TTS/Text 服务 + OSS 文件管理 │ │ ├── config/ # 外部配置类(OSS/DashScope/RestTemplate) │ │ ├── entity/ # DTO/Response 封装(Result, DashScopeTaskXXX) │ │ └── MainApplication.java │ └── resources/ │ ├── application.properties # 运行时配置(含密钥占位符) │ └── static/translator.html # 前端单页(含完整 UI/JS/样式) └── target/ # 构建输出(JAR 包) ``` --- ## 🌐 生产部署建议 - **HTTPS 强制**:反向代理(Nginx)启用 HTTPS,并设置 `X-Forwarded-*` 头 - **OSS 权限最小化**:RAM 子账号仅授予 `oss:PutObject`, `oss:GetObject`, `oss:DeleteObject` 权限 - **ASR 异步容错**:已内置重试 + 超时机制;可增加 Redis 缓存任务状态提升并发能力 - **前端静态资源**:`translator.html` 可独立部署至 CDN(需确保 `/api/*` 请求仍代理至后端) - **日志监控**:集成 Logback + ELK 或阿里云 SLS,关注 `ASR/TTS/Text` 调用耗时与错误率 --- ## 🌱 扩展方向(欢迎 PR!) - ✅ 支持更多语言(扩展 `detectLang()` + TTS `languageType` 映射) - ✅ 离线缓存:Service Worker 缓存 `translator.html` + 离线语音库(PWA) - ✅ 语音唤醒词:集成 Web Speech API 实现“嘿,翻译”触发 - ✅ 会议模式:多人轮流发言 + 时间戳标记 + 会议纪要生成 - ✅ 插件化:支持接入 Azure STT/TTS 或 Whisper + Coqui TTS 替代方案 --- ## 📜 许可证 Apache License 2.0 Copyright © 2026 bingbingyihao/Team [查看 LICENSE](LICENSE) --- > 🌟 **Star 支持作者**|欢迎 Issue 提 Bug / Feature Request|PR 请附测试用例 > Made with ❤️ and Qwen