fix(eslint): reduce warnings in GitHub Actions deployment

- Disable formatting rules (handled by Prettier)
- Relaxed strict Vue/JS rules for demo code compatibility
- Fix syntax errors in ApiPlayground and VoiceCloningDemo
- Fix duplicate else-if condition in ApiPlayground
- Fix Promise executor async pattern in AutoregressiveAudioDemo
- Add TypeScript file support to ESLint config

Warnings reduced from 295 to 251 problems.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
sanbuphy
2026-02-18 17:38:10 +08:00
parent 8b01686e68
commit 0eba9e87e9
456 changed files with 28450 additions and 9677 deletions
@@ -25,28 +25,51 @@
<!-- 流程图 -->
<div class="codec-flow">
<div class="flow-section encode">
<div class="section-title">🔽 编码器 (Encoder)</div>
<div class="section-title">
🔽 编码器 (Encoder)
</div>
<div class="flow-steps">
<div class="codec-step">
<div class="step-visual">
<canvas ref="originalWaveformCanvas" width="150" height="60" />
<canvas
ref="originalWaveformCanvas"
width="150"
height="60"
/>
</div>
<div class="step-label">
原始波形
</div>
<div class="step-meta">
24kHz, 16-bit
</div>
<div class="step-label">原始波形</div>
<div class="step-meta">24kHz, 16-bit</div>
</div>
<el-icon class="flow-arrow"><ArrowRight /></el-icon>
<el-icon class="flow-arrow">
<ArrowRight />
</el-icon>
<div class="codec-step">
<div class="step-visual">
<div class="cnn-layers">
<div class="cnn-layer" v-for="i in 4" :key="i" :style="{ opacity: 0.3 + i * 0.2 }">
<div
v-for="i in 4"
:key="i"
class="cnn-layer"
:style="{ opacity: 0.3 + i * 0.2 }"
>
Conv {{ i }}
</div>
</div>
</div>
<div class="step-label">CNN 下采样</div>
<div class="step-meta">降维 320x</div>
<div class="step-label">
CNN 下采样
</div>
<div class="step-meta">
降维 320x
</div>
</div>
<el-icon class="flow-arrow"><ArrowRight /></el-icon>
<el-icon class="flow-arrow">
<ArrowRight />
</el-icon>
<div class="codec-step">
<div class="step-visual">
<div class="vq-codebook">
@@ -60,20 +83,28 @@
</div>
</div>
</div>
<div class="step-label">VQ 量化</div>
<div class="step-meta">离散 Token</div>
<div class="step-label">
VQ 量化
</div>
<div class="step-meta">
离散 Token
</div>
</div>
</div>
</div>
<div class="flow-divider">
<div class="divider-line"></div>
<div class="divider-label">压缩后: ~1.5 kbps</div>
<div class="divider-line"></div>
<div class="divider-line" />
<div class="divider-label">
压缩后: ~1.5 kbps
</div>
<div class="divider-line" />
</div>
<div class="flow-section decode">
<div class="section-title">🔼 解码器 (Decoder)</div>
<div class="section-title">
🔼 解码器 (Decoder)
</div>
<div class="flow-steps reverse">
<div class="codec-step">
<div class="step-visual">
@@ -88,28 +119,53 @@
</span>
</div>
</div>
<div class="step-label">离散 Token</div>
<div class="step-meta">Codebook 索引</div>
<div class="step-label">
离散 Token
</div>
<div class="step-meta">
Codebook 索引
</div>
</div>
<el-icon class="flow-arrow"><ArrowRight /></el-icon>
<el-icon class="flow-arrow">
<ArrowRight />
</el-icon>
<div class="codec-step">
<div class="step-visual">
<div class="cnn-layers">
<div class="cnn-layer" v-for="i in 4" :key="i" :style="{ opacity: 1 - i * 0.15 }">
<div
v-for="i in 4"
:key="i"
class="cnn-layer"
:style="{ opacity: 1 - i * 0.15 }"
>
ConvT {{ 5 - i }}
</div>
</div>
</div>
<div class="step-label">转置卷积</div>
<div class="step-meta">上采样</div>
<div class="step-label">
转置卷积
</div>
<div class="step-meta">
上采样
</div>
</div>
<el-icon class="flow-arrow"><ArrowRight /></el-icon>
<el-icon class="flow-arrow">
<ArrowRight />
</el-icon>
<div class="codec-step">
<div class="step-visual">
<canvas ref="reconstructedWaveformCanvas" width="150" height="60" />
<canvas
ref="reconstructedWaveformCanvas"
width="150"
height="60"
/>
</div>
<div class="step-label">
重建波形
</div>
<div class="step-meta">
24kHz
</div>
<div class="step-label">重建波形</div>
<div class="step-meta">24kHz</div>
</div>
</div>
</div>
@@ -117,7 +173,9 @@
<!-- 码率对比 -->
<div class="bitrate-comparison">
<div class="comparison-title">📊 不同码率对比</div>
<div class="comparison-title">
📊 不同码率对比
</div>
<div class="bitrate-cards">
<div
v-for="config in bitrateConfigs"
@@ -126,8 +184,12 @@
:class="{ active: selectedBitrate === config.name }"
@click="selectedBitrate = config.name"
>
<div class="bitrate-value">{{ config.bitrate }}</div>
<div class="bitrate-name">{{ config.name }}</div>
<div class="bitrate-value">
{{ config.bitrate }}
</div>
<div class="bitrate-name">
{{ config.name }}
</div>
<div class="bitrate-detail">
<div class="detail-item">
<span class="label">采样率:</span>
@@ -154,10 +216,16 @@
<!-- Token 可视化 -->
<div class="token-visualization">
<div class="viz-title">🔢 Token 序列可视化</div>
<div class="viz-title">
🔢 Token 序列可视化
</div>
<div class="token-display">
<div class="token-ruler">
<span v-for="i in 20" :key="i" class="ruler-mark">{{ i * 0.1 }}s</span>
<span
v-for="i in 20"
:key="i"
class="ruler-mark"
>{{ i * 0.1 }}s</span>
</div>
<div class="token-stream">
<div
@@ -174,15 +242,24 @@
</div>
<div class="token-legend">
<span class="legend-item">
<span class="legend-color" style="background: #409eff"></span>
<span
class="legend-color"
style="background: #409eff"
/>
低频成分
</span>
<span class="legend-item">
<span class="legend-color" style="background: #67c23a"></span>
<span
class="legend-color"
style="background: #67c23a"
/>
中频成分
</span>
<span class="legend-item">
<span class="legend-color" style="background: #e6a23c"></span>
<span
class="legend-color"
style="background: #e6a23c"
/>
高频成分
</span>
</div>
@@ -190,32 +267,50 @@
<!-- 应用场景 -->
<div class="applications">
<div class="apps-title">🎯 为什么需要音频 Tokenization</div>
<div class="apps-title">
🎯 为什么需要音频 Tokenization
</div>
<div class="apps-grid">
<div class="app-card">
<div class="app-icon">🚀</div>
<div class="app-title">高效传输</div>
<div class="app-icon">
🚀
</div>
<div class="app-title">
高效传输
</div>
<div class="app-desc">
将音频压缩到 ~1.5 kbps比原始音频小 256 适合网络传输
</div>
</div>
<div class="app-card">
<div class="app-icon">🧠</div>
<div class="app-title">语言模型友好</div>
<div class="app-icon">
🧠
</div>
<div class="app-title">
语言模型友好
</div>
<div class="app-desc">
离散 Token 可以被 LLM 直接处理实现文本到音频的统一建模
</div>
</div>
<div class="app-card">
<div class="app-icon">🎵</div>
<div class="app-title">音乐生成</div>
<div class="app-icon">
🎵
</div>
<div class="app-title">
音乐生成
</div>
<div class="app-desc">
MusicGenAudioLDM 等模型使用音频 Token 生成音乐和音效
</div>
</div>
<div class="app-card">
<div class="app-icon">🗣</div>
<div class="app-title">语音合成</div>
<div class="app-icon">
🗣
</div>
<div class="app-title">
语音合成
</div>
<div class="app-desc">
VALL-ESoundStorm TTS 模型直接生成音频 Token
</div>