mirror of
https://github.com/Xinrea/bili-shadowreplay.git
synced 2025-11-25 04:22:24 +08:00
chore: markdown lint
This commit is contained in:
@@ -2,20 +2,27 @@
|
|||||||
|
|
||||||
## AI Components
|
## AI Components
|
||||||
|
|
||||||
- **LangChain Integration**: Uses `@langchain/core`, `@langchain/deepseek`, `@langchain/langgraph`, `@langchain/ollama`
|
- **LangChain Integration**: Uses `@langchain/core`, `@langchain/deepseek`,
|
||||||
- **Whisper Transcription**: Local and online transcription via `whisper-rs` in Rust backend
|
`@langchain/langgraph`, `@langchain/ollama`
|
||||||
|
- **Whisper Transcription**: Local and online transcription via `whisper-rs` in
|
||||||
|
Rust backend
|
||||||
- **AI Agent**: Located in [src/lib/agent/](mdc:src/lib/agent/) directory
|
- **AI Agent**: Located in [src/lib/agent/](mdc:src/lib/agent/) directory
|
||||||
|
|
||||||
## Frontend AI Features
|
## Frontend AI Features
|
||||||
|
|
||||||
- **AI Page**: [src/page/AI.svelte](mdc:src/page/AI.svelte) - Main AI interface
|
- **AI Page**: [src/page/AI.svelte](mdc:src/page/AI.svelte) - Main AI interface
|
||||||
- **Agent Logic**: [src/lib/agent/](mdc:src/lib/agent/) - AI agent implementation
|
- **Agent Logic**: [src/lib/agent/](mdc:src/lib/agent/) - AI agent implementation
|
||||||
- **Interface**: [src/lib/interface.ts](mdc:src/lib/interface.ts) - AI communication layer
|
- **Interface**: [src/lib/interface.ts](mdc:src/lib/interface.ts)
|
||||||
|
\- AI communication layer
|
||||||
|
|
||||||
## Backend AI Features
|
## Backend AI Features
|
||||||
|
|
||||||
- **Subtitle Generation**: [src-tauri/src/subtitle_generator/](mdc:src-tauri/src/subtitle_generator/) - AI-powered subtitle creation
|
- **Subtitle Generation**:
|
||||||
- **Whisper Integration**: [src-tauri/src/subtitle_generator.rs](mdc:src-tauri/src/subtitle_generator.rs) - Speech-to-text processing
|
[src-tauri/src/subtitle_generator/](mdc:src-tauri/src/subtitle_generator/) -
|
||||||
|
AI-powered subtitle creation
|
||||||
|
- **Whisper Integration**:
|
||||||
|
[src-tauri/src/subtitle_generator.rs](mdc:src-tauri/src/subtitle_generator.rs)
|
||||||
|
\- Speech-to-text processing
|
||||||
- **CUDA Support**: Optional CUDA acceleration for Whisper via feature flag
|
- **CUDA Support**: Optional CUDA acceleration for Whisper via feature flag
|
||||||
|
|
||||||
## AI Workflows
|
## AI Workflows
|
||||||
|
|||||||
@@ -3,13 +3,16 @@
|
|||||||
## Build Scripts
|
## Build Scripts
|
||||||
|
|
||||||
- **PowerShell**: [build.ps1](mdc:build.ps1) - Windows build script
|
- **PowerShell**: [build.ps1](mdc:build.ps1) - Windows build script
|
||||||
- **FFmpeg Setup**: [ffmpeg_setup.ps1](mdc:ffmpeg_setup.ps1) - FFmpeg installation script
|
- **FFmpeg Setup**: [ffmpeg_setup.ps1](mdc:ffmpeg_setup.ps1)
|
||||||
- **Version Bump**: [scripts/bump.cjs](mdc:scripts/bump.cjs) - Version management script
|
\- FFmpeg installation script
|
||||||
|
- **Version Bump**: [scripts/bump.cjs](mdc:scripts/bump.cjs)
|
||||||
|
\- Version management script
|
||||||
|
|
||||||
## Package Management
|
## Package Management
|
||||||
|
|
||||||
- **Node.js**: [package.json](mdc:package.json) - Frontend dependencies and scripts
|
- **Node.js**: [package.json](mdc:package.json) - Frontend dependencies and scripts
|
||||||
- **Rust**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml) - Backend dependencies and features
|
- **Rust**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml)
|
||||||
|
\- Backend dependencies and features
|
||||||
- **Lock Files**: [yarn.lock](mdc:yarn.lock) - Yarn dependency lock
|
- **Lock Files**: [yarn.lock](mdc:yarn.lock) - Yarn dependency lock
|
||||||
|
|
||||||
## Build Configuration
|
## Build Configuration
|
||||||
@@ -17,16 +20,22 @@
|
|||||||
- **Vite**: [vite.config.ts](mdc:vite.config.ts) - Frontend build tool configuration
|
- **Vite**: [vite.config.ts](mdc:vite.config.ts) - Frontend build tool configuration
|
||||||
- **Tailwind**: [tailwind.config.cjs](mdc:tailwind.config.cjs) - CSS framework configuration
|
- **Tailwind**: [tailwind.config.cjs](mdc:tailwind.config.cjs) - CSS framework configuration
|
||||||
- **PostCSS**: [postcss.config.cjs](mdc:postcss.config.cjs) - CSS processing configuration
|
- **PostCSS**: [postcss.config.cjs](mdc:postcss.config.cjs) - CSS processing configuration
|
||||||
- **TypeScript**: [tsconfig.json](mdc:tsconfig.json), [tsconfig.node.json](mdc:tsconfig.node.json) - TypeScript configuration
|
- **TypeScript**: [tsconfig.json](mdc:tsconfig.json),
|
||||||
|
[tsconfig.node.json](mdc:tsconfig.node.json) - TypeScript configuration
|
||||||
|
|
||||||
## Tauri Configuration
|
## Tauri Configuration
|
||||||
|
|
||||||
- **Main Config**: [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json) - Core Tauri settings
|
- **Main Config**: [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json)
|
||||||
|
\- Core Tauri settings
|
||||||
- **Platform Configs**:
|
- **Platform Configs**:
|
||||||
- [src-tauri/tauri.macos.conf.json](mdc:src-tauri/tauri.macos.conf.json) - macOS specific
|
- [src-tauri/tauri.macos.conf.json](mdc:src-tauri/tauri.macos.conf.json)
|
||||||
- [src-tauri/tauri.linux.conf.json](mdc:src-tauri/tauri.linux.conf.json) - Linux specific
|
\- macOS specific
|
||||||
- [src-tauri/tauri.windows.conf.json](mdc:src-tauri/tauri.windows.conf.json) - Windows specific
|
- [src-tauri/tauri.linux.conf.json](mdc:src-tauri/tauri.linux.conf.json)
|
||||||
- [src-tauri/tauri.windows.cuda.conf.json](mdc:src-tauri/tauri.windows.cuda.conf.json) - Windows with CUDA
|
\- Linux specific
|
||||||
|
- [src-tauri/tauri.windows.conf.json](mdc:src-tauri/tauri.windows.conf.json)
|
||||||
|
\- Windows specific
|
||||||
|
- [src-tauri/tauri.windows.cuda.conf.json](mdc:src-tauri/tauri.windows.cuda.conf.json)
|
||||||
|
\- Windows with CUDA
|
||||||
|
|
||||||
## Docker Support
|
## Docker Support
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
## Database Architecture
|
## Database Architecture
|
||||||
|
|
||||||
- **SQLite Database**: Primary data storage using `sqlx` with async runtime
|
- **SQLite Database**: Primary data storage using `sqlx` with async runtime
|
||||||
- **Database Module**: [src-tauri/src/database/](mdc:src-tauri/src/database/) - Core database operations
|
- **Database Module**: [src-tauri/src/database/](mdc:src-tauri/src/database/)
|
||||||
- **Migration System**: [src-tauri/src/migration.rs](mdc:src-tauri/src/migration.rs) - Database schema management
|
\- Core database operations
|
||||||
|
- **Migration System**: [src-tauri/src/migration.rs](mdc:src-tauri/src/migration.rs)
|
||||||
|
\- Database schema management
|
||||||
|
|
||||||
## Data Models
|
## Data Models
|
||||||
|
|
||||||
@@ -15,9 +17,11 @@
|
|||||||
|
|
||||||
## Frontend Data Layer
|
## Frontend Data Layer
|
||||||
|
|
||||||
- **Database Interface**: [src/lib/db.ts](mdc:src/lib/db.ts) - Frontend database operations
|
- **Database Interface**: [src/lib/db.ts](mdc:src/lib/db.ts)
|
||||||
|
\- Frontend database operations
|
||||||
- **Stores**: [src/lib/stores/](mdc:src/lib/stores/) - State management for data
|
- **Stores**: [src/lib/stores/](mdc:src/lib/stores/) - State management for data
|
||||||
- **Version Management**: [src/lib/stores/version.ts](mdc:src/lib/stores/version.ts) - Version tracking
|
- **Version Management**: [src/lib/stores/version.ts](mdc:src/lib/stores/version.ts)
|
||||||
|
\- Version tracking
|
||||||
|
|
||||||
## Data Operations
|
## Data Operations
|
||||||
|
|
||||||
@@ -28,13 +32,17 @@
|
|||||||
|
|
||||||
## File Management
|
## File Management
|
||||||
|
|
||||||
- **Cache Directory**: [src-tauri/cache/](mdc:src-tauri/cache/) - Temporary file storage
|
- **Cache Directory**: [src-tauri/cache/](mdc:src-tauri/cache/)
|
||||||
- **Upload Directory**: [src-tauri/cache/uploads/](mdc:src-tauri/cache/uploads/) - User upload storage
|
\- Temporary file storage
|
||||||
- **Bilibili Cache**: [src-tauri/cache/bilibili/](mdc:src-tauri/cache/bilibili/) - Platform-specific cache
|
- **Upload Directory**: [src-tauri/cache/uploads/](mdc:src-tauri/cache/uploads/)
|
||||||
|
\- User upload storage
|
||||||
|
- **Bilibili Cache**: [src-tauri/cache/bilibili/](mdc:src-tauri/cache/bilibili/)
|
||||||
|
\- Platform-specific cache
|
||||||
|
|
||||||
## Data Persistence
|
## Data Persistence
|
||||||
|
|
||||||
- **SQLite Files**: [src-tauri/data/data_v2.db](mdc:src-tauri/data/data_v2.db) - Main database file
|
- **SQLite Files**: [src-tauri/data/data_v2.db](mdc:src-tauri/data/data_v2.db)
|
||||||
|
\- Main database file
|
||||||
- **Write-Ahead Logging**: WAL mode for concurrent access and performance
|
- **Write-Ahead Logging**: WAL mode for concurrent access and performance
|
||||||
- **Backup Strategy**: Database backup and recovery procedures
|
- **Backup Strategy**: Database backup and recovery procedures
|
||||||
- **Migration Handling**: Automatic schema updates and data migration
|
- **Migration Handling**: Automatic schema updates and data migration
|
||||||
|
|||||||
@@ -17,8 +17,10 @@
|
|||||||
## Component Structure
|
## Component Structure
|
||||||
|
|
||||||
- **Page components**: Located in [src/page/](mdc:src/page/) directory
|
- **Page components**: Located in [src/page/](mdc:src/page/) directory
|
||||||
- **Reusable components**: Located in [src/lib/components/](mdc:src/lib/components/) directory
|
- **Reusable components**: Located in [src/lib/components/](mdc:src/lib/components/)
|
||||||
- **Layout components**: [src/App.svelte](mdc:src/App.svelte), [src/AppClip.svelte](mdc:src/AppClip.svelte), [src/AppLive.svelte](mdc:src/AppLive.svelte)
|
directory
|
||||||
|
- **Layout components**: [src/App.svelte](mdc:src/App.svelte),
|
||||||
|
[src/AppClip.svelte](mdc:src/AppClip.svelte), [src/AppLive.svelte](mdc:src/AppLive.svelte)
|
||||||
|
|
||||||
## Styling
|
## Styling
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
# BiliBili ShadowReplay Project Overview
|
# BiliBili ShadowReplay Project Overview
|
||||||
|
|
||||||
This is a Tauri-based desktop application for caching live streams and performing real-time editing and submission. It supports Bilibili and Douyin platforms.
|
This is a Tauri-based desktop application for caching live streams and performing
|
||||||
|
real-time editing and submission. It supports Bilibili and Douyin platforms.
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
### Frontend (Svelte + TypeScript)
|
### Frontend (Svelte + TypeScript)
|
||||||
|
|
||||||
- **Main entry points**: [src/main.ts](mdc:src/main.ts), [src/main_clip.ts](mdc:src/main_clip.ts), [src/main_live.ts](mdc:src/main_live.ts)
|
- **Main entry points**: [src/main.ts](mdc:src/main.ts),
|
||||||
- **App components**: [src/App.svelte](mdc:src/App.svelte), [src/AppClip.svelte](mdc:src/AppClip.svelte), [src/AppLive.svelte](mdc:src/AppLive.svelte)
|
[src/main_clip.ts](mdc:src/main_clip.ts), [src/main_live.ts](mdc:src/main_live.ts)
|
||||||
|
- **App components**: [src/App.svelte](mdc:src/App.svelte),
|
||||||
|
[src/AppClip.svelte](mdc:src/AppClip.svelte), [src/AppLive.svelte](mdc:src/AppLive.svelte)
|
||||||
- **Pages**: Located in [src/page/](mdc:src/page/) directory
|
- **Pages**: Located in [src/page/](mdc:src/page/) directory
|
||||||
- **Components**: Located in [src/lib/components/](mdc:src/lib/components/) directory
|
- **Components**: Located in [src/lib/components/](mdc:src/lib/components/) directory
|
||||||
- **Stores**: Located in [src/lib/stores/](mdc:src/lib/stores/) directory
|
- **Stores**: Located in [src/lib/stores/](mdc:src/lib/stores/) directory
|
||||||
@@ -19,11 +22,14 @@ This is a Tauri-based desktop application for caching live streams and performin
|
|||||||
- [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/) - Stream recording functionality
|
- [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/) - Stream recording functionality
|
||||||
- [src-tauri/src/database/](mdc:src-tauri/src/database/) - Database operations
|
- [src-tauri/src/database/](mdc:src-tauri/src/database/) - Database operations
|
||||||
- [src-tauri/src/handlers/](mdc:src-tauri/src/handlers/) - Tauri command handlers
|
- [src-tauri/src/handlers/](mdc:src-tauri/src/handlers/) - Tauri command handlers
|
||||||
- **Custom crate**: [src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/) - Danmaku stream processing
|
- **Custom crate**:
|
||||||
|
[src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/) -
|
||||||
|
Danmaku stream processing
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
- **Frontend config**: [tsconfig.json](mdc:tsconfig.json), [vite.config.ts](mdc:vite.config.ts), [tailwind.config.cjs](mdc:tailwind.config.cjs)
|
- **Frontend config**: [tsconfig.json](mdc:tsconfig.json),
|
||||||
|
[vite.config.ts](mdc:vite.config.ts), [tailwind.config.cjs](mdc:tailwind.config.cjs)
|
||||||
- **Backend config**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml), [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json)
|
- **Backend config**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml), [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json)
|
||||||
- **Example config**: [src-tauri/config.example.toml](mdc:src-tauri/config.example.toml)
|
- **Example config**: [src-tauri/config.example.toml](mdc:src-tauri/config.example.toml)
|
||||||
|
|
||||||
|
|||||||
@@ -2,16 +2,22 @@
|
|||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
- **Main entry**: [src-tauri/src/main.rs](mdc:src-tauri/src/main.rs) - Application entry point
|
- **Main entry**: [src-tauri/src/main.rs](mdc:src-tauri/src/main.rs)
|
||||||
|
\- Application entry point
|
||||||
- **Core modules**:
|
- **Core modules**:
|
||||||
- [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/) - Stream recording and management
|
- [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/)
|
||||||
- [src-tauri/src/database/](mdc:src-tauri/src/database/) - SQLite database operations
|
\- Stream recording and management
|
||||||
- [src-tauri/src/handlers/](mdc:src-tauri/src/handlers/) - Tauri command handlers
|
- [src-tauri/src/database/](mdc:src-tauri/src/database/)
|
||||||
- [src-tauri/src/subtitle_generator/](mdc:src-tauri/src/subtitle_generator/) - AI-powered subtitle generation
|
\- SQLite database operations
|
||||||
|
- [src-tauri/src/handlers/](mdc:src-tauri/src/handlers/)
|
||||||
|
\- Tauri command handlers
|
||||||
|
- [src-tauri/src/subtitle_generator/](mdc:src-tauri/src/subtitle_generator/)
|
||||||
|
\- AI-powered subtitle generation
|
||||||
|
|
||||||
## Custom Crates
|
## Custom Crates
|
||||||
|
|
||||||
- **danmu_stream**: [src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/) - Danmaku stream processing library
|
- **danmu_stream**: [src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/)
|
||||||
|
\- Danmaku stream processing library
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
@@ -23,9 +29,12 @@
|
|||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
- **Cargo.toml**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml) - Dependencies and features
|
- **Cargo.toml**: [src-tauri/Cargo.toml](mdc:src-tauri/Cargo.toml)
|
||||||
- **Tauri config**: [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json) - App configuration
|
\- Dependencies and features
|
||||||
- **Example config**: [src-tauri/config.example.toml](mdc:src-tauri/config.example.toml) - User configuration template
|
- **Tauri config**: [src-tauri/tauri.conf.json](mdc:src-tauri/tauri.conf.json)
|
||||||
|
\- App configuration
|
||||||
|
- **Example config**: [src-tauri/config.example.toml](mdc:src-tauri/config.example.toml)
|
||||||
|
\- User configuration template
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,12 @@
|
|||||||
|
|
||||||
## Core Recording Components
|
## Core Recording Components
|
||||||
|
|
||||||
- **Recorder Manager**: [src-tauri/src/recorder_manager.rs](mdc:src-tauri/src/recorder_manager.rs) - Main recording orchestration
|
- **Recorder Manager**: [src-tauri/src/recorder_manager.rs](mdc:src-tauri/src/recorder_manager.rs)
|
||||||
- **Recorder**: [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/) - Individual stream recording logic
|
\- Main recording orchestration
|
||||||
- **Danmaku Stream**: [src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/) - Custom crate for bullet comment processing
|
- **Recorder**: [src-tauri/src/recorder/](mdc:src-tauri/src/recorder/)
|
||||||
|
\- Individual stream recording logic
|
||||||
|
- **Danmaku Stream**: [src-tauri/crates/danmu_stream/](mdc:src-tauri/crates/danmu_stream/)
|
||||||
|
\- Custom crate for bullet comment processing
|
||||||
|
|
||||||
## Supported Platforms
|
## Supported Platforms
|
||||||
|
|
||||||
@@ -21,10 +24,14 @@
|
|||||||
|
|
||||||
## Frontend Interfaces
|
## Frontend Interfaces
|
||||||
|
|
||||||
- **Live Mode**: [src/AppLive.svelte](mdc:src/AppLive.svelte) - Live streaming interface
|
- **Live Mode**: [src/AppLive.svelte](mdc:src/AppLive.svelte)
|
||||||
- **Clip Mode**: [src/AppClip.svelte](mdc:src/AppClip.svelte) - Video editing and clipping
|
\- Live streaming interface
|
||||||
- **Room Management**: [src/page/Room.svelte](mdc:src/page/Room.svelte) - Stream room configuration
|
- **Clip Mode**: [src/AppClip.svelte](mdc:src/AppClip.svelte)
|
||||||
- **Task Management**: [src/page/Task.svelte](mdc:src/page/Task.svelte) - Recording task monitoring
|
\- Video editing and clipping
|
||||||
|
- **Room Management**: [src/page/Room.svelte](mdc:src/page/Room.svelte)
|
||||||
|
\- Stream room configuration
|
||||||
|
- **Task Management**: [src/page/Task.svelte](mdc:src/page/Task.svelte)
|
||||||
|
\- Recording task monitoring
|
||||||
|
|
||||||
## Technical Implementation
|
## Technical Implementation
|
||||||
|
|
||||||
|
|||||||
7
.github/CONTRIBUTING.md
vendored
7
.github/CONTRIBUTING.md
vendored
@@ -12,7 +12,8 @@
|
|||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
Windows 下分为两个版本,分别是 `cpu` 和 `cuda` 版本。区别在于 Whisper 是否使用 GPU 加速。`cpu` 版本使用 CPU 进行推理,`cuda` 版本使用 GPU 进行推理。
|
Windows 下分为两个版本,分别是 `cpu` 和 `cuda` 版本。区别在于 Whisper 是否使用 GPU 加速。
|
||||||
|
`cpu` 版本使用 CPU 进行推理,`cuda` 版本使用 GPU 进行推理。
|
||||||
|
|
||||||
默认运行为 `cpu` 版本,使用 `yarn tauri dev --features cuda` 命令运行 `cuda` 版本。
|
默认运行为 `cpu` 版本,使用 `yarn tauri dev --features cuda` 命令运行 `cuda` 版本。
|
||||||
|
|
||||||
@@ -20,7 +21,9 @@ Windows 下分为两个版本,分别是 `cpu` 和 `cuda` 版本。区别在于
|
|||||||
|
|
||||||
1. 安装 LLVM 且配置相关环境变量,详情见 [LLVM Windows Setup](https://llvm.org/docs/GettingStarted.html#building-llvm-on-windows);
|
1. 安装 LLVM 且配置相关环境变量,详情见 [LLVM Windows Setup](https://llvm.org/docs/GettingStarted.html#building-llvm-on-windows);
|
||||||
|
|
||||||
2. 安装 CUDA Toolkit,详情见 [CUDA Windows Setup](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html);要注意,安装时请勾选 **VisualStudio integration**。
|
2. 安装 CUDA Toolkit,详情见
|
||||||
|
[CUDA Windows Setup](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html);
|
||||||
|
要注意,安装时请勾选 **VisualStudio integration**。
|
||||||
|
|
||||||
### 常见问题
|
### 常见问题
|
||||||
|
|
||||||
|
|||||||
5
.markdownlint.json
Normal file
5
.markdownlint.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"MD033": {
|
||||||
|
"allowed_elements": ["nobr", "sup"]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
# Whisper 配置
|
# Whisper 配置
|
||||||
|
|
||||||
要使用 AI 字幕识别功能,需要在设置页面配置 Whisper。目前可以选择使用本地运行 Whisper 模型,或是使用在线的 Whisper 服务(通常需要付费获取 API Key)。
|
要使用 AI 字幕识别功能,需要在设置页面配置 Whisper。目前可以选择使用本地运行 Whisper 模型,或是使用在线的 Whisper 服务(通常需要付
|
||||||
|
费获取 API Key)。
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> 其实有许多更好的中文字幕识别解决方案,但是这类服务通常需要将文件上传到对象存储后异步处理,考虑到实现的复杂度,选择了使用本地运行 Whisper 模型或是使用在线的 Whisper 服务,在请求返回时能够直接获取字幕生成结果。
|
> 其实有许多更好的中文字幕识别解决方案,但是这类服务通常需要将文件上传到对象存储后异步处理,考虑到实现的复杂度,选择了使用本地运行 Whisper 模型或是使
|
||||||
|
> 用在线的 Whisper 服务,在请求返回时能够直接获取字幕生成结果。
|
||||||
|
|
||||||
## 本地运行 Whisper 模型
|
## 本地运行 Whisper 模型
|
||||||
|
|
||||||
@@ -16,20 +18,29 @@
|
|||||||
|
|
||||||
可以跟据自己的需求选择不同的模型,要注意带有 `en` 的模型是英文模型,其他模型为多语言模型。
|
可以跟据自己的需求选择不同的模型,要注意带有 `en` 的模型是英文模型,其他模型为多语言模型。
|
||||||
|
|
||||||
模型文件的大小通常意味着其在运行时资源占用的大小,因此请根据电脑配置选择合适的模型。此外,GPU 版本与 CPU 版本在字幕生成速度上存在**巨大差异**,因此推荐使用 GPU 版本进行本地处理(目前仅支持 Nvidia GPU)。
|
模型文件的大小通常意味着其在运行时资源占用的大小,因此请根据电脑配置选择合适的模型。此外,GPU 版本与 CPU 版本在字幕生成速度上存在**巨大差异**,因此
|
||||||
|
推荐使用 GPU 版本进行本地处理(目前仅支持 Nvidia GPU)。
|
||||||
|
|
||||||
## 使用在线 Whisper 服务
|
## 使用在线 Whisper 服务
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
如果需要使用在线的 Whisper 服务进行字幕生成,可以在设置中切换为在线 Whisper,并配置好 API Key。提供 Whisper 服务的平台并非只有 OpenAI 一家,许多云服务平台也提供 Whisper 服务。
|
如果需要使用在线的 Whisper 服务进行字幕生成,可以在设置中切换为在线 Whisper,并配置好 API Key。提供 Whisper 服务的平台并非只有
|
||||||
|
OpenAI 一家,许多云服务平台也提供 Whisper 服务。
|
||||||
|
|
||||||
## 字幕识别质量的调优
|
## 字幕识别质量的调优
|
||||||
|
|
||||||
目前在设置中支持设置 Whisper 语言和 Whisper 提示词,这些设置对于本地和在线的 Whisper 服务都有效。
|
目前在设置中支持设置 Whisper 语言和 Whisper 提示词,这些设置对于本地和在线的 Whisper 服务都有效。
|
||||||
|
|
||||||
通常情况下,`auto` 语言选项能够自动识别语音语言,并生成相应语言的字幕。如果需要生成其他语言的字幕,或是生成的字幕语言不匹配,可以手动配置指定的语言。根据 OpenAI 官方文档中对于 `language` 参数的描述,目前支持的语言包括
|
通常情况下,`auto` 语言选项能够自动识别语音语言,并生成相应语言的字幕。如果需要生成其他语言的字幕,或是生成的字幕语言不匹配,可以手动配置指定的语言。
|
||||||
|
根据 OpenAI 官方文档中对于 `language` 参数的描述,目前支持的语言包括
|
||||||
|
|
||||||
Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian, Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and Welsh.
|
Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian,
|
||||||
|
Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish,
|
||||||
|
French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic,
|
||||||
|
Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian,
|
||||||
|
Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish,
|
||||||
|
Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili,
|
||||||
|
Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and Welsh.
|
||||||
|
|
||||||
提示词可以优化生成的字幕的风格(也会一定程度上影响质量),要注意,Whisper 无法理解复杂的提示词,你可以在提示词中使用一些简单的描述,让其在选择词汇时使用偏向于提示词所描述的领域相关的词汇,以避免出现毫不相干领域的词汇;或是让它在标点符号的使用上参照提示词的风格。
|
提示词可以优化生成的字幕的风格(也会一定程度上影响质量),要注意,Whisper 无法理解复杂的提示词,你可以在提示词中使用一些简单的描述,让其在选择词汇时使用偏向于提示词所描述的领域相关的词汇,以避免出现毫不相干领域的词汇;或是让它在标点符号的使用上参照提示词的风格。
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
### 使用 DeepLinking 快速添加直播间
|
### 使用 DeepLinking 快速添加直播间
|
||||||
|
|
||||||
|
<!-- MD033 -->
|
||||||
|
|
||||||
<video src="/videos/deeplinking.mp4" loop autoplay muted style="border-radius: 10px;"></video>
|
<video src="/videos/deeplinking.mp4" loop autoplay muted style="border-radius: 10px;"></video>
|
||||||
|
|
||||||
在浏览器中观看直播时,替换地址栏中直播间地址中的 `https://` 为 `bsr://` 即可快速唤起 BSR 添加直播间。
|
在浏览器中观看直播时,替换地址栏中直播间地址中的 `https://` 为 `bsr://` 即可快速唤起 BSR 添加直播间。
|
||||||
|
|||||||
Reference in New Issue
Block a user