字节笔记本

2026年2月22日

tts-now:跨平台云语音合成桌面应用

本文介绍 tts-now,一款跨平台的云语音合成桌面应用。它基于 Electron + React + TypeScript 开发,支持阿里云和讯飞云的语音合成 API,可帮助用户快速将文字转换为语音,适用于内容创作、有声读物制作等场景。

项目简介

tts-now 是由 funnyzak 开发维护的开源项目,截至目前在 GitHub 上已获得 316 stars43 forks。项目采用 Apache-2.0 许可证,主要使用 TypeScript (89.3%) 编写,基于 Electron 框架构建跨平台桌面应用。

该项目提供了直观的图形界面,让用户无需编写代码即可使用云平台的高 quality 语音合成服务,支持单文本快速合成和批量合成两种模式。

核心特性

  • 跨平台支持:提供 Windows 32/64位、macOS、Linux 的编译版本
  • 多平台接入:目前支持阿里云和讯飞云语音合成 API
  • 丰富场景:内置阿里云 99 种场景、讯飞 100+ 种场景语音合成
  • 批量合成:支持批量文本合成,提高工作效率
  • 导出管理:导出文件名自动添加场景和云服务商标识
  • 界面友好:基于 React + Ant Design 的现代化界面设计

技术栈

  • Electron - 跨平台桌面应用框架
  • React - 前端 UI 框架
  • TypeScript - 类型安全的 JavaScript 超集
  • Ant Design - UI 组件库
  • Webpack - 模块打包工具
  • Babel - JavaScript 编译器
  • ESLint + Prettier - 代码规范与格式化

安装指南

方式一:下载预编译版本

项目提供各平台的预编译二进制文件,可直接下载使用:

  1. 访问 GitHub Releases 页面
  2. 下载对应平台的安装包
  3. 安装并运行应用

方式二:从源码构建

前置要求:

  • Node.js >= 14
  • Yarn 包管理器

安装步骤:

bash
# 克隆仓库
git clone https://github.com/funnyzak/tts-now.git
cd tts-now

# 安装依赖
yarn

# 启动开发服务
yarn serve

快速开始

开发命令

bash
# 开发服务启动
yarn serve

# 代码 Lint 格式化
yarn lint

# 源构建输出
yarn dist

# 根据当前系统构建
yarn build

# 构建 Windows 版本
yarn build:windows

# 构建 Mac 版本
yarn build:mac

# 构建 Linux 版本
yarn build:linux

# 构建所有平台
yarn build:all

使用指南

配置云服务

阿里云配置

  1. 访问 阿里云语音合成控制台
  2. 创建语音合成 AppKey
  3. 获取阿里云账号 API Key
  4. 在应用中填入相关配置

讯飞云配置

  1. 访问 讯飞云语音合成服务
  2. 注册并创建应用
  3. 在讯飞云控制台添加需要的语音场景支持
  4. 在应用中填入 AppID 和 API Key

注意:使用特定语音需要在讯飞云控制台先添加对应的场景支持。

合成语音

  1. 选择云服务提供商(阿里云或讯飞)
  2. 选择语音场景和发音人
  3. 输入需要合成的文本
  4. 点击合成按钮
  5. 下载生成的音频文件

项目结构

text
tts-now/
├── app.config.js           # 基础配置
├── babel.config.js         # Babel 配置
├── build/                  # 打包输出
│   ├── binary/             # 二进制打包输出
│   └── bundle/             # 打包源输出
├── config/                 # 打包配置
│   ├── dev.js              # 开发监听启动
│   ├── dist.js             # 发布打包
│   ├── webpack.main.js     # 主进程编译
│   └── webpack.renderer.js # 渲染进程编译
├── electron.builder.js     # Electron Builder 配置
├── public/                 # 静态文件
└── src/                    # 源代码
    ├── background.ts       # Electron 主进程
    ├── index.tsx           # 入口文件
    ├── App.less            # 入口样式
    ├── assets/             # 资源文件
    ├── config/             # 应用配置
    ├── hook/               # React Hooks
    ├── layout/             # 布局组件
    ├── type/               # TypeScript 类型定义
    └── utils/              # 工具函数

注意事项

  • 使用云服务需要先在对应平台注册账号并创建应用
  • 部分语音场景需要在控制台手动开启
  • 批量合成时请注意 API 调用频率限制
  • 导出文件会自动添加场景和云服务商标识便于管理

未来计划

  • 接入百度云语音合成
  • 接入腾讯云语音合成
  • 增加升级更新提示
  • 配置框增加清除配置按钮

项目链接

许可证

Apache-2.0 License © 2021 funnyzak

分享: