73 lines
3.1 KiB
Markdown
73 lines
3.1 KiB
Markdown
# 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 时间戳生成字幕,再进入剪辑合成。
|