本文档引用的文件
AI有声书生成平台的媒体数据模型设计围绕两个核心实体展开:AudioRecord音频记录模型和VideoProject视频项目模型。这些模型不仅存储媒体文件的基本元数据,还负责管理整个生成流程的状态转换。
音频记录模型AudioRecord专门用于追踪TTS(文本转语音)生成过程,包含音频文件的元数据、生成状态、音色参数等关键信息。视频项目模型VideoProject则负责管理视频生成项目的完整生命周期,从草稿状态到最终完成的全过程。
该系统采用统一的存储抽象层,支持本地存储和OSS(对象存储服务)两种模式,确保媒体文件的可靠存储和高效分发。同时,通过Redis缓存机制和CDN加速,实现了媒体资源的高性能访问。
平台采用模块化的架构设计,主要分为以下几个核心模块:
graph TB
subgraph "数据层"
PRISMA[Prisma ORM]
SCHEMA[schema.prisma]
end
subgraph "业务逻辑层"
TTS[TTS服务模块]
VIDEO[视频生成模块]
AUDIO[AUDIO服务模块]
end
subgraph "基础设施层"
STORAGE[存储服务]
CACHE[缓存服务]
REDIS[Redis缓存]
OSS[对象存储服务]
end
subgraph "前端接口层"
API[API控制器]
CLIENT[客户端应用]
end
SCHEMA --> PRISMA
PRISMA --> TTS
PRISMA --> VIDEO
PRISMA --> AUDIO
TTS --> STORAGE
VIDEO --> STORAGE
AUDIO --> STORAGE
STORAGE --> REDIS
STORAGE --> OSS
API --> TTS
API --> VIDEO
API --> AUDIO
CLIENT --> API
图表来源
章节来源
AudioRecord模型是TTS生成流程的核心数据载体,负责追踪每个音频生成任务的完整生命周期。
核心字段说明:
状态管理:
章节来源
VideoProject模型管理视频生成项目的完整生命周期,支持复杂的视频制作配置。
核心字段说明:
状态管理:
章节来源
平台采用分层架构设计,确保各层职责清晰、耦合度低:
graph TB
subgraph "表现层"
WEB[Web界面]
MOBILE[移动端应用]
API[RESTful API]
end
subgraph "控制层"
TTS_CONTROLLER[TTS控制器]
VIDEO_CONTROLLER[视频控制器]
AUDIO_CONTROLLER[音频控制器]
end
subgraph "服务层"
TTS_SERVICE[TTS服务]
VIDEO_SERVICE[视频服务]
AUDIO_SERVICE[音频服务]
STORAGE_SERVICE[存储服务]
CACHE_SERVICE[缓存服务]
end
subgraph "数据持久层"
DATABASE[(MySQL数据库)]
REDIS_CACHE[(Redis缓存)]
OSS_STORAGE[(OSS存储)]
end
WEB --> API
MOBILE --> API
API --> TTS_CONTROLLER
API --> VIDEO_CONTROLLER
API --> AUDIO_CONTROLLER
TTS_CONTROLLER --> TTS_SERVICE
VIDEO_CONTROLLER --> VIDEO_SERVICE
AUDIO_CONTROLLER --> AUDIO_SERVICE
TTS_SERVICE --> STORAGE_SERVICE
VIDEO_SERVICE --> STORAGE_SERVICE
AUDIO_SERVICE --> STORAGE_SERVICE
STORAGE_SERVICE --> DATABASE
STORAGE_SERVICE --> REDIS_CACHE
STORAGE_SERVICE --> OSS_STORAGE
TTS_SERVICE --> CACHE_SERVICE
VIDEO_SERVICE --> CACHE_SERVICE
AUDIO_SERVICE --> CACHE_SERVICE
图表来源
TTS音频生成是一个复杂的异步处理流程,涉及多个步骤和状态转换:
sequenceDiagram
participant Client as 客户端
participant TTS as TTS服务
participant Provider as TTS提供商
participant Merger as 音频合并器
participant Storage as 存储服务
participant DB as 数据库
Client->>TTS : generateAudio()
TTS->>DB : 创建AudioRecord记录
TTS->>Provider : 生成音频片段
Provider-->>TTS : 返回音频数据
TTS->>Merger : 合并音频片段
Merger-->>TTS : 返回合并后的音频
TTS->>Storage : 上传音频文件
Storage-->>TTS : 返回文件URL
TTS->>DB : 更新AudioRecord状态
DB-->>TTS : 确认更新
TTS-->>Client : 返回生成结果
图表来源
处理流程详解:
章节来源
视频生成项目采用状态驱动的管理模式,支持复杂的视频制作配置:
stateDiagram-v2
[*] --> 草稿
草稿 --> 处理中 : 开始生成
处理中 --> 已完成 : 生成成功
处理中 --> 失败 : 生成失败
已完成 --> [*]
失败 --> 草稿 : 重新生成
失败 --> [*] : 放弃项目
图表来源
配置管理:
视频项目支持丰富的配置选项:
章节来源
平台采用统一的存储抽象层,支持多种存储后端:
classDiagram
class StorageService {
-storageType : StorageType
+uploadAudio(localPath, audioId) string
+uploadVideo(localPath, videoId) string
+uploadCover(localPath, bookId) string
+downloadFile(url) Buffer
+deleteFile(url) void
+getSignedUrl(url, expires) string
}
class OSSService {
-client : OSS
-bucket : string
-cdnDomain : string
+uploadFile(localPath, objectKey) string
+downloadFile(objectKey) Buffer
+getSignedUrl(objectKey, expires) string
}
class LocalStorage {
+uploadFile(localPath, category, id) string
+downloadFile(url) Buffer
+deleteFile(url) void
}
StorageService --> OSSService : 使用
StorageService --> LocalStorage : 使用
图表来源
存储策略:
章节来源
平台采用多层次的缓存和分发策略,确保媒体资源的高效访问:
flowchart TD
Request[请求到达] --> CacheCheck{Redis缓存检查}
CacheCheck --> |命中| ReturnCache[返回缓存数据]
CacheCheck --> |未命中| ProcessRequest[处理请求]
ProcessRequest --> GenerateContent[生成内容]
GenerateContent --> StoreCache[存储到Redis]
StoreCache --> ReturnContent[返回内容]
subgraph "静态资源分发"
Static[静态资源] --> Nginx[Nginx服务器]
Nginx --> CDN[CDN缓存]
CDN --> Client[客户端]
end
subgraph "动态内容缓存"
Dynamic[动态内容] --> RedisCache[Redis缓存]
RedisCache --> Client
end
图表来源
缓存配置:
静态资源优化:
章节来源
平台的依赖关系呈现清晰的层次化结构:
graph TB
subgraph "外部依赖"
MYSQL[MySQL数据库]
REDIS[Redis缓存]
OSS[阿里云OSS]
NGINX[Nginx服务器]
end
subgraph "内部模块"
PRISMA[Prisma ORM]
TTS[TTS服务]
VIDEO[视频服务]
AUDIO[AUDIO服务]
STORAGE[存储服务]
CACHE[缓存服务]
end
subgraph "核心服务"
WS[WebSocket服务]
QUEUE[队列服务]
LOG[日志服务]
end
MYSQL --> PRISMA
REDIS --> CACHE
OSS --> STORAGE
NGINX --> STATIC[静态资源]
PRISMA --> TTS
PRISMA --> VIDEO
PRISMA --> AUDIO
TTS --> STORAGE
VIDEO --> STORAGE
AUDIO --> STORAGE
CACHE --> REDIS
STORAGE --> OSS
STORAGE --> MYSQL
TTS --> WS
VIDEO --> WS
AUDIO --> WS
TTS --> QUEUE
VIDEO --> QUEUE
AUDIO --> QUEUE
图表来源
依赖特点:
章节来源
平台在设计时充分考虑了性能优化:
音频生成失败
检查TTS提供商配置
查看错误日志
重试机制
视频生成异常
配置验证
资源检查
进度监控
存储问题
OSS连接问题
本地存储问题
缓存问题
Redis连接
缓存一致性
章节来源
AI有声书生成平台的媒体数据模型设计体现了现代Web应用的最佳实践。通过精心设计的AudioRecord和VideoProject模型,平台实现了对音频和视频生成流程的完整追踪和管理。
系统的核心优势包括:
通过这些设计,平台能够稳定地处理大规模的媒体生成任务,为用户提供优质的AI有声书体验。未来可以在以下方面继续优化: