Skip to content

maker-community/Verdure.Assistant

Repository files navigation

绿荫助手(Verdure Assistant)

Verdure Assistant Logo

Release Build Status License: MIT Stars

🤖 基于 .NET 9.0 的多服务智能助手 | 跨平台 AI 语音交互解决方案

快速开始功能特性多平台支持架构设计开发指南文档资源


📖 项目简介

绿荫助手(Verdure Assistant)是一个基于 .NET 9.0 开发的多服务智能助手,提供了完整的AI语音交互解决方案。项目采用现代化的软件架构设计,支持多种部署方式,可在Windows、Linux、macOS、Android等平台运行。

作为一个多服务集成平台,绿荫助手不仅支持原有的小智服务,还计划集成更多AI助手服务,为用户提供更丰富的智能交互体验。

🌐 与VerdiBot(阿荫)协同工作

本项目的 Verdure.Assistant.ApiVerdiBot(阿荫) 提供了语音对话和音乐播放API支持,可以部署在树莓派等嵌入式设备上,通过HTTP API与硬件机器人交互。

⚠️ 实验开发阶段说明

本项目目前处于实验开发阶段,许多功能尚未完全完善,但核心功能已经可以正常使用。项目主要用于学习和技术探索目的,与社区分享开发经验和技术成果。

我们深知项目还有很多需要改进的地方,期待社区的理解和支持。如果您在使用过程中遇到问题,欢迎通过 Issues 或讨论区提出建设性的反馈,让我们一起完善这个项目。

感谢您的理解和支持!🙏

🎤 关键词唤醒支持:

  • "你好小电"(默认)
  • "你好小娜"

💻 双重使用体验:

  • 控制台版本 - 绑定设备后,启动控制台程序,说"你好小电"即可开启对话
  • WinUI版本 - 提供现代化图形界面(见下方截图),先点击连接按钮,然后说"你好小电"开启对话

🎯 设计目标

  • 跨平台兼容 - 支持 Windows、Linux、macOS、Android
  • 模块化架构 - 清晰的分层设计,易于扩展
  • 高性能 - 优化的音频处理和网络通信
  • 多样化界面 - 提供桌面、移动、控制台、API等多种使用方式
  • 学习友好 - 完整的文档和示例代码,适合学习.NET跨平台开发
  • 生产可用 - 实际可用的AI语音助手解决方案

💡 为什么选择本项目?

学习 .NET 跨平台开发的最佳实践

本项目是一个 完整的、真实的 .NET 跨平台应用示例,涵盖了现代 .NET 开发的各个方面:

  • 真实项目经验 - 不是简单的demo,而是可实际使用的完整应用
  • 多平台覆盖 - 一个项目学会 WinUI、MAUI、ASP.NET Core、Console开发
  • 现代架构模式 - MVVM、DI、Repository、Service Layer等
  • 丰富的技术栈 - 音频处理、网络通信、UI设计、API开发
  • 详细的文档 - 每个技术决策都有文档说明
  • 持续更新 - 跟随.NET最新版本更新

适合的学习人群

学习目标 推荐关注
Windows桌面开发 WinUI 3 项目、XAML界面设计
Android移动开发 MAUI项目、前台服务、原生集成
Web API开发 ASP.NET Core API、Swagger、RESTful设计
跨平台应用 .NET Core、跨平台兼容性处理
音频处理 Opus编解码、SoundFlow、音频流
实时通信 WebSocket、双向音频流传输
架构设计 MVVM、DI、状态机、事件驱动
IoT/嵌入式 树莓派部署、硬件集成

📸 应用截图与演示

🖥️ WinUI 桌面应用

WinUI Application Screenshot - 点击查看演示视频

📹 演示视频:点击在新标签页播放 ↗

现代化的 Windows 桌面应用界面,支持语音交互和实时状态显示


📱 MAUI 移动应用(Android)

MAUI Application Screenshot - 点击查看演示视频

📹 演示视频:点击在新标签页播放 ↗

基于 .NET MAUI 的 Android 移动应用,支持后台语音处理和音乐播放


⌚ MAUI 安卓手表应用(Android Watch)

MAUI Android Watch Application Screenshot - 点击查看演示视频

📹 演示视频:点击在新标签页播放 ↗

基于 .NET MAUI 的安卓手表应用,适配圆形/方形表盘,支持语音助手核心功能


💻 控制台应用

Console Application Screenshot - 点击查看演示视频

📹 演示视频:点击在新标签页播放 ↗

轻量级命令行界面,适合服务器端部署和开发调试

✨ 功能特性

🎤 语音交互

  • 实时语音识别 - 支持连续语音输入和识别
  • 自然语音合成 - 高质量的TTS语音输出
  • 音频编解码 - 基于Opus的高效音频处理
  • 噪声抑制 - 智能音频预处理和降噪
  • 关键词唤醒 - 支持"你好小电"和"你好小娜"唤醒词
  • 语音打断 - 支持对话过程中的智能打断

🌐 通信协议

  • WebSocket支持 - 实时双向音频流和消息通信
  • MQTT协议 - 物联网设备集成
  • 加密传输 - WSS安全连接
  • 断线重连 - 自动恢复连接机制
  • RESTful API - 标准HTTP API接口

🖥️ 多平台用户界面

  • WinUI 3应用 - 现代化的Windows桌面应用

    • Fluent Design 设计语言
    • 响应式布局
    • 深色/浅色主题支持
  • .NET MAUI应用 - Android移动应用

    • Material Design 界面
    • 前台服务支持后台运行
    • 通知栏快捷控制
  • 控制台程序 - 轻量级命令行界面

    • 跨平台支持 (Windows/Linux/macOS)
    • 交互式菜单
    • 详细日志输出
  • Web API - HTTP RESTful接口

    • Swagger文档
    • 适合嵌入式设备集成
    • 支持树莓派部署

🎵 音乐播放功能

  • 音乐搜索 - 集成酷狗/酷我音乐API
  • 在线播放 - 流媒体音乐播放
  • 本地缓存 - 自动缓存管理
  • 播放控制 - 播放/暂停/停止/跳转
  • 音量调节 - 实时音量控制

🔧 智能功能

  • 自动对话模式 - 连续对话体验,无需重复唤醒
  • 状态机管理 - 智能的设备状态切换
  • 配置管理 - 灵活的参数配置和OTA更新
  • 错误恢复 - 智能的异常处理和自动恢复
  • 多服务集成 - 支持扩展更多AI助手服务

🛠️ 开发者功能

  • 完整的依赖注入 - 松耦合的服务架构
  • MVVM架构 - ViewModels跨平台共享
  • 丰富的日志 - 详细的调试信息
  • 单元测试 - 完整的测试覆盖
  • 文档完善 - 详细的开发文档和示例

📂 项目结构

verdure-assistant/
├── src/                              # 源代码
│   ├── Verdure.Assistant.Core/       # 核心库(音频、网络、服务)
│   ├── Verdure.Assistant.ViewModels/ # 共享视图模型(MVVM)
│   ├── Verdure.Assistant.Console/    # 控制台应用(跨平台CLI)
│   ├── Verdure.Assistant.WinUI/      # WinUI桌面应用(Windows)
│   ├── Verdure.Assistant.MAUI/       # MAUI移动应用(Android)
│   └── Verdure.Assistant.Api/        # Web API服务(Linux/树莓派)
├── tests/                            # 测试项目
│   ├── CodecTest/                    # 音频编解码测试
│   ├── OpusTest/                     # Opus编解码器测试
│   ├── WebSocketAudioFlowTest/       # WebSocket音频流测试
│   ├── SoundFlowPlaybackTest/        # 音频播放测试
│   └── ...                           # 更多测试项目
├── samples/                          # 示例代码
│   └── py-xiaozhi/                   # Python版本参考实现
├── docs/                             # 技术文档
│   ├── AUDIO_ARCHITECTURE_REFACTORING_SUMMARY.md
│   ├── MVVM_REFACTORING_COMPLETION_SUMMARY.md
│   └── ...                           # 详细技术文档
├── docs-website/                     # 文档网站源码
├── scripts/                          # 构建和部署脚本
├── assets/                           # 资源文件(截图、视频)
├── .github/                          # GitHub工作流和模板
└── Verdure.Assistant.sln             # Visual Studio解决方案文件

� 多平台支持

本项目充分展示了 .NET 9.0 的跨平台能力,提供多种部署方式,适合不同场景和学习目标:

🖥️ Windows 桌面应用 (WinUI 3)

适用场景: Windows 10/11 桌面用户、现代化UI设计学习

技术栈:

  • WinUI 3 (Windows App SDK)
  • MVVM 架构模式
  • 依赖注入 (DI)
  • 响应式编程

学习要点:

  • Windows 现代化应用开发
  • XAML 界面设计
  • Windows 音频 API 集成
  • 异步编程最佳实践

文档: WinUI 项目文档


📱 Android 移动应用 (.NET MAUI)

适用场景: 移动端语音助手、跨平台移动开发学习

技术栈:

  • .NET MAUI 9.0
  • Android 前台服务
  • Material Design
  • 共享 ViewModels (MVVM)

学习要点:

  • .NET MAUI 跨平台开发
  • Android 原生功能集成
  • 前台服务和后台处理
  • 移动端音频录制和播放
  • Android 权限管理

文档: MAUI 项目文档


💻 控制台应用 (跨平台 CLI)

适用场景: 服务器部署、开发调试、自动化脚本

支持平台: Windows、Linux、macOS

技术栈:

  • .NET 9.0 Console Application
  • 跨平台音频处理
  • 命令行交互

学习要点:

  • 跨平台控制台应用开发
  • 命令行参数解析
  • 日志和诊断
  • 跨平台兼容性处理

文档: Console 项目文档


🌐 Web API 服务 (ASP.NET Core)

适用场景: 机器人硬件集成、IoT设备、树莓派部署

支持平台: Linux (树莓派)、Windows、Docker

技术栈:

  • ASP.NET Core Web API
  • RESTful API 设计
  • Swagger/OpenAPI
  • 音乐播放服务 (mpg123)
  • 关键词唤醒

主要功能:

  • 🎵 音乐搜索和播放 API
  • 🎤 语音对话 WebSocket 接口
  • 🤖 与 VerdiBot 硬件机器人集成
  • 📊 系统状态监控

学习要点:

  • ASP.NET Core Web API 开发
  • RESTful API 设计原则
  • Linux 音频处理
  • 嵌入式设备部署
  • 与硬件设备通信

文档: API 项目文档

相关项目:


�🏗️ 架构设计

┌─────────────────────────────────────────────────────────────┐
│                        用户界面层                              │
├──────────────┬──────────────┬──────────────┬────────────────┤
│  WinUI 应用  │  MAUI 应用   │  控制台应用   │   Web API      │
│  (Windows)   │  (Android)   │  (跨平台)    │  (嵌入式/服务器) │
├──────────────┴──────────────┴──────────────┴────────────────┤
│                      视图模型层 (MVVM)                         │
├──────────────────────────────────────────────────────────────┤
│                Verdure.Assistant.ViewModels                   │
│              (共享业务逻辑和状态管理)                           │
├──────────────────────────────────────────────────────────────┤
│                        服务层                                 │
├────────────────┬────────────────┬──────────────┬─────────────┤
│ 语音聊天服务    │   音乐播放服务  │   配置服务    │  验证服务   │
├────────────────┼────────────────┼──────────────┼─────────────┤
│ 音频录制服务    │   音频播放服务  │  编解码服务   │  状态管理   │
├────────────────┴────────────────┴──────────────┴─────────────┤
│                        通信层                                 │
├────────────────┬─────────────────────────────────────────────┤
│ WebSocket客户端 │              MQTT客户端                     │
├────────────────┴─────────────────────────────────────────────┤
│                    核心层 (Verdure.Assistant.Core)            │
├──────────────────────────────────────────────────────────────┤
│      模型定义 │ 接口定义 │ 常量定义 │ 工具类 │ 扩展方法        │
└──────────────────────────────────────────────────────────────┘

架构亮点

  • 分层设计: 清晰的职责分离,易于维护和扩展
  • MVVM模式: ViewModels 跨平台共享,减少重复代码
  • 依赖注入: 使用 Microsoft.Extensions.DependencyInjection
  • 接口抽象: 核心功能通过接口定义,支持多种实现
  • 跨平台兼容: 同一套核心代码,运行在多个平台

🚀 快速开始

环境要求

基础要求

  • .NET 9.0 SDK 或更高版本 - 下载地址
  • Visual Studio 2022 (17.8+)Visual Studio Code

平台特定要求

平台 额外要求
WinUI (Windows) Windows 10 1809+ 或 Windows 11
Windows App SDK
MAUI (Android) Android SDK (API 21+)
Android Emulator 或真机
API (Linux/树莓派) mpg123 音频播放器
PortAudio (可选)

安装步骤

  1. 克隆仓库

    git clone https://github.com/maker-community/Verdure.Assistant.git
    cd Verdure.Assistant
  2. 还原依赖

    dotnet restore
  3. 构建项目

    dotnet build --configuration Release
  4. 运行应用

    选择适合您的平台:

    💻 控制台版本 (跨平台)
    # Windows/Linux/macOS
    dotnet run --project src/Verdure.Assistant.Console

    适合:服务器部署、开发调试、自动化脚本

    🖥️ WinUI版本 (Windows)
    # 需要 Windows 10/11
    dotnet run --project src/Verdure.Assistant.WinUI

    或者在 Visual Studio 中:

    1. 打开 Verdure.Assistant.sln
    2. 设置 Verdure.Assistant.WinUI 为启动项目
    3. 按 F5 运行

    适合:Windows桌面用户、现代化UI体验

    📱 MAUI版本 (Android)

    在 Visual Studio 2022 中:

    1. 打开 Verdure.Assistant.sln
    2. 设置 Verdure.Assistant.MAUI 为启动项目
    3. 选择 Android 模拟器或连接真机
    4. 按 F5 运行

    或使用命令行:

    # 部署到连接的Android设备
    dotnet build src/Verdure.Assistant.MAUI -t:Run -f net9.0-android

    适合:移动端用户、Android应用开发学习

    🌐 Web API版本 (服务器/树莓派)
    # 首先安装 mpg123 (音乐播放需要)
    # Ubuntu/Debian
    sudo apt-get install mpg123
    
    # 运行API服务
    dotnet run --project src/Verdure.Assistant.Api

    服务将在以下地址启动:

    • HTTP: http://localhost:5000
    • HTTPS: https://localhost:5001
    • Swagger: https://localhost:5001/swagger

    适合:VerdiBot机器人集成、IoT设备、远程API访问

配置说明

控制台/WinUI/MAUI 配置

编辑 appsettings.json 文件:

{
  "ServerUrl": "wss://your-server.com/ws",
  "EnableVoice": true,
  "AudioSampleRate": 16000,
  "AudioChannels": 1,
  "AudioFormat": "opus",
  "KeywordModel": "xiaodian"  // "xiaodian" 或 "cortana"
}

API服务配置

编辑 src/Verdure.Assistant.Api/appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:5000"
      }
    }
  }
}

首次使用

  1. 启动您选择的应用版本
  2. 配置服务器连接 - 输入WebSocket服务器地址
  3. 测试连接 - 点击连接按钮或使用菜单选项
  4. 开始对话 - 说出"你好小电"或"你好小娜"开启语音交互

快速测试

使用示例脚本快速验证环境:

# Windows
.\scripts\setup-dev.ps1

# Linux/macOS
./scripts/build.sh

📱 使用指南

💻 控制台应用使用指南

启动后会显示交互菜单:

请选择操作:
1. 开始语音对话
2. 停止语音对话  
3. 切换对话状态 (自动模式)
4. 切换自动对话模式
5. 发送文本消息
6. 查看连接状态
7. 退出

使用流程:

  1. 首先确保设备已绑定(或配置服务器地址)
  2. 启动控制台程序
  3. 选择操作 1 开始语音对话
  4. 说"你好小电"或"你好小娜"开启对话
  5. 进行语音交互

适用场景:

  • 🖥️ 服务器端部署(Linux/Windows Server)
  • 🔧 开发调试和测试
  • 📝 查看详细日志输出
  • 🤖 自动化脚本集成

🖥️ WinUI应用使用指南

如上方截图所示,WinUI应用提供了直观的现代化图形界面:

界面布局:

  • 连接状态栏 - 顶部显示当前连接状态和服务器信息
  • 语音控制中心 - 中央的大型语音按钮
  • 对话记录区 - 实时显示对话内容和AI回复
  • 情感表情显示 - 动态GIF表情反馈
  • 设置面板 - 右侧提供参数配置
  • 音乐播放器 - 底部音乐控制界面

使用流程:

  1. 启动 WinUI 应用
  2. 点击 连接 按钮建立服务器连接
  3. 连接成功后,说"你好小电"开启对话
  4. 支持手动按钮模式和自动连续对话模式

功能特性:

  • 🎤 手动模式 - 按住语音按钮进行语音输入
  • 🔄 自动模式 - 点击开始自动对话,支持连续语音交互
  • 📊 状态显示 - 实时显示连接状态、语音识别状态
  • ⚙️ 参数调节 - 调整音量和其他音频参数
  • 🎵 音乐控制 - 搜索、播放、暂停音乐
  • 🎨 主题切换 - 支持深色/浅色主题

快捷键:

  • Ctrl + L - 清空对话记录
  • Space - 按住进行语音输入
  • Esc - 停止当前操作

📱 MAUI应用使用指南 (Android)

移动端提供紧凑而功能完整的界面:

主要功能区:

  • 顶部状态区 - 连接状态、系统状态、TTS状态
  • 情感表情区 - 动态表情显示
  • 音乐播放器 - 歌曲信息和播放控制
  • 对话记录 - 上下滚动查看历史对话
  • 底部控制区 - 语音输入和快捷操作

使用流程:

  1. 安装APK到Android设备
  2. 授予录音和通知权限
  3. 在设置页面配置服务器地址
  4. 点击连接按钮
  5. 长按麦克风按钮说话,或使用唤醒词

特色功能:

  • 📳 后台运行 - 使用前台服务保持后台运行
  • 🔔 通知栏控制 - 快速访问常用操作
  • 🎤 长按录音 - 按住录音按钮说话
  • 💬 文本输入 - 支持键盘输入文本消息
  • 🎵 音乐播放 - 集成音乐播放器
  • 🌙 深色模式 - 自动跟随系统主题

权限说明:

  • 🎤 录音权限 - 语音识别必需
  • 🔔 通知权限 - 后台服务通知
  • 📱 前台服务 - 保持后台运行

🌐 Web API使用指南

API服务适合集成到其他系统或硬件设备:

启动服务:

dotnet run --project src/Verdure.Assistant.Api
# 访问 https://localhost:5001/swagger 查看API文档

主要API端点:

# 音乐搜索
GET /api/music/search?songName=青花瓷

# 播放音乐
POST /api/music/search-and-play
{
  "songName": "青花瓷"
}

# 播放控制
POST /api/music/pause
POST /api/music/resume
POST /api/music/stop

# 语音对话 (WebSocket)
ws://localhost:5000/ws

# 系统状态
GET /api/system/status

集成示例:

使用curl测试:

# 搜索并播放音乐
curl -X POST https://localhost:5001/api/music/search-and-play \
  -H "Content-Type: application/json" \
  -d '{"songName":"周杰伦"}'

# 检查mpg123可用性
curl https://localhost:5001/api/test/check-mpg123

VerdiBot集成:

  • 在树莓派上部署API服务
  • VerdiBot通过HTTP调用API控制语音和音乐
  • 详见:VerdiBot文档

适用场景:

  • 🤖 硬件机器人集成
  • 🏠 智能家居控制
  • 🖥️ 远程API访问
  • 📡 IoT设备集成

🔧 开发指南

项目结构

verdure-assistant/
├── src/                    # 源代码
│   ├── Verdure.Assistant.Core/      # 核心库
│   ├── Verdure.Assistant.Console/   # 控制台应用
│   └── Verdure.Assistant.WinUI/     # WinUI应用
├── tests/                  # 测试项目
├── samples/               # 示例代码
│   └── py-xiaozhi/        # Python参考实现
├── docs/                  # 项目文档
├── scripts/               # 构建脚本
├── assets/                # 资源文件
├── build/                 # 构建输出
└── .github/               # GitHub配置

核心组件

VoiceChatService

语音聊天服务的核心实现,管理语音输入输出和状态转换。

public interface IVoiceChatService
{
    Task StartVoiceChatAsync();
    Task StopVoiceChatAsync();
    Task SendTextMessageAsync(string text);
    bool IsConnected { get; }
    DeviceState CurrentState { get; }
}

ConfigurationService

配置管理服务,处理动态配置和OTA更新。

AudioCodec

音频编解码服务,支持Opus格式的音频处理。

扩展开发

  1. 添加新的音频编解码器

    public class CustomAudioCodec : IAudioCodec
    {
        public byte[] Encode(byte[] pcmData, int sampleRate, int channels)
        {
            // 实现编码逻辑
        }
        
        public byte[] Decode(byte[] encodedData, int sampleRate, int channels)
        {
            // 实现解码逻辑
        }
    }
  2. 添加新的通信协议

    public class CustomClient : ICommunicationClient
    {
        public async Task ConnectAsync() { /* 实现连接逻辑 */ }
        public async Task SendMessageAsync(string message) { /* 实现发送逻辑 */ }
        // ... 其他接口实现
    }

🧪 测试

运行所有测试:

dotnet test

运行特定测试项目:

dotnet test tests/Verdure.Assistant.Core.Tests

📦 部署

单文件发布

Windows:

dotnet publish src/Verdure.Assistant.Console -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

Linux:

dotnet publish src/Verdure.Assistant.Console -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true

macOS:

dotnet publish src/Verdure.Assistant.Console -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true

Docker部署

FROM mcr.microsoft.com/dotnet/runtime:9.0
COPY publish/ /app
WORKDIR /app
ENTRYPOINT ["./Verdure.Assistant.Console"]

👨‍💻 开发指南

快速开始开发

  1. 设置开发环境

    # 运行开发环境设置脚本
    .\scripts\setup-dev.ps1
  2. 构建项目

    # 使用构建脚本
    .\scripts\build.ps1 -Configuration Debug -Test
    
    # 或者使用dotnet命令
    dotnet build --configuration Debug
  3. 运行测试

    # 使用测试脚本
    .\scripts\test.ps1 -Coverage
    
    # 或者使用dotnet命令
    dotnet test --configuration Debug

可用脚本

项目提供了以下PowerShell脚本来简化开发流程:

  • scripts/setup-dev.ps1 - 设置开发环境
  • scripts/build.ps1 - 构建项目
  • scripts/test.ps1 - 运行测试
  • scripts/build.bat - Windows批处理构建脚本
  • scripts/build.sh - Unix shell构建脚本

IDE配置

Visual Studio 2022

  1. 打开 Verdure.Assistant.sln
  2. 设置启动项目为 Verdure.Assistant.ConsoleVerdure.Assistant.WinUI
  3. 确保选择了正确的目标框架 (.NET 9.0)

Visual Studio Code

  1. 安装C# DevKit扩展
  2. 打开项目根目录
  3. 使用 Ctrl+Shift+P 打开命令面板
  4. 选择 ".NET: Generate Assets for Build and Debug"

调试技巧

  1. 断点调试

    • 在关键代码处设置断点
    • 使用条件断点筛选特定情况
  2. 日志调试

    // 使用内置日志
    _logger.LogDebug("调试信息: {Value}", someValue);
    _logger.LogWarning("警告: {Message}", message);
  3. 性能分析

    # 使用dotnet-trace进行性能分析
    dotnet trace collect --providers Microsoft-Extensions-Logging --process-id <PID>

代码规范

项目遵循以下代码规范:

  • 命名约定: 使用PascalCase命名类和方法,camelCase命名字段和变量
  • 文件组织: 每个类一个文件,文件名与类名一致
  • 注释: 为公共API提供XML文档注释
  • 异步编程: 异步方法以Async结尾,正确处理ConfigureAwait

Git工作流

  1. 分支策略

    • main - 主分支,包含稳定代码
    • develop - 开发分支,包含最新功能
    • feature/* - 功能分支
    • bugfix/* - 修复分支
  2. 提交规范

    type(scope): description
    
    例如:
    feat(core): 添加语音识别功能
    fix(ui): 修复连接状态显示问题
    docs(readme): 更新安装说明
    

📚 文档资源

官方文档

项目文档

📖 各平台项目文档

平台 文档路径 说明
WinUI src/Verdure.Assistant.WinUI/README.md Windows 桌面应用开发指南
MAUI src/Verdure.Assistant.MAUI/README.md Android 移动应用开发指南
Console src/Verdure.Assistant.Console/README.md 控制台应用使用说明
API src/Verdure.Assistant.Api/README.md Web API 服务部署和使用
Core src/Verdure.Assistant.Core/README.md 核心库架构和接口说明

🔧 技术文档

音频处理相关
MAUI 移动开发相关
架构和设计模式
关键词唤醒和语音识别
网络通信
其他功能实现

.NET 学习资源

本项目是学习以下 .NET 技术的优秀实践案例:

🎯 核心技术

  • .NET 9.0 - 最新的 .NET 平台特性

  • 跨平台开发 - 一次编写,到处运行

    • Windows、Linux、macOS 支持
    • Android 移动应用
    • 嵌入式设备 (树莓派)

🖼️ UI 框架

  • WinUI 3 - Windows 现代化应用

  • .NET MAUI - 跨平台移动应用

    • MAUI 文档
    • Android/iOS 应用开发
    • 原生平台功能集成

🏗️ 架构模式

  • MVVM (Model-View-ViewModel) - 现代应用架构

    • 职责分离
    • 可测试性
    • 代码复用
  • 依赖注入 (DI) - 松耦合设计

🌐 网络和API

  • ASP.NET Core Web API - RESTful 服务

  • WebSocket - 实时双向通信

    • 音频流传输
    • 状态同步

🎵 音频处理

  • 跨平台音频 - 多种音频库集成
    • Opus 编解码
    • SoundFlow 音频框架
    • 平台特定音频 API

相关项目


🤝 贡献指南

我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细信息。

贡献类型

  • 🐛 Bug报告 - 帮助我们发现和修复问题
  • 功能请求 - 提出新功能建议
  • 📖 文档改进 - 完善项目文档
  • 🔧 代码贡献 - 提交代码修复或新功能
  • 🎨 UI/UX改进 - 改进用户界面和体验

开发流程

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📝 更新日志

最新更新 (2024-12-08)

  • 📸 新增应用截图 - 添加了 WinUI 应用的界面截图展示
  • 📖 文档完善 - 更新了主页 README,增加了详细的使用指南
  • 🎯 关键词唤醒 - 明确了支持"你好小电"和"你好小娜"两个唤醒词
  • 🖥️ 界面优化 - 完善了 WinUI 应用的功能说明和使用流程

历史更新

详细的更新记录请查看 CHANGELOG.md

版本发布

  • v1.0.0 (2025-05-30) - 首个正式版本,包含完整的语音交互功能
  • v0.9.x - 测试版本,功能开发和测试阶段
  • 当前开发版 - 持续更新中,包含最新功能和改进

📄 许可证

本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • 感谢 xiaozhi-esp32 项目提供的参考实现
  • 感谢 py-xiaozhi 项目提供的参考实现
  • 感谢 xiaozhi-sharp 项目提供的参考实现
  • 感谢所有贡献者的努力
  • 感谢开源社区的支持

� 平台功能对比

功能特性 WinUI MAUI Console API
语音对话
音乐播放
关键词唤醒
图形界面 🌐
后台运行
移动优化
RESTful API
跨平台 Windows Android Win/Linux/Mac Win/Linux
硬件集成 📱 🤖
适合场景 桌面用户 移动用户 服务器/开发 IoT/机器人

说明:

  • ✅ 完全支持
  • 🌐 Swagger Web UI
  • 📱 移动设备
  • 🤖 硬件机器人
  • ❌ 不支持/不适用

�📞 联系我们

获取帮助和支持

问题类型

选择合适的渠道:

类型 渠道 说明
🐛 Bug报告 Issues 功能异常、错误报告
✨ 功能建议 Issues 新功能建议
❓ 使用问题 Discussions 使用疑问、配置帮助
💡 技术讨论 Discussions 技术交流、最佳实践
📖 文档问题 Issues 文档改进建议

参与贡献

欢迎各种形式的贡献:

  • 🔧 代码贡献 - 修复bug、添加功能
  • 📖 文档改进 - 完善文档、添加示例
  • 🌍 翻译 - 帮助翻译文档
  • 🎨 UI/UX - 改进界面设计
  • 🧪 测试 - 报告问题、测试新功能
  • Star项目 - 帮助项目获得更多关注

详见:贡献指南


🌟 Star历史

Star History Chart


如果这个项目对您有帮助,请考虑给我们一个 ⭐

让更多人了解 .NET 跨平台开发的魅力

Made with ❤️ by Maker Community

About

一个集成了小智AI和打算集成OpenAI实时通讯服务的.NET全平台客户端。

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages