TextyMcSpeechy

GitHub
637 35 中等 1 次阅读 1周前MIT音频
AI 解读 由 AI 自动生成,仅供参考

TextyMcSpeechy 是一款专为树莓派等离线环境设计的开源工具,旨在帮助用户轻松创建个性化的 Piper 文本转语音(TTS)模型。它解决了传统语音合成定制门槛高、依赖云端服务以及数据准备繁琐的痛点,让用户无需联网即可在本地完成从录音采集、数据集构建到模型训练的全过程。

无论是希望用家人声音制作趣味语音克隆的普通爱好者,还是需要为 Home Assistant 等智能家居项目部署多语言语音助手的开发者,都能从中受益。TextyMcSpeechy 支持利用用户自己的录音或数千种现有的 RVC 声音资源来训练模型,并允许通过微调预训练检查点来大幅缩短训练时间。

其技术亮点在于高度集成的自动化工作流:内置的数据集录制工具可快速生成标准元数据文件;训练过程中支持实时监听效果,方便及时调整;同时采用 Docker 容器化部署,极大简化了安装与环境配置。此外,它还提供了自定义发音规则指南及多语言配置文件,近期更新更增加了对 21 种额外语言的支持及断点续训功能,确保在资源受限设备上也能稳定运行。作为一个完全免费且注重隐私的业余项目,TextyMcSpeechy 让高质量语音合成的定制化变得触手可及。

使用场景

一位智能家居爱好者希望为运行在树莓派上的 Home Assistant 系统添加家人的个性化语音播报功能,让设备能用孩子或老人的声音提醒日程。

没有 TextyMcSpeechy 时

  • 技术门槛极高:手动配置 Piper TTS 训练环境复杂,需分别处理音频清洗、文本对齐及音素规则,非专业开发者难以入手。
  • 硬件限制明显:传统训练流程依赖高性能 GPU,无法直接在资源受限的树莓派上离线完成模型微调与推理。
  • 迭代反馈缓慢:训练过程中无法实时监听中间生成的语音效果,往往需等待数小时训练结束后才能发现音色偏差,试错成本巨大。
  • 多语言支持困难:自定义发音规则和非英语数据集的预处理流程繁琐,缺乏统一的配置文件管理,容易出错。

使用 TextyMcSpeechy 后

  • 一键式工作流:通过内置脚本快速录制并生成符合标准的 metadata.csv 数据集,自动应用自定义发音规则,大幅降低数据准备难度。
  • 边缘设备原生支持:利用 Docker 容器化方案,直接在树莓派上离线运行训练与推理,无需云端依赖或昂贵显卡。
  • 实时训练监听:在训练进行时即可随时试听当前检查点生成的语音,即时调整参数,确保最终音色高度还原。
  • 全球化语言适配:预置支持包括中文、越南语等在内的 20 多种语言配置文件,轻松实现多语种个性化语音克隆。

TextyMcSpeechy 将复杂的语音克隆工程简化为树莓派上的几步操作,让每个人都能低成本拥有专属的离线 AI 语音助手。

运行环境要求

操作系统
  • Linux
  • Windows (需通过 WSL)
GPU

必需 NVIDIA GPU 且支持 CUDA(CPU 训练技术上可行但不受官方支持),具体型号和显存大小未说明

内存

未说明(但提到内存不足可能导致训练崩溃)

依赖
notes该项目主要基于 Shell 脚本编写,推荐使用 Debian 系 Linux 发行版(Arch 有报告问题)。Windows 用户必须使用 WSL 运行。基础安装需约 15GB 存储空间,建议至少预留 50GB 空闲空间用于存储检查点文件。项目通过 Docker 容器运行 Piper,首次使用预构建镜像需下载约 6GB 文件(解压后超 10GB)。
python未说明
Docker
NVIDIA Container Toolkit
NVIDIA Drivers
espeak-ng
TextyMcSpeechy hero image

快速开始

TextyMcSpeechy

将任何声音转换为 Piper 文本转语音模型

  • 使用您自己的语音样本或现有语音数据集创建自定义 Piper TTS 模型
  • 学习如何使用 RVC 模型将公共领域数据集转换为另一种声音
  • 学习如何从音频片段和文本转录中制作自定义数据集
  • 使用数据集录制器为您的家人和朋友制作有趣的 TTS 克隆
  • 在便捷的训练环境中,随着训练的进行聆听您的声音
  • 通过微调预训练检查点文件,快速训练自定义 TTS 声音
  • 现在以 Docker 容器运行 Piper,安装更加方便
  • 包含用于创建自定义发音规则的原始资源。
  • 包含使用自定义 Piper 声音与 Home Assistant 配合使用的原创指南
  • 100% 免费,100% 离线运行。

这个业余项目获得了大量媒体报道! 多酷啊!?

新闻

2025年3月8日 - 预训练检查点的更简单选项

  • download_defaults.sh 现在可以使用 generic 语言包下载检查点,这些检查点可以用作训练任何语言声音的起点。这个选项可能会牺牲一点语音质量来换取便利性,但它会让新用户更容易上手。
  • 请注意,目前在 Hugging Face 上似乎没有可用的兼容 low 质量预训练检查点。这意味着只能从下载的预训练检查点文件中构建 mediumhigh 质量的声音。您仍然可以从头开始训练一个 low 质量模型,并将其某个检查点用作未来模型的预训练检查点。
  • run_training.sh 现在会在清空 training_folder 之前保存其中所有未保存的检查点,这将使训练营在因内存不足而崩溃时更容易恢复。
  • piper_training.sh 现在会正确应用质量参数。
  • 预告:esauvisky 在拉取请求中做了一些非常令人兴奋的事情,这些事情应该会使构建自定义语音数据集变得容易得多。迫不及待想看到它的实际效果了。

2025年3月5日 - 修复了 download_defaults.sh,使其能够处理文件名不符合规范的 .ckpt 文件。

  • download_defaults.sh 现在会使用启发式方法重命名那些没有符合 epoch=1000-step=3493434.ckpt 格式要求的检查点文件。
  • 脚本执行完毕后,现在会列出 .conf 文件中提供的所有语音类型和质量组合的摘要。

2025年3月3日 - 预处理流程改进,修复自定义发音未用于训练的问题,新增 .conf 文件。

  • 添加了在 training_folder 中找到已预处理数据集时跳过或重新初始化预处理的选项。
  • 发现尽管自定义发音规则在 Docker 容器内编译正确,但 piper_phonemize 实际上使用的是另一套规则来进行预处理。container_apply_custom_rules.sh 已更新以纠正此问题。
  • 非常感谢 kelmoran 整理了一整套用于下载英语以外语言预训练检查点的 .conf 文件!

2025年3月2日 - 补充了缺失的语言

  • 添加了 21 种由 espeak-ng 支持的语言,这些语言此前由于 ChatGPT 重新格式化 Markdown 表格时提供的列表被截断,导致它们在 create_dataset.shespeak_language_identifiers.txt 中缺失。
  • 除了之前支持的所有语言外,僧伽罗语、斯洛伐克语、斯洛文尼亚语、卢勒萨米语、西班牙语(西班牙)、西班牙语(拉丁美洲)、斯瓦希里语、瑞典语、泰米尔语、泰语、土库曼语、鞑靼语、泰卢固语、土耳其语、维吾尔语、乌尔都语、乌兹别克语、越南中部方言、越南北部方言、越南南部方言以及威尔士语现在也都可以使用了。

2025年2月24日 - 修复了手动编辑声音以符合 Home Assistant 要求的文档

  • 我之前关于这一过程的文档生成的声音虽然可以在 Home Assistant 的用户脚本中使用,但我发现当它们用于在 设置 > 语音助手 中创建实体时,如果 .onnx.json 文件中设置的字段与预期稍有不同,就会导致崩溃。
  • 我已经更新了 文档,以纠正这个问题。
  • 这不应影响使用最新版本 TextyMcSpeechy 训练的声音。

2025年2月21日 - 符合 Piper 规范的文件名,从零开始训练时的工作流程改进

  • 现在导出的语音模型文件名符合 Piper 的命名规范(例如 en_US-bob_1234-medium.onnx)。
  • 导出的 .onnx.json 文件中的字段现在设置正确。
  • 这些更改应使所有导出到 tts_dojo/tts_voices 的模型无需修改即可在 Home Assistant 中使用。
  • 修复了从零开始训练的会话恢复时菜单出现的问题。

2025年2月20日 - 多语言支持的改进

  • 现在 run_training.sh 提供了从零开始训练模型的选项(即不使用预训练检查点文件)。
  • create_datasets.sh 现在会将 espeak-ng 的语言标识符存储在 dataset.conf 中,这样在预处理时就无需手动设置语言了。
  • 构建符合 Piper 命名规范的文件名所需的语言代码也会存储在 dataset.conf 中。
  • 使用早期版本 TextyMcSpeechy 创建的数据集需要更新:create_datasets.sh <dataset_folder>
  • DATASETS/espeak_language_identifiers.txt 提供了清晰的说明,指导在设置数据集时应使用哪些语言代码。

2025年2月18日 - 出现了一个新的主分支!

  • 这个全新的分支以 Docker 容器运行 Piper,使得安装过程变得轻松许多。
  • 该分支中的脚本和文档均已全面更新。
  • 以前称为 main 的分支现在成为 非容器化 分支。它将作为参考保留,但不再维护。

2025年2月17日 - 最新功能:

  • 现在可以通过选择控制台并按下 t 键来保存 tmux 训练环境的布局。下次运行时,该布局将自动应用。
  • 自定义发音规则现在可以在 tts_dojo/ESPEAK_RULES 中定义。每当 textymcspeechy-piper 容器通过 ESPEAK_RULES/automated_espeak_rules.sh 启动时,这些规则都会自动应用。

使用方法

请阅读 快速入门指南,了解如何构建数据集和训练模型。

本仓库中的原始指南:

系统要求

  • 需要配备可运行 CUDA 的驱动程序的 NVIDIA GPU。虽然理论上可以在 CPU 上进行训练,但官方并不支持此方式。
  • 至少需要一个具备足够存储空间的硬盘,用于存放基础安装文件(约 15GB)以及训练过程中生成的检查点文件。建议至少预留 50GB 的可用空间作为实际最低要求。
  • 本项目完全由 Shell 脚本编写,主要面向 Linux 用户。推荐使用基于 Debian 的发行版;有报告称在 Arch 系统上可能会遇到问题。Windows 用户则需要通过 WSL 来运行。

安装步骤:

  1. 通过运行 nvidia-smi 检查当前是否已安装 NVIDIA 驱动程序。如果出现类似下图的画面,您可以直接跳至第 3 步: image
  2. 如果您的系统尚未安装 NVIDIA 驱动程序,建议您使用所用发行版的“官方”方法进行安装。关于具体操作,我无法提供更多指导——过去我曾因安装了不合适的驱动程序而导致操作系统损坏,耗费数小时才得以修复。如果您顺利通过这一步,请继续执行第 3 步。
  3. 通过运行 docker --version 检查 Docker 是否已安装。如果已安装,则跳至第 5 步。
  4. 您可以按照此处的说明安装 Docker:https://docs.docker.com/engine/install/
  5. 为了在 Docker 容器中启用 GPU 访问权限,您需要安装 NVIDIA Container Toolkit:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
  6. 克隆本仓库:
git clone https://github.com/domesticatedviking/TextyMcSpeechy
  1. TextyMcSpeechy 目录下运行以下命令,以安装相关软件包、使脚本可执行、选择要运行的容器类型,并验证所需工具是否已正确安装:
sudo bash setup.sh
  1. 安装完成。如果您选择了使用 Docker Hub 上的预构建容器,它将在您首次运行 run_container.sh 脚本或开始训练模型时自动下载。请注意,该镜像的下载大小约为 6GB,解压后将超过 10GB。
  2. 继续阅读快速入门指南,开始训练模型。

备注

  • 预构建的 Docker 容器会自动安装,您无需手动下载。不过,如果您仍想手动下载,可以运行以下命令:
docker image pull domesticatedviking/textymcspeechy-piper:latest
  • 若要根据主 TextyMcSpeechy 目录下的 Dockerfiledocker-compose.yml 构建自己的镜像,请切换到该目录并运行:
docker compose build
  • 提供了用于启动 textymcspeechy-piper 镜像的脚本,无论该镜像是预构建的还是本地构建的。

    • local_container_run.sh 用于启动您使用 Dockerfiledocker-compose.yml 自行构建的镜像。
    • prebuilt_container_run.sh 用于启动预构建的镜像。
    • run_container.sh 是一个别名脚本,指向上述其中一个脚本。它会在 run_training.sh 脚本调用时自动启动容器,以便开始训练。
    • stop_container.sh 可用于停止正在运行的 textymcspeechy-piper 容器。
  • 自定义的 espeak-ng 发音规则可以在 tts_dojo/ESPEAK_RULES 目录中定义。有关自定义发音的指南请参阅此处

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|今天
音频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|2天前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|3天前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|2天前
音频

airi

airi 是一款开源的本地化 AI 伴侣项目,旨在将虚拟角色(如“二次元老婆”或赛博生命)带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力,让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。 airi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手,airi 允许用户在本地运行,不仅保护了对话隐私,还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天,甚至能直接参与《我的世界》(Minecraft)和《异星工厂》(Factorio)等游戏,实现了从单纯对话到共同娱乐的跨越。 这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者,以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持(涵盖 Web、macOS 和 Windows)以及强大的游戏交互能力,让 AI 不仅能“说”,还能“玩”。通过容器化的灵魂设计,airi 为每个人创造专属数字生命提供了可能,让虚拟陪伴变得更加真实且触手可及。

37.1k|★☆☆☆☆|今天
语言模型音频Agent