ubuntu + Docker + piper + 实现TTS自由

作者:Android小码家日期:2026/3/6

文章目录

        • 前言
          * 启动脚本
          * 启动容器
          * 模型下载
          * 使用方式

在这里插入图片描述

前言

为什么要使用这种框架,原因很简单,分离环境和工作区间,因为我不可能只跑一个应用,因此docker就是最好的选择。
背景是实现文字转语音的简单AI功能,实现转化自由,为什么叫ai因为它集成了hugeface的语音ai模型。

启动脚本
1# 使用 Ubuntu 22.04 LTS(你指定的版本)
2FROM ubuntu:22.04
3
4ENV DEBIAN_FRONTEND=noninteractive
5
6# 安装最小运行依赖
7RUN apt-get update && \
8    apt-get install -y --no-install-recommends \
9        ca-certificates \
10        libatomic1 \
11        libgomp1 \
12        alsa-utils \
13    && rm -rf /var/lib/apt/lists/*
14
15# === 完整复制 Piper 官方打包的所有内容(推荐方式)===
16# 这样包含了 piper 可执行文件 + 所有共享库 + 自带 espeak-ng-data
17WORKDIR /opt
18COPY piper/piper_amd64.tar.gz ./
19RUN tar -xzf piper_amd64.tar.gz \
20    && mv piper piper-full \
21    && rm piper_amd64.tar.gz
22
23#  piper 可执行文件加入 PATH
24ENV PATH="/opt/piper-full:${PATH}"
25
26# 创建模型目录并复制模型
27RUN mkdir -p /models
28COPY models/zh_CN-huayan-medium.onnx /models/
29COPY models/zh_CN-huayan-medium.onnx.json /models/
30
31# 工作目录
32WORKDIR /app
33
34# 默认交互 shell
35CMD ["/bin/bash"]
36
启动容器
1// 构建镜像
2docker build -t local-piper-tts-ubuntu .
3
4// 启动容器
5docker run -it --rm \
6-v "$(pwd)/models:/models" \
7-v "$(pwd)/output:/app/output" \
8local-piper-tts-ubuntu
9
10

这里讲下 -v 意思是将当前目录下的models 挂载到容器根目录下的models

模型下载
1
2# 1. zh_CN-huayan-medium(你已经有了,但再列出来)
3wget https://huggingface.co/rhasspy/piper-voices/resolve/main/zh/zh_CN/huayan/medium/zh_CN-huayan-medium.onnx
4wget https://huggingface.co/rhasspy/piper-voices/resolve/main/zh/zh_CN/huayan/medium/zh_CN-huayan-medium.onnx.json
5
6
使用方式
1cat /app/output/狼来了.txt | piper --model /models/zh_CN-huayan-medium.onnx --output_file /app/output/狼来了.wav
2
3echo "你好!不好意思!谢谢!再见!你真漂亮!" | \
4piper --model /models/zh_CN-huayan-medium.onnx --output_file /app/output/test_zh.wav
5

就是这么简单,生成示例如下
在这里插入图片描述

想要部署的可以联系我 「我在闲鱼发布了【Docker服务部署指导】」


ubuntu + Docker + piper + 实现TTS自由》 是转载文章,点击查看原文


相关推荐


AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
阿里云云原生2026/2/26

作者:盈楹 近日,AI 原生应用开源开发者沙龙·深圳站圆满落幕。本场活动吸引了 140+ 名技术从业者深度参与,聚焦 AI 原生应用架构领域的开源技术与落地实践, 围绕 AgentScope、RocketMQ、HiMarket、Higress、LoongSuite、Agent 技术实践等议题展开深度分享,并设置了动手实操环节。 关注「阿里云云原生」公众号,后台回复:0210 免费获得深圳站讲师 PPT 合辑 精彩回顾 议题一:AgentScope:迈向 Agentic 智能体应用丨高大伟(大玮)


TypeScript 类型体操练习笔记(二)
我不吃饼干2026/2/18

进度(90 /188) 其中标记 ※ 的是我认为比较难或者涉及新知识点的题目 刷题也许没有什么意义,但是喜欢一个人思考一整天的灵光一现,也喜欢看到新奇的答案时的恍然大悟,仅此而已。 42. Medium - 1130 - ReplaceKeys ※ 实现一个类型 ReplaceKeys,用于替换联合类型中的键,如果某个类型不包含该键则跳过替换。该类型接受三个参数。 一开始我只是想这么写,我想分布式条件类型 + Pick + Omit 来实现。 type ReplaceKeys<U, T, Y>


【Kubernetes专项】K8s 配置管理中心 ConfigMap 实现微服务配置管理
.Kaser.2026/2/9

十六、K8s 配置管理中心 ConfigMap 实现微服务配置管理 16.1 ConfigMap 相关概念及cm字段 16.1.1 ConfigMap 概述 ​ Configmap 是 k8s 中的资源对象,用于保存非机密性的配置的,数据可以用 key/value键值对 的形式保存,也可通过 文件 的形式保存。 Configmap 是 k8s 中的资源, 相当于配置文件,可以有一个或者多个 Configmap;Configmap 可以做成 Volume,k8s pod 启动之后,通过 volu


VScode引入claude+deepseek
何亚告2026/1/31

最近由于项目需求以及效率需要,在vscode引入claude进行代码整理,现将引入过程记录,将相关踩坑问题复盘: 1. 安装CC-Switch ccSwitch(CC-Switch)是基于 Rust+Tauri 开发的跨平台桌面应用,核心作用是一键管理与切换 Claude Code、Codex、Gemini CLI 等 AI 编程工具的 API 配置,替代手动修改 JSON / 环境变量,大幅提升配置效率。以下是核心功能与价值 安装包下载地址:https://github.com


多标签页强提醒不重复打扰:从“弹框轰炸”到“共享待处理队列”的实战
_Jude2026/1/22

场景:我在多标签页里“接力”处理紧急待办 这篇文章讨论的不是“消息列表怎么做”,而是紧急待办的强提醒体验应该如何落地。我的核心需求很明确: 紧急消息必须强制弹框提醒(不能靠用户自己去小铃铛里找) 弹框不能手动关闭,只能通过“去处理/已读”等业务动作逐条消解 刷新后仍要继续弹:只要还有“高优先级且未处理”的消息,就必须再次弹框 多标签页不重复打扰:同一时间只允许一个标签页弹;未处理的消息能跨标签页接力,不丢失 ✅ 问题 1:多标签页重复强弹(“弹框轰炸”)💥 现象 A 中点“去处理”打开


10分钟复刻爆火「死了么」App:vibe coding 实战(Expo+Supabase+MCP)
mCell2026/1/14

视频链接:10分钟复刻爆火「死了么」App:vibe coding 实战 仓库地址:github.com/minorcell/s… 最近“死了么”App 突然爆火:内容极简——签到 + 把紧急联系人邮箱填进去。 它的产品形态很轻,但闭环很完整: 你每天打卡即可;如果你连续两天没打,系统就给紧急联系人发邮件。 恰好我最近在做 Supabase 相关调研,就顺手把它当成一次“极限验证”: 我想看看:Expo + Supabase 能不能把后端彻底“抹掉” 我也想看看:Codex + MCP 能


耗时 8 天,我用 Claude Code 开发了 AI 漫剧 APP,并开源了。
苍何2026/1/5

这是苍何的第 468 篇原创! 大家好,我是热爱编程的苍何。 去年底的时候,我写过 2 篇 AI 漫剧的文章,感兴趣的还挺多的。 也认识了非常多做 AI 漫剧的朋友,我们武汉 AI 圈也举办了 AI 漫剧沙龙,来了超级多的感兴趣的圈友。 听了很多的干货分享,当时脑海中只想快速上手来做漫剧。 但我看了很多的平台目前还只能在电脑 web 上操作,手机随时创作我还没找到什么好的 APP。 当时就有一股冲动,要不自己来尝试搞一个?当我和老婆说这个想法的时候,她说我一定疯了。 为了证明我不是疯子,我还


数据结构(四)————图
旺仔小拳头..2025/12/27

1. 无向图与有向图 1.1 定义 无向图:边是无方向的,用(顶点, 顶点)表示边有向图:边(称为 “弧”)是有方向的,用<弧尾, 弧头>表示方向 2. 连通图 2.1 连通的定义 在无向图中,若从顶点v到顶点w存在路径,则称v到w是连通的。 2.2 连通图的定义 若图中任意两个顶点都连通,则称此图为连通图。 3. 完全图 3.1 定义 具有最多边数的图称为完全图。 3.2 边数公式 无向完全图(n 个顶点):边数最大值为n(n-1)/2。有向完全图(n 个顶点):边数最


OpenAI 甩出王炸:GPT-5.2-Codex 上线,这次它想做你的“赛博合伙人”
墨风如雪2025/12/19

老实说,在 AI 模型像下饺子一样发布的 2025 年年底,大家对“颠覆性升级”这个词早就脱敏了。但 OpenAI 刚刚在 12 月 18 日悄悄放出的 GPT-5.2-Codex,还是让不少熬夜写代码的工程师虎躯一震。 这不仅仅是 GPT-5.2 的一个微调版本,更像是一次针对程序员痛点的“精准爆破”。如果说以前的 AI 是帮你补全代码的实习生,那么这次上线的 Codex,更像是一个能扛事儿的“高级合伙人”。 我花了一点时间扒了扒这背后的技术细节和实测数据,有些东西确实值得聊聊。 告别“金鱼


Cursor 又偷偷更新,这个功能太实用:Visual Editor for Cursor Browser
张拭心2025/12/11

凌晨 1 点,我正要关电脑睡觉,屏幕左下角突然弹出一个弹窗: Cursor 又上新功能了?带着好奇我仔细看了下文档:cursor.com/cn/docs/age… 我去,这个功能很重磅啊! 这次更新的 Visual Editor for Cursor Browser 是一个打破“设计”与“编码”边界的重磅功能,它让 Cursor 不仅仅是编辑器,更是一个“能直接写代码的浏览器”。 核心价值 它解决了前端开发中最大的痛点——“在浏览器里调好了样式,还得手动回代码里改”。 现在,我们可以像在 Fi

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客