AivisSpeech-Engine
基于 Style-Bert-VITS2 的高性能日语 TTS 引擎,提供 REST API,兼容 VOICEVOX 接口
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 Style-Bert-VITS2 的高性能日语 TTS 引擎,提供 REST API,兼容 VOICEVOX 接口
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你正在开发一个日语学习 App,想要给每个假名配上自然流畅的语音。你翻遍了 Hugging Face、GitHub,找到的方案要么是冰冷的机器合成音,要么需要复杂到令人望而却步的模型训练流程。你想要的,只是——输入一段日语文字,得到一段像真人说话一样的语音。
这不是你一个人的需求。在日语内容创作、游戏开发、有声书制作、AI 对话机器人等领域,开发者们长期受困于「高质量日语 TTS 门槛太高」的问题。直到 AivisSpeech Engine 出现。
AivisSpeech Engine 由日本开发者 tsukumijima(同 Style-Bert-VITS2 的作者)主导的 Aivis-Project 团队推出,是一个基于 VOICEVOX ENGINE 深度定制的 AI 语音合成引擎,专为日语语音生成场景优化。
项目于 2024 年 3 月开源,至今已积累 171 Stars 和 28 个 Fork,topics 涵盖 bert-vits2、fastapi、onnx、text-to-speech 等核心技术标签,采用 LGPL-3.0 开源许可证。它不是从零训练的模型,而是基于 Style-Bert-VITS2 和 e2k 两大成熟日语 TTS 模型,通过 ONNX Runtime 实现高性能推理——既继承了 VOICEVOX 的 API 兼容性,又融入了团队对语音合成质量的前沿探索。
AivisSpeech Engine 提供了完整的 REST API 服务,核心功能包括:
文本转语音(TTS):支持日语文字输入,通过 Style-Bert-VITS2 模型生成高自然度的语音输出。引擎内置 AIVM 模型管理器,支持加载 .aivm 格式的语音模型包,自动扫描并管理本地已安装的模型,无需手动配置路径。
多风格支持:引擎支持多种「说话风格」(Style),同一个语音模型可以切换不同的情感/说话方式,输出不同音色的语音。这依赖于 Style-Bert-VITS2 的风格控制机制,通过 style_weight 参数调节风格强度。
语音后处理:内置音频后处理流水线(audio_postprocessing),支持调整语速、音高、抑扬、音量等参数。生成的原始波形经过 RawWave 处理后,输出为 WAV 格式。
模型自动管理:引擎启动时会自动扫描模型目录,通过 AivisHub 客户端从云端获取默认模型配置。如果本地模型缺失,还能自动下载补充,真正实现「下载即用」。
企业级 Cloud API:开发团队还推出了 Aivis Cloud API,基于自研的 Citoras 引擎,在 NVIDIA RTX A4000 上实现了 0.3 秒 的端到端延迟,并支持实时流式传输、多音频格式(MP3/AAC/Opus)、多租户用户词典等企业级特性,面向需要大规模部署的商业用户。
从代码结构来看,AivisSpeech Engine 的架构设计非常清晰:
voicevox_engine/
├── app/ # FastAPI Web 层(路由 + 中间件)
│ ├── application.py # ASGI 应用工厂,组装所有路由
│ ├── dependencies.py # 依赖注入(鉴权、数据库连接池等)
│ ├── middlewares.py # CORS、请求日志、错误处理
│ └── routers/ # REST API 端点(tts_pipeline, aivm_models, character...)
├── tts_pipeline/ # TTS 核心处理流水线
│ ├── tts_engine.py # TTS 引擎抽象基类
│ ├── style_bert_vits2_tts_engine.py # Style-Bert-VITS2 实现
│ ├── text_analyzer.py # 文本归一化(日语分词、假名转换)
│ ├── njd_feature_processor.py # NJD 特征处理
│ ├── kana_converter.py # 日语假名/罗马字转换
│ ├── audio_postprocessing.py # 音频后处理
│ └── model.py # AccentPhrase、Mora 等数据模型
├── aivm_manager.py # AIVM 模型管理器(核心创新点)
├── core/ # ONNX Runtime 推理核心适配层
└── utility/ # 工具类(路径、用户代理、AivisHub 客户端)
推理流程:用户发送 POST 请求 → FastAPI 路由层接收 → Text Analyzer 日语文本归一化 → Style-Bert-VITS2 TTS Engine 执行 ONNX 推理 → Audio Postprocessing 后处理 → 返回 WAV 音频。
关键依赖:style-bert-vits2 和 e2k 通过 Git 方式引入(非 PyPI),onnxruntime-gpu 针对 CUDA 做了平台区分,truststore 处理企业内网的 HTTPS 代理兼容问题,体现了对复杂部署环境的充分考虑。
Dockerfile 设计:采用多阶段构建,第一阶段从源码编译 Python 3.11.9(通过 pyenv),第二阶段基于 Ubuntu 22.04 运行时,复制编译好的 Python 环境,使用 uv 安装依赖,支持 CPU 和 GPU(CUDA)两种运行模式。
安装方式(按文档推荐排序):
python3.11 run.pydocker build,但无 docker-compose,需手动管理容器调用示例(与 VOICEVOX API 兼容):
# 文本转音频查询
curl -X POST "http://localhost:10101/audio_query" \
-d "text=こんにちは、世界" -d "speaker=1"
# 合成语音
curl -X POST "http://localhost:10101/synthesis" \
-H "Content-Type: application/json" \
-d '{"audioQuery": {...}, "speaker": 1}'
API 默认端口 10101,完全兼容 VOICEVOX ENGINE 的接口规范,从 VOICEVOX 迁移成本极低。
AivisSpeech Engine 并非没有短板。开发者在 README 中明确指出了几个核心局限:
性能瓶颈:ONNX Runtime 的单进程架构无法高效处理高并发 API 请求,对于需要同时响应成百上千用户的在线服务场景,存在根本性的架构瓶颈。这正是团队推出 Citoras 云服务的原因——用全新架构解决「一个人用很好、很多人一起用就崩」的问题。
VOICEVOX API 兼容性的代价:为了保持与 VOICEVOX ENGINE 的 API 兼容,AivisSpeech Engine 在新功能添加上受到掣肘,部分 API 规格设计得不够直观,影响开发者体验。
仅限日语:引擎的文本分析、发音处理模块均针对日语优化,直接用于其他语言(中文、英文)的效果会大打折扣。这是 Style-Bert-VITS2 模型的固有限制,而非引擎层面的问题。
Windows/macOS 仅限个人桌面:Engine 本身支持全平台,但官方桌面客户端 AivisSpeech 只支持 Windows/macOS,Linux 用户只能通过命令行或 API 方式使用。
AivisSpeech Engine 代表了一个值得关注的技术趋势——基于开源模型的高质量垂直领域 TTS 引擎的商业化探索。它以 LGPL-3.0 开源版本提供基础能力,以商业 Cloud API 的形式提供企业级服务,这种「开源免费 + 云服务付费」的双轨模式,在 VITS/HiFiGAN 系列模型中已有先例,AivisSpeech Engine 在日语垂直领域做得最为完整。
从技术影响力看,AivisSpeech Engine 推动了 Style-Bert-VITS2 模型的实际落地,结合 ONNX 推理优化和 AIVM 模型格式标准化,为日语 TTS 开源生态提供了从「模型」到「产品」的最短路径。对于想要在应用中集成日语语音合成的开发者,这是目前最值得考虑的开源方案之一。