├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── package.json.bak ├── public ├── electron-vite-vue.gif ├── favicon.ico └── node.png ├── src ├── App.vue ├── api │ ├── local-tts.ts │ └── tts.ts ├── assets-shim.d.ts ├── assets │ ├── electron.png │ ├── i18n │ │ └── i18n.ts │ ├── main.css │ ├── styles │ │ └── modern-theme.css │ ├── vite.svg │ └── vue.png ├── components │ ├── aside │ │ ├── Aside.vue │ │ └── Version.vue │ ├── configpage │ │ ├── BiliBtn.vue │ │ └── ConfigPage.vue │ ├── header │ │ ├── FixedHeader.vue │ │ └── Logo.vue │ ├── history │ │ └── HistoryRecord.vue │ └── main │ │ ├── FreeTTSErrorDisplay.vue │ │ ├── Loading.vue │ │ ├── Main.vue │ │ ├── MainOptions.vue │ │ ├── MainScopedStyles.css │ │ ├── MainStyles.css │ │ ├── VoiceSelector.vue │ │ ├── emoji-config.ts │ │ └── options-config.ts ├── composables │ ├── main-option.ts │ └── main.ts ├── env.d.ts ├── global-shim.d.ts ├── global │ ├── index.ts │ ├── initLocalStore.ts │ ├── registerElement.ts │ ├── voice-config.ts │ └── voices.ts ├── main.ts ├── module-shims.d.ts ├── router │ └── router.ts ├── shims-vue.d.ts ├── store │ ├── play.ts │ ├── store.ts │ ├── store.ts.bak │ ├── types.ts │ └── web-store.ts ├── types │ ├── local-tts.d.ts │ ├── pinia.d.ts │ ├── prompGPT.ts │ └── vue.d.ts ├── voice-utils.ts └── vue-shim.d.ts ├── tsconfig.json ├── tsconfig.json.bak ├── tsconfig.node.json ├── vite.config.ts ├── vite.config.ts.bak ├── voice.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # 依赖相关 2 | node_modules 3 | .pnpm-store/ 4 | 5 | # 编译输出 6 | dist 7 | dist-ssr 8 | *.local 9 | 10 | # 文档 11 | src/docs/ 12 | 13 | # 日志 14 | logs 15 | *.log 16 | npm-debug.log* 17 | yarn-debug.log* 18 | yarn-error.log* 19 | pnpm-debug.log* 20 | lerna-debug.log* 21 | 22 | # 编辑器目录和文件 23 | .vscode/* 24 | !.vscode/extensions.json 25 | !.vscode/settings.json 26 | .idea 27 | .DS_Store 28 | *.suo 29 | *.ntvs* 30 | *.njsproj 31 | *.sln 32 | *.sw? 33 | 34 | # 环境变量 35 | .env 36 | .env.* 37 | !.env.example 38 | 39 | # 测试覆盖率 40 | coverage 41 | .nyc_output 42 | 43 | # 缓存 44 | .eslintcache 45 | .stylelintcache 46 | .temp 47 | .cache 48 | 49 | # 构建和发布 50 | release/*.zip 51 | release/*.exe 52 | release/*.dmg 53 | release/*.AppImage 54 | !release/*/ 55 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 2025-04-20 2 | 3 | [v2.0.0](https://github.com/electron-vite/electron-vite-vue/pull/156) 4 | 5 | 这是一个基于原项目二次开发的新版本,从2.0.0版本开始重新编号。 6 | 7 | 主要功能更新: 8 | 9 | 1. **支持Web在线部署访问** 10 | * 项目支持直接部署到Web服务器,可通过浏览器在线访问使用 11 | * 不再局限于桌面应用,使用更加便捷 12 | 2. **修复Edge Speech API问题** 13 | * 修复了Edge本地朗读接口无法使用的问题 14 | * 优化了接口的稳定性和响应速度 15 | * 需要下载桌面端免费调用 16 | 3. **第三方中转TTS88 API支持** 17 | * 新增对TTS88 API的支持 18 | * 提供更多语音转换选择,提高转换质量和效率 19 | 20 | ## 2025-05-15 21 | 22 | [v2.1.0]() 23 | 24 | 此版本主要对用户界面和交互体验进行了全面优化,提高了应用的易用性和视觉吸引力。 25 | 26 | ### 用户界面与交互改进: 27 | 28 | 1. **设置区域可折叠设计** 29 | * 添加了可折叠的设置面板,点击"语音设置"标题可展开/折叠 30 | * 折叠时节省界面空间,让用户专注于文本输入 31 | * 展开时可完整显示所有设置选项 32 | 33 | 2. **"开始转换"按钮位置优化** 34 | * 将按钮从页面底部移至顶部与标题同行 35 | * 解决用户需要滚动到页面底部才能点击按钮的问题 36 | * 无论用户在页面哪个位置,都能轻松开始转换过程 37 | 38 | 3. **状态反馈增强** 39 | * 添加了"准备好了吗?"和"正在转换中..."等状态提示文字 40 | * 按钮加载状态视觉反馈更明确 41 | * 完善的错误提示和成功通知机制 42 | 43 | 4. **视觉设计提升** 44 | * 按钮添加了微妙的光效动画,增强用户体验 45 | * 优化颜色和阴影效果,使界面更现代化 46 | * 统一了各组件的视觉风格 47 | 48 | 5. **响应式布局改进** 49 | * 优化了在不同屏幕尺寸下的显示效果 50 | * 移动设备上的交互体验更加友好 51 | * 设置区网格布局自动适应屏幕宽度 52 | 53 | 这次更新极大地提升了应用的用户体验,使TTS-Web-Vue更加易用、高效和美观。特别是"开始转换"按钮位置的优化,彻底解决了以往用户体验中的痛点问题。 54 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 草鞋没号 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TTS-Vue Web版本 2 | 3 | 🎤 微软语音合成工具,Web版本,使用 `Vue` + `ElementPlus` + `Vite` 构建。 4 | 5 | ## 网站示例 6 | 7 | https://web.tts88.top 8 | ### 新版本界面 9 |  10 | 11 | ### 旧版本界面 12 |  13 | 14 | ## 功能特点 15 | 16 | - 🌐 完全Web化,无需安装桌面应用 17 | - 🔊 支持微软多种语音合成 18 | - 🚀 支持TTS88 API集成 19 | - 🆓 支持免费TTS调用,每日免费额度 20 | - 🧠 支持OpenAI的文本生成 21 | - 🌍 支持多语言:中文、英文、西班牙语 22 | - 🔐 浏览器指纹识别,更安全的用户体验 23 | 24 | ## 最新更新 25 | 26 | ### 界面重构与功能增强 (v2.2.0) 27 | 28 | - 📱 **UI重构**:固定顶部导航,文本框采用吸顶模式,优化移动端适配 29 | - 🔤 **SSML增强**:新增SSML格式化功能,自动根据设置变化更新SSML 30 | - 🎵 **播放器优化**:集成播放器到主界面,改进音频播放和下载体验 31 | - 🎞️ **字幕功能**:新增在线生成字幕功能,提升内容创作效率 32 | - 🌓 **主题优化**:改善暗黑模式下的界面表现,增加全局主题切换 33 | - 🛠️ **高级设置**:优化免费TTS服务界面,新增语速和音调配置 34 | - 💡 **交互体验**:添加工具提示功能,增强用户操作指引 35 | - 🔄 **依赖升级**:Vue更新至3.5.11,ElementPlus更新至2.9.9 36 | - 🌐 **链接更新**:更新GitHub仓库地址 37 | 38 | ### 免费TTS服务集成 (v2.1.0) 39 | 40 | - 🆕 **免费TTS功能**:无需API密钥,每日都有免费额度 41 | - 👤 **浏览器指纹识别**:保证每个用户公平使用免费额度 42 | - 🔄 **额度状态显示**:实时显示剩余免费字符数和重置时间 43 | - 🌐 **服务器状态检测**:自动检测免费TTS服务器连接状态 44 | - 🛡️ **增强错误处理**:更友好的错误提示和状态反馈 45 | - 🎛️ **免费TTS设置面板**:方便用户配置和查看额度信息 46 | 47 | ### 界面与用户体验优化 (v2.0.0) 48 | 49 | - ✨ **设置区域优化**:设置面板支持折叠,点击"语音设置"标题即可展开/折叠 50 | - 🔘 **智能按钮位置**:"开始转换"按钮移至顶部,无需滚动即可点击 51 | - 💬 **状态提示增强**:添加直观的转换状态提示文字 52 | - 🎨 **视觉效果改进**:按钮添加光效动画,增强用户体验 53 | - 📱 **响应式布局优化**:改进在不同屏幕尺寸下的显示效果 54 | 55 | 这些改进大大提升了使用效率,特别是解决了传统设计中用户需要滚动到页面底部才能点击"开始转换"按钮的问题。现在,无论用户在页面的哪个位置,都可以轻松启动转换过程。 56 | 57 | ## 开发计划 58 | 59 | > **📢 重要通知:桌面版本正在开发中!** 60 | > 我们正在开发跨平台桌面应用版本,将支持更多功能和更好的用户体验。 61 | > 敬请期待后续更新,请关注项目动态获取最新信息。 62 | 63 | ## 快速开始 64 | 65 | ### 开发环境 66 | 67 | ```bash 68 | # 克隆仓库 69 | git clone https://github.com/henryhu55/tts-web-vue.git 70 | 71 | # 安装依赖 72 | yarn install 73 | 74 | # 启动开发服务器 75 | yarn dev 76 | ``` 77 | 78 | ### 生产构建 79 | 80 | ```bash 81 | # 构建生产版本 82 | yarn build 83 | 84 | # 预览生产版本 85 | yarn preview 86 | ``` 87 | 88 | ## 部署 89 | 90 | 构建完成后,将 `dist`目录的内容部署到任何静态Web服务器上即可。 91 | 92 | ## API配置 93 | 94 | 本Web版本目前支持免费TTS服务、TTS88 API和OpenAI API: 95 | 96 | ### 免费TTS服务配置 97 | 98 | 1. 在设置页面中找到"免费TTS服务"选项 99 | 2. 系统默认配置了免费TTS服务器地址 100 | 3. 您可以查看当日剩余免费额度和重置时间 101 | 4. 每个浏览器客户端拥有独立的免费额度 102 | 103 | ### TTS88 API配置 104 | 105 | 1. 在设置页面中找到"第三方API URL"设置选项 106 | 2. 输入您的TTS88 API地址 107 | 3. 如果有API密钥,请输入到"TTS88 API密钥"字段 108 | 109 | ### OpenAI API配置 110 | 111 | 1. 在设置页面中找到OpenAI设置选项 112 | 2. 输入您的OpenAI API密钥 113 | 3. 选择要使用的模型(默认为gpt-3.5-turbo) 114 | 4. 如果使用自托管或代理,可以设置自定义的API Base URL 115 | 116 | ## 注意事项 117 | 118 | - 数据仅存储在浏览器本地存储中,刷新或清除缓存不会影响到其他用户 119 | - 转换后的音频文件可以直接在浏览器中播放或下载到本地 120 | - 免费TTS服务每日有使用额度限制,超出需等待次日重置 121 | 122 | ## 技术栈 123 | 124 | - Vue 3.2 125 | - Pinia 126 | - ElementPlus 127 | - Vite 128 | 129 | ## 许可证 130 | 131 | MIT License 132 | 133 | ## 开始使用 134 | 135 | - [项目简介](https://docs.tts88.top//guide/intro.html) 136 | - [安装运行](https://docs.tts88.top//guide/install.html) 137 | - [功能介绍](https://docs.tts88.top/guide/features.html) 138 | - [常见问题](https://docs.tts88.top//guide/qa.html) 139 | - [更新日志](https://docs.tts88.top//guide/update.html) 140 | 141 | ## 注意 142 | 143 | 该软件以及代码仅为个人学习测试使用,请在下载后24小时内删除,不得用于商业用途,否则后果自负。任何违规使用造成的法律后果与本人无关。该软件也永远不会收费,如果您使用该软件前支付了额外费用,或付费获得源码或成品软件,那么你一定被骗了! 144 | 145 | **搬运请注明出处。禁止诱导他人以加群、私信等方式获取软件的仓库、下载地址和安装包。** 146 | 147 | ### 意见问题反馈,版本发布企鹅群: 148 | 149 | `【tts-web-vue问题反馈群1】279895662` 150 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |为确保隐私,转换记录仅存储在当前浏览器中,有效期为1天
6 |暂无转换记录
61 | 62 |{{ message }}
17 | 18 |