绿联NAS私有云社区 门户 查看主题

【自荐】绿联NAS部署本地tts声音模型omnivoice

发布者: 0001 | 发布时间: 2026-5-2 20:25| 查看数: 500| 评论数: 2|帖子模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 pdtgY6 于 2026-5-3 10:00 编辑

    本地跑过不少模型,无一例外都对设备性能要求不低,甚至一度想过入手128G内存的Mac Studio...
    直到一天看到了这个omnivoice小模型真是眼前一亮的感觉。相比大语言模型Qwen3.6-35B-A3B-4bit(19.03 GB),Qwen3.6-35B-A3B-4bit(19.03 GB),GLM-4.7-Flash-4bit(15.71 GB),gemma-4-26b-a4b-it-4bit(14.57 GB),gemma-4-31b-it-4bit(17.18 GB),都需要20G+的显存才能跑的动,这个小模型用8G显存的RTX 4060也可以运行的起来。
    近期在给我的agent搭建skill,顺便想能不能把这个tts model放到服务器上做api调用,就有了下面这个小项目。


先放demo:[MP3](https://videotourl.com/audio/177 ... bf-b90391b38b25.wav)[MP3](https://videotourl.com/audio/177 ... c1-2e4331669375.wav)、[MP3](https://videotourl.com/audio/177 ... cf-81a70cc473dd.wav)
(什么年代了,不能插入视频和音频?)

    本项目基于OMNIVOICE https://github.com/k2-fsa/OmniVoice
    本项目仓库:https://github.com/asm0x1/omnivoice

    环境介绍:本项目源码是针对绿联NAS DXP4800Plus 16G RAM版本的docker容器写的,因为模型用到的硬件不同(Device: cpu, cuda:0, mps.macos:mps,nvidia:cuda:0,intel:cpu),所以需要的依赖也是不一样的,其他设备需要根据自己硬件改一下参数。
    我写了3种调用方式:1.基于本地的CLI调用,适合给本地agent或者自己临时使用的需求,重度本地调用agent可以在重写参数逻辑。2.基于Web API,适合给agent不在同一台主机需要远程调用需求的情况。3.基于web服务,适合小白新手的网页版操作界面。
   
    nas设备做到运行这个项目没有问题,但是离好用还差很长的距离。如果想要好用还是要在nas旁边放上一台低功耗的mac mini做小型运算设备,nas只用来做外挂硬盘。
    正好我说一下为什么要自己部署模型。现在的大模型已经蒸馏的很小了,马上就可以做到部署家用服务器数据中枢了,这个agent智能体就可以以视觉模型为输入,配合ASR模型来语音转文字,再配合一个比如今天做的omnivoice的TTS模型来做声音的实时输出就可以做到钢铁侠中的家庭顾问贾维斯了,这个东西人人都可以自己来搭建,数据都是在自己这边。

测试图片:

web ui

web ui

web ui

web ui

web ui

web ui

web ui

web ui

web ui

web ui

web ui

web ui

详细介绍下面我直接把 readme.md 贴到下面。(也可以上项目源地址查看)

OmniVoice TTS API
基于 OmniVoice 的文本转语音服务,支持声音克隆。
部署方式
Docker Compose(推荐)
  1. docker-compose up -d
复制代码
启动后:
手动运行
需要本地安装依赖并下载模型:
macOS (Apple Silicon):
  1. pip install -r requirements-macos.txt
复制代码
Linux (Docker/NAS):
测试NAS为 绿联DXP4800Plus 16G Ram版本
  1. pip install -r requirements-api.txt
复制代码
启动 API(端口 1218)和 Web UI(端口 1219):
# 终端 1: 启动 API
  1. python api.py --port 1218 --device auto
复制代码
# 终端 2: 启动 Web UI(内部自动调用 omnivoice-demo)
  1. python web.py
复制代码
启动后:
使用模式
模式端口说明
REST API1218程序调用,批量生成
Web UI1219浏览器交互界面
CLI-命令行交互模式

CLI 模式
  1. python app.py --device auto
复制代码
流程:扫描 voice_sample → 选择声音 → 输入文字 → 生成音频 → 循环

REST API
  1. # 健康检查
  2. curl http://localhost:1218/health

  3. # 查看可用声音列表
  4. curl http://localhost:1218/voice_sample

  5. # 生成语音
  6. curl -X POST http://localhost:1218/generate \
  7.   -H "Content-Type: application/json" \
  8.   -d '{"text": "你好世界", "voice_sample": "xxx声音样本"}' -o output.wav

  9. # 批量生成
  10. curl -X POST http://localhost:1218/generate_batch \
  11.   -H "Content-Type: application/json" \
  12.   -d '{"texts": ["第一段文本", "第二段文本"], "voice_sample": "xxx声音样本"}' \
  13.   -o batch_output.wav
复制代码

API 参数说明:
参数类型必填说明
textstring要合成的文本(generate接口)
textsstring[]要合成的文本数组(generate_batch接口)
voice_samplestring声音文件夹名,自动匹配音频和文本
ref_audiostring参考音频路径(voice_sample 未指定时必填)
ref_textstring参考文本或文本文件路径
languagestring语言(如 "Chinese", "English")
speedfloat语速(1.0 = 默认)
输出格式: 全部返回 24kHz mono WAV

目录结构

.
├── app.py                  # CLI 交互模式
├── api.py                  # FastAPI REST 服务(端口 1218)
├── web.py                  # Web UI 启动器(直接启动 omnivoice-demo,端口 1219)
├── start.sh                # Docker 启动脚本
├── Dockerfile
├── docker-compose.yaml
├── requirements-api.txt   # Linux/Docker 依赖(API 服务)
├── requirements-macos.txt  # macOS 本地依赖
├── voice_sample/           # 声音样本目录
│   └── <voice_name>/
│       ├── *.mp3 / *.wav / *.flac
│       └── *.txt (可选)
└── outputs/                # 生成的音频输出目录

声音样本格式
每个声音文件夹下需要包含:
  • .mp3、.wav 或 .flac 音频文件(自动使用第一个)
  • .txt 文本文件(可选,自动使用第一个;缺失时使用 Whisper 自动转录)

环境变量
变量默认值说明
AUDIO_DIRvoice_sample声音样本目录
HF_ENDPOINT-HuggingFace 镜像(Docker 已配置 https://hf-mirror.com


注意事项
  • 模型首次启动需要下载(约 1GB),请耐心等待
  • CPU 模式下生成速度较慢
  • 参考音频建议 3~10 秒,效果更好


部署方式
    1.在项目主页点击 绿色code->Download Zip。
    2.下载到本地的压缩包解压的文件夹移动到自己nas docker文件夹中。你需要在项目目录新建“voice_sample”和“outputs”文件夹,其中“voice_sample”文件夹中每个文件夹都是一个声音样本,声音样本文件夹中放入想要克隆的声音片段(3~10s),再放入存放这段声音的txt文档,CLI模式即可自动读取。
    3.docker->项目->新建,填写 项目名称 omnivoice,compose填入文件夹内的docker-compose.yaml文件内容 -> 立即部署。

    dockerfile和compose我都写了国内代理,大概几分钟可以部署完成,使用方式查看readme.md,我应该写的很清楚。
    再次提示一下,用nas跑模型真的挺慢的,10s样本音频生成4个字用了6分钟的样子。对比mac生成一大段文字只需要10s+。(其实部署在mac上是个很好的选择)

最新评论

0001发表于  2026-5-8 17:13:16
这么有意思的模型玩具竟然没人玩。。。
Rn8ovy发表于  2026-5-8 17:53:12
虽然不懂,但还是点个赞
Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表