# 音频截断要点与错误总结

## 音频截断要点

### 1. 时间计算逻辑
- **第0句**：`startpos=0, endpos=(下一句start + 前一句end)/2`
- **其他句**：`startpos=前一句endpos, endpos=(本句end + 下一句start)/2`
- **最后一句**：`endpos=整个音频文件的最后位置`

### 2. 空白时间修正规则
- **空白时间 < 800ms**：前句后空白加长到400ms（添加白噪声）
- **空白时间 ≥ 800ms**：保持原有空白，不修正

### 3. 白噪声添加
- 音量：0.1（较响亮）
- 时长：400ms
- 位置：只在需要修正的空白处添加
- 格式：aevalsrc=random(0)*0.1:sample_rate=44100:duration=0.4

### 4. 文件名格式
- `seg{idx:03d}-{head_corrected}-{prev_gap}-{audio_duration}-{subtitle_duration}-{next_gap}-{tail_corrected}.mp3`
- `head_corrected`：头部修正标记（v=修正，x=未修正）
- `tail_corrected`：尾部修正标记（v=修正，x=未修正）

### 5. 音频截取
- 从`start`时间开始截取，确保包含完整的原音频
- 只对需要修正的空白添加白噪声
- 支持同时添加前后白噪声的情况

## 犯的错误

### 1. 白噪声添加位置错误
- **错误**：最初在音频前后都添加白噪声
- **修正**：只在需要修正的空白处添加白噪声（前或后）

### 2. 音频截取时间计算错误
- **错误**：从`startpos`开始截取，导致前空白丢失
- **修正**：从`start`时间开始截取，确保包含完整的原音频

### 3. 修正标记逻辑错误
- **错误**：初始修正的用x，没修正的用v
- **修正**：修正的用v，没修正的用x

### 4. 文件名格式错误
- **错误**：初始格式为seg-idx-...
- **修正**：修改为seg000-...格式

### 5. 输出目录错误
- **错误**：缺少`/xtrs/pub`输出目录导致脚本最后失败
- **处理**：忽略该错误，因为音频片段已成功生成

### 6. TTS文件缺失
- **错误**：部分TTS文件不存在，导致警告
- **处理**：这是正常现象，因为TTS生成不在当前脚本范围内

## 最终结果

- ✅ 成功生成74个音频片段
- ✅ 正确处理了空白时间修正
- ✅ 正确添加了白噪声
- ✅ 生成的音频片段符合要求

## 注意事项

- 当空白时间 ≥ 800ms时，不需要修正，保持原有空白
- 当空白时间 < 800ms时，需要添加400ms白噪声
- 音频截取从`start`时间开始，确保包含完整的原音频
- 只在需要修正的空白处添加白噪声
