Files
ai-drama-platform/docs/NEWAPI_AUDIO_WORKFLOW.md
T

73 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NewAPI 音频工作流
本项目的中文声音链路使用用户自有 NewAPI 中转到 Xinference,不在仓库内保存密钥。
## 环境变量
```bash
export NEWAPI_API_KEY="..."
```
`GET https://newapi.ysblack.com/v1/models` 未带认证时返回 `401 Invalid token` 是预期行为。所有真实请求必须带 `Authorization: Bearer $NEWAPI_API_KEY`。
## TTS 配音
- 模型:`IndexTTS-2.5`
- 端点:`POST https://newapi.ysblack.com/v1/audio/speech`
- 请求:`multipart/form-data`
- 用途:中文角色配音、固定声线、情绪参考
`IndexTTS-2.5` 的角色声线不是预设 voice 列表,而是由 `prompt_speech` 参考音频锁定。每个角色必须有授权参考音频,并在逐句生成时重复使用同一角色参考音频。
当前工程没有用户确认的正式角色参考音频。此前用临时/机器化参考音频生成的 IndexTTS 样音已经作废。禁止使用以下音频作为 `prompt_speech`:
- macOS `say` 生成的本地离线 TTS
- MiniMax H3 原生音轨
- 旧 probe / 临时测试 wav
- 听感机器化、带混响、带背景声、无授权或未经用户试听确认的声音
正式流程必须先获得干净自然的人声参考,或用 `Qwen3-TTS VoiceDesign`、`CosyVoice` 等自然声线先做候选试听。候选试听一次只生成单句,用户确认后才能把该声音登记为角色锁并进入批量生成。
```bash
curl -sS -o line_001.wav \
-X POST "https://newapi.ysblack.com/v1/audio/speech" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-H "Accept: application/json, audio/*" \
-F "model=IndexTTS-2.5" \
-F "input=先别出去,树下和金属牌旁都危险。" \
-F "voice=default" \
-F "response_format=wav" \
-F "speed=1.0" \
-F "kwargs={\"language\":\"ZH\"}" \
-F "prompt_speech=@voices/chen_yu/approved_ref_01.wav;type=audio/wav;filename=prompt.wav"
```
## ASR 校验
- 模型:`paraformer-zh-long`
- 端点:`POST https://newapi.ysblack.com/v1/audio/transcriptions`
- 请求:`multipart/form-data`
- 用途:中文识别、台词准确性校验、字幕和时间轴对齐
```bash
curl -sS \
-X POST "https://newapi.ysblack.com/v1/audio/transcriptions" \
-H "Authorization: Bearer $NEWAPI_API_KEY" \
-F "model=paraformer-zh-long" \
-F "file=@voices/chen_yu/line_001.wav;type=audio/wav" \
-F "language=zh" \
-F "response_format=verbose_json"
```
`verbose_json` 返回识别文本、词级时间戳和音频时长。生产字幕时以原始台词表为准,ASR 文本用于发现漏字错字,ASR 时间戳用于对齐字幕。
## 生产顺序
1. 收集或生成候选角色声线,一次只做单句试听。
2. 用户试听确认后,把正式参考音频登记为 `approved_ref_01.wav`。
3. 用 `IndexTTS-2.5` 按角色正式参考音频生成逐句 wav。
4. 标准化音频采样率、响度和命名,并写入缓存。
5. 用 `paraformer-zh-long` 对逐句 wav 或整集混音做 `verbose_json` 识别。
6. 比对原始台词和 ASR 文本,异常句重生成或人工复核。
7. 用原始台词文本加 ASR 时间戳生成字幕,再进入剪辑合成。