Skip to content

Latest commit

 

History

History
101 lines (79 loc) · 3.42 KB

File metadata and controls

101 lines (79 loc) · 3.42 KB

Audio3A 架构说明

总体架构

┌─────────────────────────────────────────┐
│   Blazor WASM (前端)                     │
│   - 只负责采集麦克风音频                  │
│   - 通过 WebSocket 实时传输              │
│   - 无本地处理,轻量级                    │
└──────────────┬──────────────────────────┘
               │ WebSocket
               │ (音频流)
               ↓
┌─────────────────────────────────────────┐
│   Audio3A.WebApi (后端 ASP.NET Core)     │
│   - 接收音频流                           │
│   - 应用 Audio3A.Core (AEC/AGC/ANS)     │
│   - 房间管理 (RoomManagement)            │
└──────────────┬──────────────────────────┘
               │
               ↓
┌─────────────────────────────────────────┐
│   Audio3A.RoomManagement                │
│   - 参与者管理                           │
│   - 音频混音 (AudioMixer)                │
│   - 录制和存储                           │
└─────────────────────────────────────────┘

职责划分

前端 (Blazor WASM)

只做一件事:采集音频

  • 请求麦克风权限
  • 采集音频数据
  • 通过 WebSocket 发送到后端
  • 显示 UI 和音量指示

不做的事:

  • ❌ 不做 3A 处理
  • ❌ 不做录制
  • ❌ 不做混音
  • ❌ 不保存文件

后端 (Audio3A.WebApi)

核心处理层

  • 接收 WebSocket 音频流
  • 应用 Audio3A.Core 处理(AEC/AGC/ANS)
  • 将处理后的音频分发到房间
  • 房间和参与者管理

房间管理 (Audio3A.RoomManagement)

音频混音和录制

  • 多路音频混音
  • 录制房间音频
  • 存储和下载
  • 参与者状态管理

数据流

麦克风 → 浏览器采集 → WebSocket → 后端接收 → Audio3A处理 → 房间混音 → 录制/存储
                                                            ↓
                                             分发到其他参与者(WebSocket)

优势

  1. 前端轻量:只负责采集,降低浏览器负担
  2. 集中处理:所有 3A 处理在服务器端,算法统一
  3. 易于调试:音频处理逻辑集中在后端
  4. 录制完整:服务器端录制,不会因为用户关闭浏览器而中断
  5. 资源共享:多人通话时,混音在服务器端完成

当前状态

✅ 已完成

  • Blazor WASM 简化(移除本地3A处理)
  • AudioCallService 简化为只采集音频

🚧 待实现

  • JavaScript 音频采集代码重写(只采集,移除录制)
  • WebSocket 音频传输(前端发送 → 后端接收)
  • 后端 WebSocket 端点实现
  • 后端 Audio3A.Core 处理集成
  • 房间录制和混音功能

下一步

  1. 简化 audioCall.js - 只采集音频,通过回调传递
  2. 在 Call.razor 中实现 WebSocket 客户端
  3. 在 WebApi 中添加 WebSocket 音频接收端点
  4. 在 RoomManagement 中集成 Audio3A.Core 处理
  5. 实现房间录制和混音功能