504 lines
11 KiB
Markdown
Executable File
504 lines
11 KiB
Markdown
Executable File
---
|
||
title: XiaoZhiAI_server32_Unity
|
||
description: 基于Unity的小智AI视觉交互服务,实现语音与Live2D多模态人机交互体验
|
||
---
|
||
|
||
# XiaoZhiAI_server32_Unity
|
||
|
||
<div class="project-header">
|
||
<div class="project-logo">
|
||
<img src="./images/logo.png" alt="Unity Logo">
|
||
</div>
|
||
<div class="project-badges">
|
||
<span class="badge platform">跨平台</span>
|
||
<span class="badge language">C#/Unity</span>
|
||
<span class="badge status">活跃开发中</span>
|
||
</div>
|
||
</div>
|
||
|
||
## 项目简介
|
||
|
||
XiaoZhiAI_server32_Unity是一个基于Unity开发的AI应用程序,专注于提供高质量的语音交互和网络服务功能。本项目利用Unity的跨平台特性,支持多种设备和操作系统,包括PC、Android、iOS、WebGL和微信小程序,为用户提供流畅的AI语音与Live2D交互体验。
|
||
|
||
## 技术架构
|
||
|
||
XiaoZhiAI_server32_Unity基于以下技术栈构建:
|
||
|
||
- **开发引擎**:Unity 2020.3或更高版本
|
||
- **目标平台**:PC、Android、iOS、WebGL、微信小程序
|
||
- **核心功能模块**:
|
||
- **语音交互系统**:实时语音识别、自然语言处理、语音合成
|
||
- **Live2D交互**:服务端返回LLM表情交互Live2D
|
||
- **Mqtt硬件交互**:服务端functioncall处理IoT返回
|
||
|
||
- **依赖包**:
|
||
- OPUS解码SDK
|
||
- WebSocket网络通信库
|
||
- YooAsset资源管理框架2.3.7版本
|
||
- YuikFrameWork (YOO分支)
|
||
- Hycrl热更新框架
|
||
|
||
|
||
## 核心功能
|
||
|
||
### 语音交互能力
|
||
|
||
<div class="features-grid">
|
||
<div class="feature-card">
|
||
<div class="feature-icon">🎤</div>
|
||
<h3>实时语音识别</h3>
|
||
<p>支持多种语言的实时语音转文字,准确率高达95%以上</p>
|
||
</div>
|
||
|
||
<div class="feature-card">
|
||
<div class="feature-icon">🧠</div>
|
||
<h3>自然语言理解</h3>
|
||
<p>基于深度学习的语义分析,精准理解用户意图</p>
|
||
</div>
|
||
|
||
<div class="feature-card">
|
||
<div class="feature-icon">🔊</div>
|
||
<h3>语音合成</h3>
|
||
<p>自然流畅的语音输出,支持多种音色和语速调节</p>
|
||
</div>
|
||
|
||
<div class="feature-card">
|
||
<div class="feature-icon">🤖</div>
|
||
<h3>Live2D表情交互</h3>
|
||
<p>根据LLM返回结果实现实时表情变化和情感表达</p>
|
||
</div>
|
||
|
||
<div class="feature-card">
|
||
<div class="feature-icon">📱</div>
|
||
<h3>IoT与Mqtt对接</h3>
|
||
<p>通过functioncall实现智能家居设备控制和状态反馈</p>
|
||
</div>
|
||
|
||
<div class="feature-card">
|
||
<div class="feature-icon">🔄</div>
|
||
<h3>热更新支持</h3>
|
||
<p>基于Hycrl框架的热更新能力,无需重装即可升级</p>
|
||
</div>
|
||
</div>
|
||
|
||
## 环境要求
|
||
|
||
### 开发环境
|
||
- Unity版本:2020.3或更高
|
||
- 操作系统:Windows 10/11(开发环境)
|
||
|
||
### 运行环境
|
||
- **PC平台**:
|
||
- 操作系统:Windows 10/11、macOS 10.14+
|
||
- 处理器:Intel i5或同等性能
|
||
- 内存:8GB以上
|
||
- 显卡:支持DirectX 11
|
||
|
||
- **移动平台**:
|
||
- Android 6.0+
|
||
- iOS 11.0+
|
||
|
||
- **Web平台**:
|
||
- 支持WebGL 2.0的现代浏览器
|
||
|
||
- **硬件要求**:
|
||
- 麦克风:支持16kHz采样率的高质量麦克风(语音交互)
|
||
- 网络:稳定的网络连接,建议5Mbps以上带宽
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
XiaoZhiAI_server32_Unity/
|
||
├── Assets/ # Unity资源文件
|
||
│ ├── Scenes/ # 场景文件
|
||
│ ├── Scripts/ # 脚本文件
|
||
│ │ ├── VoiceInteraction/ # 语音交互相关脚本
|
||
│ │ ├── Networking/ # 网络通信相关脚本
|
||
│ │ └── ...
|
||
│ ├── Prefabs/ # 预制体
|
||
│ ├── Plugins/ # 第三方插件
|
||
│ │ ├── VoiceSDK/ # 语音识别SDK
|
||
│ │ └── NetworkLibs/ # 网络库
|
||
│ └── ...
|
||
├── Packages/ # 项目依赖包
|
||
├── ProjectSettings/ # Unity项目设置
|
||
└── README.md # 项目说明文档
|
||
```
|
||
|
||
## 安装指南
|
||
|
||
### 开发者安装
|
||
|
||
1. 克隆仓库到本地:
|
||
```bash
|
||
git clone https://gitee.com/vw112266/XiaoZhiAI_server32_Unity.git
|
||
```
|
||
|
||
2. 安装依赖包:
|
||
- 手动引入YooAsset资源管理框架(v2.3.7):https://github.com/tuyoogame/YooAsset
|
||
- 手动引入YuikFrameWork-YOO分支:https://gitee.com/NikaidoShinku/YukiFrameWork
|
||
|
||
3. 使用Unity Hub打开项目,并确保Unity版本兼容
|
||
|
||
### 用户安装
|
||
|
||
1. 从发布页下载对应平台的安装包
|
||
2. 按照向导完成安装
|
||
3. 启动应用并完成初始配置
|
||
|
||
## 功能特性展示
|
||
|
||
### Live2D交互
|
||
|
||
<div class="feature-highlight">
|
||
<div class="highlight-content">
|
||
<h3>表情丰富的Live2D模型</h3>
|
||
<ul>
|
||
<li>根据对话内容实时改变表情</li>
|
||
<li>支持多种情感状态表达</li>
|
||
<li>精准的口型同步</li>
|
||
<li>自然的眨眼和头部动作</li>
|
||
<li>可定制的角色形象</li>
|
||
</ul>
|
||
</div>
|
||
<div class="highlight-image">
|
||
<img src="./images/界面1.png" alt="演示界面" >
|
||
</div>
|
||
</div>
|
||
|
||
### IoT智能控制
|
||
|
||
<div class="feature-highlight reverse">
|
||
<div class="highlight-content">
|
||
<h3>家居设备智能控制</h3>
|
||
<ul>
|
||
<li>通过语音控制智能家居设备</li>
|
||
<li>基于functioncall的智能意图识别</li>
|
||
<li>支持多种MQTT协议设备</li>
|
||
<li>设备状态实时反馈</li>
|
||
<li>场景联动与自动化</li>
|
||
</ul>
|
||
</div>
|
||
<div class="highlight-image">
|
||
<img src="./images/界面2.png" alt="演示界面">
|
||
</div>
|
||
</div>
|
||
|
||
## 开发计划
|
||
|
||
<div class="roadmap">
|
||
<div class="roadmap-item done">
|
||
<div class="status-dot"></div>
|
||
<div class="item-content">
|
||
<h4>已完成功能</h4>
|
||
<ul>
|
||
<li>基础语音交互系统</li>
|
||
<li>Live2D模型集成</li>
|
||
<li>WebSocket网络通信</li>
|
||
<li>基础MQTT支持</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="roadmap-item progress">
|
||
<div class="status-dot"></div>
|
||
<div class="item-content">
|
||
<h4>开发中功能</h4>
|
||
<ul>
|
||
<li>更多Live2D模型支持</li>
|
||
<li>表情系统优化</li>
|
||
<li>移动平台性能优化</li>
|
||
<li>更多IoT设备支持</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="roadmap-item planned">
|
||
<div class="status-dot"></div>
|
||
<div class="item-content">
|
||
<h4>计划功能</h4>
|
||
<ul>
|
||
<li>微信小程序集成</li>
|
||
<li>AR互动体验</li>
|
||
<li>多角色场景支持</li>
|
||
<li>用户自定义模型系统</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
## 贡献指南
|
||
|
||
我们欢迎社区开发者参与XiaoZhiAI_server32_Unity项目的开发:
|
||
|
||
- 提交bug报告和功能建议
|
||
- 贡献代码改进和新功能
|
||
- 创建和分享Live2D模型
|
||
- 优化性能和用户体验
|
||
- 完善文档和教程
|
||
|
||
请参考我们的贡献指南,了解如何参与项目开发。
|
||
|
||
## 相关链接
|
||
|
||
- [项目仓库](https://gitee.com/vw112266/XiaoZhiAI_server32_Unity)
|
||
|
||
<style>
|
||
.project-header {
|
||
display: flex;
|
||
align-items: center;
|
||
margin-bottom: 2rem;
|
||
}
|
||
|
||
.project-logo {
|
||
width: 100px;
|
||
height: 100px;
|
||
margin-right: 1.5rem;
|
||
}
|
||
|
||
.project-logo img {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: contain;
|
||
}
|
||
|
||
.project-badges {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 0.5rem;
|
||
}
|
||
|
||
.badge {
|
||
display: inline-block;
|
||
padding: 0.25rem 0.75rem;
|
||
border-radius: 1rem;
|
||
font-size: 0.85rem;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.badge.platform {
|
||
background-color: var(--vp-c-brand-soft);
|
||
color: var(--vp-c-brand-dark);
|
||
}
|
||
|
||
.badge.language {
|
||
background-color: rgba(59, 130, 246, 0.2);
|
||
color: rgb(59, 130, 246);
|
||
}
|
||
|
||
.badge.status {
|
||
background-color: rgba(16, 185, 129, 0.2);
|
||
color: rgb(16, 185, 129);
|
||
}
|
||
|
||
.project-images {
|
||
display: flex;
|
||
gap: 1rem;
|
||
margin: 2rem 0;
|
||
overflow-x: auto;
|
||
}
|
||
|
||
.image-container {
|
||
flex: 1;
|
||
min-width: 300px;
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
border: 1px solid var(--vp-c-divider);
|
||
}
|
||
|
||
.image-container img {
|
||
width: 100%;
|
||
height: auto;
|
||
object-fit: cover;
|
||
}
|
||
|
||
.architecture-diagram {
|
||
margin: 2rem 0;
|
||
text-align: center;
|
||
}
|
||
|
||
.diagram-container {
|
||
max-width: 100%;
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
border: 1px solid var(--vp-c-divider);
|
||
}
|
||
|
||
.diagram-container img {
|
||
max-width: 100%;
|
||
height: auto;
|
||
}
|
||
|
||
.features-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
||
gap: 1.5rem;
|
||
margin: 2rem 0;
|
||
}
|
||
|
||
.feature-card {
|
||
background-color: var(--vp-c-bg-soft);
|
||
border-radius: 8px;
|
||
padding: 1.5rem;
|
||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||
border: 1px solid var(--vp-c-divider);
|
||
height: 100%;
|
||
}
|
||
|
||
.feature-card:hover {
|
||
transform: translateY(-5px);
|
||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.feature-icon {
|
||
font-size: 2rem;
|
||
margin-bottom: 1rem;
|
||
}
|
||
|
||
.feature-card h3 {
|
||
color: var(--vp-c-brand);
|
||
margin-top: 0;
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
|
||
.feature-highlight {
|
||
display: flex;
|
||
margin: 3rem 0;
|
||
background-color: var(--vp-c-bg-soft);
|
||
border-radius: 12px;
|
||
overflow: hidden;
|
||
border: 1px solid var(--vp-c-divider);
|
||
}
|
||
|
||
.feature-highlight.reverse {
|
||
flex-direction: row-reverse;
|
||
}
|
||
|
||
.highlight-image {
|
||
flex: 1;
|
||
min-width: 40%;
|
||
}
|
||
|
||
.highlight-image img {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
}
|
||
|
||
.highlight-content {
|
||
flex: 1;
|
||
padding: 2rem;
|
||
}
|
||
|
||
.highlight-content h3 {
|
||
color: var(--vp-c-brand);
|
||
margin-top: 0;
|
||
margin-bottom: 1rem;
|
||
}
|
||
|
||
.highlight-content ul {
|
||
padding-left: 1.5rem;
|
||
}
|
||
|
||
.highlight-content li {
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
|
||
.roadmap {
|
||
position: relative;
|
||
margin: 3rem 0;
|
||
padding-left: 2rem;
|
||
}
|
||
|
||
.roadmap:before {
|
||
content: "";
|
||
position: absolute;
|
||
left: 7px;
|
||
top: 0;
|
||
bottom: 0;
|
||
width: 2px;
|
||
background-color: var(--vp-c-divider);
|
||
}
|
||
|
||
.roadmap-item {
|
||
position: relative;
|
||
margin-bottom: 2rem;
|
||
}
|
||
|
||
.status-dot {
|
||
position: absolute;
|
||
left: -2rem;
|
||
top: 0;
|
||
width: 16px;
|
||
height: 16px;
|
||
border-radius: 50%;
|
||
z-index: 1;
|
||
}
|
||
|
||
.roadmap-item.done .status-dot {
|
||
background-color: rgb(16, 185, 129);
|
||
}
|
||
|
||
.roadmap-item.progress .status-dot {
|
||
background-color: rgb(245, 158, 11);
|
||
}
|
||
|
||
.roadmap-item.planned .status-dot {
|
||
background-color: rgb(99, 102, 241);
|
||
}
|
||
|
||
.item-content {
|
||
background-color: var(--vp-c-bg-soft);
|
||
border-radius: 8px;
|
||
padding: 1.5rem;
|
||
border: 1px solid var(--vp-c-divider);
|
||
}
|
||
|
||
.item-content h4 {
|
||
margin-top: 0;
|
||
margin-bottom: 1rem;
|
||
}
|
||
|
||
.roadmap-item.done h4 {
|
||
color: rgb(16, 185, 129);
|
||
}
|
||
|
||
.roadmap-item.progress h4 {
|
||
color: rgb(245, 158, 11);
|
||
}
|
||
|
||
.roadmap-item.planned h4 {
|
||
color: rgb(99, 102, 241);
|
||
}
|
||
|
||
pre {
|
||
background-color: var(--vp-c-bg-soft);
|
||
border-radius: 8px;
|
||
padding: 1.5rem;
|
||
overflow-x: auto;
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
.feature-highlight,
|
||
.feature-highlight.reverse {
|
||
flex-direction: column;
|
||
}
|
||
|
||
.highlight-image {
|
||
height: 200px;
|
||
}
|
||
|
||
.project-header {
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
}
|
||
|
||
.project-logo {
|
||
margin-bottom: 1rem;
|
||
}
|
||
|
||
.project-images {
|
||
flex-direction: column;
|
||
}
|
||
}
|
||
</style> |